Breaking releases
- JavaScript SDK:
2.0.0 - Next.js SDK:
1.0.0 - PHP SDK:
2.0.0 - Swift SDK:
1.0.0 - MCP server:
1.0.0
Update event tracking
Replace semantic event and item strings with IDs returned by NSL.null, because that would make the training record ambiguous.
Keep source IDs separately
Do not send a CMS, SKU, article slug, or feed identifier asitemId. Put it in metadata.source_item_id when ingesting the item. Repeated ingestion with the same tenant and source ID updates the existing item and returns the same NSL-generated integer.
item.id beside the source record. If that is not practical, calling item ingestion again with the same metadata.source_item_id safely resolves the same integer ID.
Deployment order
- Upgrade server-side SDKs and stop emitting semantic identifiers.
- Re-ingest or resolve catalogue records and persist the returned item IDs.
- Deploy clients that submit integer event, item, and context IDs.
- Confirm event ingestion and recommendation responses, then retrain any model whose artifact encoded legacy item identifiers.

