diff --git a/docs/sdk/api-reference.md b/docs/sdk/api-reference.md index 0e575b67..c52b9830 100644 --- a/docs/sdk/api-reference.md +++ b/docs/sdk/api-reference.md @@ -83,6 +83,8 @@ Search for memories matching a natural language query, scoped to `owner + namesp - Preferred form: `recall({ query, limit?, topK?, namespace?, maxDistance? })` - `limit` defaults to `10`; `topK` is an alias and wins when both are set + +> ⚠️ **Truncation is silent.** The response carries no *more results* indicator. If `results.length === limit`, assume more matches exist and retry with a higher `limit`. Reads that need completeness (leaderboards, accuracy computations, deduplication) should not rely on the default of 10. - Legacy positional forms still work: `recall(query)`, `recall(query, limit)`, `recall(query, limit, namespace)`, and `recall(query, options)` - `maxDistance` filters weak matches client-side by dropping results where `distance >= maxDistance` diff --git a/packages/sdk/src/types.ts b/packages/sdk/src/types.ts index 442ae1da..d1d067de 100644 --- a/packages/sdk/src/types.ts +++ b/packages/sdk/src/types.ts @@ -66,7 +66,14 @@ export interface RecallResult { /** Options for recall(). */ export interface RecallOptions { - /** Max number of nearest memories to request from the relayer (default: 10). */ + /** + * Max number of nearest memories to request from the relayer (default: 10). + * + * NOTE: results are silently capped at this value — the response carries no + * "truncated" flag. If `results.length === limit`, more matches likely exist: + * raise the limit for completeness-critical reads (leaderboards, accuracy + * computations, deduplication passes). + */ limit?: number; /** Alias for limit, useful when describing top-K search behaviour. */ topK?: number;