diff --git a/apps/docs/migration/api-v5-document-reads.mdx b/apps/docs/migration/api-v5-document-reads.mdx index 63e0704b..57fc77b2 100644 --- a/apps/docs/migration/api-v5-document-reads.mdx +++ b/apps/docs/migration/api-v5-document-reads.mdx @@ -1,5 +1,5 @@ --- -title: "Migrate content management to V5" +title: "Migrate content management to v5" description: "Upgrade document retrieval, resource lists, and document or memory deletion" sidebarTitle: "Content management" --- diff --git a/apps/docs/migration/api-v5-document-updates.mdx b/apps/docs/migration/api-v5-document-updates.mdx index f79bcb93..148f2779 100644 --- a/apps/docs/migration/api-v5-document-updates.mdx +++ b/apps/docs/migration/api-v5-document-updates.mdx @@ -1,5 +1,5 @@ --- -title: "Migrate document and file updates to V5" +title: "Migrate document and file updates to v5" description: "Choose append, replacement, or metadata-only updates deliberately" sidebarTitle: "Document updates" --- diff --git a/apps/docs/migration/api-v5-document-writes.mdx b/apps/docs/migration/api-v5-document-writes.mdx index 10ac9dbf..6a8b5520 100644 --- a/apps/docs/migration/api-v5-document-writes.mdx +++ b/apps/docs/migration/api-v5-document-writes.mdx @@ -1,5 +1,5 @@ --- -title: "Migrate document ingestion to V5" +title: "Migrate document ingestion to v5" description: "Upgrade single, batch, and file ingestion without changing append behavior" sidebarTitle: "Document ingestion" --- diff --git a/apps/docs/migration/api-v5-filters.mdx b/apps/docs/migration/api-v5-filters.mdx index f30dc66f..288847f5 100644 --- a/apps/docs/migration/api-v5-filters.mdx +++ b/apps/docs/migration/api-v5-filters.mdx @@ -1,6 +1,6 @@ --- -title: "Migrate metadata filters to V5" -description: "Convert legacy Query filters into strict, type-safe V5 filter expressions" +title: "Migrate metadata filters to v5" +description: "Convert legacy Query filters into strict, type-safe v5 filter expressions" sidebarTitle: "Typed filters" --- diff --git a/apps/docs/migration/api-v5-memory-forgetting.mdx b/apps/docs/migration/api-v5-memory-forgetting.mdx index 60c6eebc..3ddde55a 100644 --- a/apps/docs/migration/api-v5-memory-forgetting.mdx +++ b/apps/docs/migration/api-v5-memory-forgetting.mdx @@ -1,5 +1,5 @@ --- -title: "Migrate memory forgetting to V5" +title: "Migrate memory forgetting to v5" description: "Replace legacy exact and semantic forgetting with one response contract" sidebarTitle: "Memory forgetting" --- diff --git a/apps/docs/migration/api-v5-organization.mdx b/apps/docs/migration/api-v5-organization.mdx index 0eb9628c..54a1f91d 100644 --- a/apps/docs/migration/api-v5-organization.mdx +++ b/apps/docs/migration/api-v5-organization.mdx @@ -1,5 +1,5 @@ --- -title: "Migrate organization settings to V5" +title: "Migrate organization settings to v5" description: "Reduce organization settings to shared context and namespace count" sidebarTitle: "Organization settings" --- diff --git a/apps/docs/migration/api-v5-profiles.mdx b/apps/docs/migration/api-v5-profiles.mdx index 5ee0382e..5ec5e16b 100644 --- a/apps/docs/migration/api-v5-profiles.mdx +++ b/apps/docs/migration/api-v5-profiles.mdx @@ -1,5 +1,5 @@ --- -title: "Migrate profiles and buckets to V5" +title: "Migrate profiles and buckets to v5" description: "Separate profile retrieval from search and manage namespace-owned buckets" sidebarTitle: "Profiles and buckets" --- diff --git a/apps/docs/migration/api-v5-recall.mdx b/apps/docs/migration/api-v5-recall.mdx index 0368ef45..f3c024ba 100644 --- a/apps/docs/migration/api-v5-recall.mdx +++ b/apps/docs/migration/api-v5-recall.mdx @@ -1,5 +1,5 @@ --- -title: "Migrate search to V5" +title: "Migrate search to v5" description: "Upgrade search modes, filters, attachments, defaults, and response readers" sidebarTitle: "Search" --- diff --git a/apps/docs/migration/api-v5-rollout.mdx b/apps/docs/migration/api-v5-rollout.mdx index 005fb398..a90d005b 100644 --- a/apps/docs/migration/api-v5-rollout.mdx +++ b/apps/docs/migration/api-v5-rollout.mdx @@ -1,5 +1,5 @@ --- -title: "Verify and roll out a V5 migration" +title: "Verify and roll out a v5 migration" description: "Prove behavioral parity, detect intentional differences, and cut over safely" sidebarTitle: "Verification and rollout" --- diff --git a/apps/docs/migration/api-v5.mdx b/apps/docs/migration/api-v5.mdx index 1a6eee40..283cc500 100644 --- a/apps/docs/migration/api-v5.mdx +++ b/apps/docs/migration/api-v5.mdx @@ -1,10 +1,11 @@ --- -title: "Migrate Supermemory V3/V4 to V5" -description: "Upgrade legacy API calls to the namespace-scoped V5 API" -sidebarTitle: "Legacy API to V5" +title: "Migrate Supermemory v3/v4 to v5" +description: "Upgrade legacy API calls to the namespace-scoped v5 API" +sidebarTitle: "Legacy API to v5" icon: "arrow-up-right" --- +import AgentPrompt from "/snippets/api-v5-agent-prompt.mdx"; import Overview from "/snippets/api-v5-overview.mdx"; import DocumentIngestion from "/snippets/api-v5-document-ingestion.mdx"; import DocumentUpdates from "/snippets/api-v5-document-updates.mdx"; @@ -18,6 +19,8 @@ import Filters from "/snippets/api-v5-filters.mdx"; import Rollout from "/snippets/api-v5-rollout.mdx"; import Completion from "/snippets/api-v5-completion.mdx"; + + ## Document ingestion diff --git a/apps/docs/snippets/api-v5-content-management.mdx b/apps/docs/snippets/api-v5-content-management.mdx index 3a0c8846..04e8ae4b 100644 --- a/apps/docs/snippets/api-v5-content-management.mdx +++ b/apps/docs/snippets/api-v5-content-management.mdx @@ -1,4 +1,4 @@ -V5 retrieves, lists, and removes content within one explicit namespace. +v5 retrieves, lists, and removes content within one explicit namespace. ### Retrieve a document and its derived context @@ -8,7 +8,7 @@ GET /v3/documents/{id} GET /v3/documents/{id}/chunks ``` -```bash V5 +```bash v5 GET /ns/{namespace}/document/{id}?attach=chunks&attach=memories ``` @@ -27,7 +27,7 @@ POST /v3/documents/list POST /v4/memories/list ``` -```bash V5 +```bash v5 POST /ns/{namespace}/list/{type}?page=1&limit=100&sort=createdAt&order=desc {} ``` @@ -45,17 +45,17 @@ DELETE /v3/documents/{id} DELETE /v3/documents/bulk ``` -```bash V5 +```bash v5 DELETE /ns/{namespace}/document {"ids":["doc_1","external_id_2"]} ``` -The V5 array accepts 1–100 Supermemory or caller-defined IDs. Inspect both `deletedCount` and per-ID `errors`; HTTP success can include partial failures. +The v5 array accepts 1–100 Supermemory or caller-defined IDs. Inspect both `deletedCount` and per-ID `errors`; HTTP success can include partial failures. ### Forget memories -| Legacy intent | V5 operation | +| Legacy intent | v5 operation | | --- | --- | | Forget exact IDs | `DELETE /ns/{namespace}/memories` with `{ "ids": [...] }` | | Find memories by meaning | `DELETE /ns/{namespace}/memories/semantic` with `{ "query": "...", "dryRun": true }` | diff --git a/apps/docs/snippets/api-v5-document-ingestion.mdx b/apps/docs/snippets/api-v5-document-ingestion.mdx index 1f942dc2..79a9e731 100644 --- a/apps/docs/snippets/api-v5-document-ingestion.mdx +++ b/apps/docs/snippets/api-v5-document-ingestion.mdx @@ -1,8 +1,8 @@ -V5 moves document scope into the URL and keeps repeated caller IDs attached to one evolving document. +v5 moves document scope into the URL and keeps repeated caller IDs attached to one evolving document. ### Rename common fields -| Legacy | V5 | Location | +| Legacy | v5 | Location | | --- | --- | --- | | `containerTag` | `{namespace}` | Path | | `customId` | `id` | JSON body | @@ -19,13 +19,13 @@ POST /v3/documents {"content":"new turn","customId":"conv_1","containerTag":"user_1"} ``` -```bash V5 +```bash v5 POST /ns/user_1/document?dreaming=dynamic {"content":"new turn","id":"conv_1"} ``` -The response remains an acceptance result with `id` and `status`. Repeating the V5 request with `id: "conv_1"` adds or diffs the new content into that document; it does not silently replace the canonical source. +The response remains an acceptance result with `id` and `status`. Repeating the v5 request with `id: "conv_1"` adds or diffs the new content into that document; it does not silently replace the canonical source. ### Batch ingestion @@ -34,12 +34,12 @@ The response remains an acceptance result with `id` and `status`. Repeating the {"documents":["first","second"],"containerTag":"user_1"} ``` -```json V5 +```json v5 {"documents":[{"content":"first","id":"doc_1"},{"content":"second","id":"doc_2"}]} ``` -Send the V5 body to `POST /ns/user_1/document/batch`. The array accepts 1–600 document objects. Namespace, `taskType`, and processing mode apply to the request; document content, ID, context, metadata, grouping, and date stay per item. +Send the v5 body to `POST /ns/user_1/document/batch`. The array accepts 1–600 document objects. Namespace, `taskType`, and processing mode apply to the request; document content, ID, context, metadata, grouping, and date stay per item. Batch results preserve input order. Inspect `success`, `failed`, and every item in `results`; a batch can contain successful and failed items together. diff --git a/apps/docs/snippets/api-v5-document-updates.mdx b/apps/docs/snippets/api-v5-document-updates.mdx index 9af66757..5f9a3192 100644 --- a/apps/docs/snippets/api-v5-document-updates.mdx +++ b/apps/docs/snippets/api-v5-document-updates.mdx @@ -1,4 +1,4 @@ -V5 makes the difference between adding new information and replacing the canonical source explicit. +v5 makes the difference between adding new information and replacing the canonical source explicit. ### Choose the correct write @@ -18,13 +18,13 @@ PATCH /v3/documents/doc_1 {"content":"corrected source","metadata":{"revision":2}} ``` -```bash V5 +```bash v5 PATCH /ns/user_1/document/doc_1?dreaming=dynamic {"content":"corrected source","metadata":{"revision":2}} ``` -The V5 body accepts any non-empty subset of `content`, `supportingContext`, `metadata`, `group`, or `date`. Supplying `content` makes it the new canonical source; facts supported only by the previous source can disappear after reprocessing. +The v5 body accepts any non-empty subset of `content`, `supportingContext`, `metadata`, `group`, or `date`. Supplying `content` makes it the new canonical source; facts supported only by the previous source can disappear after reprocessing. ### Replace a file-backed document @@ -50,7 +50,7 @@ metadata={"reviewed":true} PATCH changes only supplied fields. Include `file` to replace the source while retaining omitted supporting fields, or omit `file` for metadata-, group-, context-, or date-only changes. `metadata` and `group` are JSON-encoded strings; `supportingContext` and `date` are plain strings. - There is no public V5 `PUT /ns/{namespace}/document/file/{id}` operation. Use POST for a complete replacement and PATCH for a partial update. + There is no public v5 `PUT /ns/{namespace}/document/file/{id}` operation. Use POST for a complete replacement and PATCH for a partial update. ### IDs and scope diff --git a/apps/docs/snippets/api-v5-filters.mdx b/apps/docs/snippets/api-v5-filters.mdx index 0b85dc0a..016aee94 100644 --- a/apps/docs/snippets/api-v5-filters.mdx +++ b/apps/docs/snippets/api-v5-filters.mdx @@ -1,4 +1,4 @@ -V5 uses one optional singular `filter` field for search, profiles, and list operations. +v5 uses one optional singular `filter` field for search, profiles, and list operations. ### Shape @@ -16,7 +16,7 @@ Fields may contain letters, numbers, `_`, `.`, and `-`. Expressions allow up to ### Operator mapping -| Legacy condition | V5 predicate | +| Legacy condition | v5 predicate | | --- | --- | | `{ key, value }` | `{ field: key, operator: "eq", value }` | | `negate: true` equality | `operator: "neq"` | @@ -41,7 +41,7 @@ Fields may contain letters, numbers, `_`, `.`, and `-`. Expressions allow up to } ``` -```json V5 +```json v5 { "operator": "and", "operands": [ diff --git a/apps/docs/snippets/api-v5-memory-forgetting.mdx b/apps/docs/snippets/api-v5-memory-forgetting.mdx index 62e5ece0..30b266a0 100644 --- a/apps/docs/snippets/api-v5-memory-forgetting.mdx +++ b/apps/docs/snippets/api-v5-memory-forgetting.mdx @@ -1,8 +1,8 @@ -V5 scopes forgetting to one namespace and returns the same result envelope for exact and semantic requests. +v5 scopes forgetting to one namespace and returns the same result envelope for exact and semantic requests. ### Choose exact or semantic forgetting -| Intent | V5 operation | +| Intent | v5 operation | | --- | --- | | Forget reviewed memory IDs | `DELETE /ns/{namespace}/memories` | | Find memories by meaning | `DELETE /ns/{namespace}/memories/semantic` | @@ -57,7 +57,7 @@ Use this workflow when a human or policy must approve the exact set. Re-running ### Removed memory-write routes -Direct V4 memory creation and version updates have no V5 replacement. Ingest source material through document routes and update the canonical document when facts change. +Direct v4 memory creation and version updates have no v5 replacement. Ingest source material through document routes and update the canonical document when facts change. ### Verification diff --git a/apps/docs/snippets/api-v5-namespaces.mdx b/apps/docs/snippets/api-v5-namespaces.mdx index 8f02e260..0fdde3a7 100644 --- a/apps/docs/snippets/api-v5-namespaces.mdx +++ b/apps/docs/snippets/api-v5-namespaces.mdx @@ -1,8 +1,8 @@ -V5 renames the public isolation boundary from container tag to namespace. Existing values remain valid identifiers; no stored data rename is required. +v5 renames the public isolation boundary from container tag to namespace. Existing values remain valid identifiers; no stored data rename is required. ### Endpoint mapping -| Legacy | V5 | +| Legacy | v5 | | --- | --- | | `GET /v3/container-tags/list` | `GET /namespaces` | | `GET /v3/container-tags/{tag}` | `GET /ns/{namespace}` | @@ -24,7 +24,7 @@ PATCH /v3/container-tags/project_alpha {"entityContext":"Research project for distributed systems"} ``` -```bash V5 +```bash v5 PATCH /ns/project_alpha {"supportingContext":"Research project for distributed systems"} ``` @@ -52,7 +52,7 @@ DELETE /ns/project_alpha This returns `202` with `status: "queued"` and `operationId`. The destination must differ from the source. Do not treat acceptance as completed migration. -Legacy merge can accept multiple sources; V5 moves one source per request. Run multi-source migrations sequentially and record each operation independently. +Legacy merge can accept multiple sources; v5 moves one source per request. Run multi-source migrations sequentially and record each operation independently. ### Verification diff --git a/apps/docs/snippets/api-v5-organization.mdx b/apps/docs/snippets/api-v5-organization.mdx index 84135400..db220fc8 100644 --- a/apps/docs/snippets/api-v5-organization.mdx +++ b/apps/docs/snippets/api-v5-organization.mdx @@ -1,8 +1,8 @@ -V5 exposes only the organization-wide context needed to guide memory formation. Internal controls and profile bucket mutation are no longer part of this settings resource. +v5 exposes only the organization-wide context needed to guide memory formation. Internal controls and profile bucket mutation are no longer part of this settings resource. ### Endpoint mapping -| Legacy | V5 | +| Legacy | v5 | | --- | --- | | `GET /v3/settings` | `GET /organization` | | `PATCH /v3/settings` | `PATCH /organization` | @@ -31,7 +31,7 @@ PATCH /v3/settings {"filterPrompt":"Acme builds security tools for enterprises"} ``` -```bash V5 +```bash v5 PATCH /organization {"organizationalContext":"Acme builds security tools for enterprises"} ``` @@ -44,13 +44,13 @@ Organization updates require an organization administrator. Do not silently fall ### Removed public operations - Organization profile-bucket mutation is not exposed through organization settings. -- Bucket suggestion is not part of V5. -- Organization data reset is not part of V5. +- Bucket suggestion is not part of v5. +- Organization data reset is not part of v5. - Namespace-owned profile buckets are managed through `/ns/{namespace}/profile/buckets`. ### Verification -- Compare the V5 context with the legacy `filterPrompt` before cutover. +- Compare the v5 context with the legacy `filterPrompt` before cutover. - Set, replace, and clear organizational context. - Confirm `namespaceCount` agrees with `GET /namespaces` for the same credentials. - Verify non-admin callers receive `403` on PATCH. diff --git a/apps/docs/snippets/api-v5-profiles.mdx b/apps/docs/snippets/api-v5-profiles.mdx index c4c5dfff..225889f7 100644 --- a/apps/docs/snippets/api-v5-profiles.mdx +++ b/apps/docs/snippets/api-v5-profiles.mdx @@ -1,4 +1,4 @@ -V5 returns a maintained profile directly and gives profile bucket definitions their own namespace-scoped resource. +v5 returns a maintained profile directly and gives profile bucket definitions their own namespace-scoped resource. ### Remove search behavior from profile calls @@ -8,15 +8,15 @@ POST /v4/profile {"containerTag":"user_1","q":"work preferences","threshold":0.6,"include":{}} ``` -```bash V5 +```bash v5 POST /ns/user_1/profile {"filter":{"field":"region","operator":"eq","value":"us-west"},"buckets":["work"]} ``` -Remove legacy `q`, `threshold`, and `include`. If the caller needs query-ranked results, issue a separate V5 search request. Move `containerTag` to the path and rename `filters` to singular `filter`. +Remove legacy `q`, `threshold`, and `include`. If the caller needs query-ranked results, issue a separate v5 search request. Move `containerTag` to the path and rename `filters` to singular `filter`. -### Read the V5 profile shape +### Read the v5 profile shape ```json { @@ -38,7 +38,7 @@ POST /v4/profile/buckets {"containerTag":"user_1"} ``` -```bash V5 +```bash v5 GET /ns/user_1/profile/buckets ``` diff --git a/apps/docs/snippets/api-v5-rollout.mdx b/apps/docs/snippets/api-v5-rollout.mdx index 2a008495..35e05f64 100644 --- a/apps/docs/snippets/api-v5-rollout.mdx +++ b/apps/docs/snippets/api-v5-rollout.mdx @@ -4,7 +4,7 @@ Treat migration as a behavioral comparison, not a raw response snapshot update. Use an isolated namespace with stable IDs and fixed source content. Include plaintext, URL, file, batch, metadata, grouping, profile facts, related memories, forgotten memories, and empty-result cases. -Record each legacy request, V5 request, expected semantic result, and intentional difference. Never compare generated IDs, signed URLs, timing, or JSON object order unless the contract guarantees them. +Record each legacy request, v5 request, expected semantic result, and intentional difference. Never compare generated IDs, signed URLs, timing, or JSON object order unless the contract guarantees them. ### Compare writes @@ -17,7 +17,7 @@ Record each legacy request, V5 request, expected semantic result, and intentiona - Document attachments are absent when omitted and empty arrays when requested without results. - Unified list responses populate only the selected resource array. -- Search parity uses explicit V4-equivalent mode and threshold before testing V5 defaults. +- Search parity uses explicit v4-equivalent mode and threshold before testing v5 defaults. - Profiles always contain static, dynamic, and bucket sections. ### Exercise boundaries @@ -36,7 +36,7 @@ Record each legacy request, V5 request, expected semantic result, and intentiona same request intent | +-- same semantic result ------> parity - +-- documented V5 difference --> update assertion + +-- documented v5 difference --> update assertion +-- undocumented difference ----> block cutover ``` @@ -44,7 +44,7 @@ Do not normalize away an undocumented difference. Capture the request pair, name ### Cut over by domain -1. Ship V5 request construction behind a per-domain flag. +1. Ship v5 request construction behind a per-domain flag. 2. Dual-read or shadow-call where side effects allow it. 3. Switch ingestion, content management, search, profiles, then settings independently. 4. Monitor validation failures, authorization failures, latency, empty-result rate, and processing failures. diff --git a/apps/docs/snippets/api-v5-search.mdx b/apps/docs/snippets/api-v5-search.mdx index 56ad6831..2ba00d86 100644 --- a/apps/docs/snippets/api-v5-search.mdx +++ b/apps/docs/snippets/api-v5-search.mdx @@ -1,8 +1,8 @@ -V5 searches one namespace, defaults to hybrid recall, and moves ranking controls into a typed request body. +v5 searches one namespace, defaults to hybrid recall, and moves ranking controls into a typed request body. ### Request mapping -| Legacy | V5 | +| Legacy | v5 | | --- | --- | | `containerTag` | `/ns/{namespace}` | | body `q` | body `query` | @@ -21,7 +21,7 @@ POST /v4/search {"q":"What did the user decide?","containerTag":"user_1","limit":10,"searchMode":"memories"} ``` -```bash V5 +```bash v5 POST /ns/user_1/search?limit=10&searchMode=memories {"query":"What did the user decide?","threshold":0.6,"rewriteQuery":false} ``` @@ -29,14 +29,14 @@ POST /ns/user_1/search?limit=10&searchMode=memories ### Changed defaults -| Setting | V4 | V5 | +| Setting | v4 | v5 | | --- | --- | --- | | Search mode | `memories` | `hybrid` | | Similarity threshold | `0.6` | `0.3` | | Reranking | Disabled | `rerank: "none"` | | Query rewriting | Disabled | `false` | -Set mode and threshold explicitly while comparing versions. After parity testing, remove them only if you want the broader V5 hybrid defaults. +Set mode and threshold explicitly while comparing versions. After parity testing, remove them only if you want the broader v5 hybrid defaults. ### Search modes @@ -46,7 +46,7 @@ Set mode and threshold explicitly while comparing versions. After parity testing | `chunks` | Source chunks only | | `hybrid` | Both result types in one ranked list | -Legacy `include.chunks` has no V5 equivalent. Choose `chunks` or `hybrid` instead. +Legacy `include.chunks` has no v5 equivalent. Choose `chunks` or `hybrid` instead. ### Attachments and ranking @@ -57,7 +57,7 @@ Legacy `include.chunks` has no V5 equivalent. Choose `chunks` or `hybrid` instea ### Response mapping -| Legacy reader | V5 reader | +| Legacy reader | v5 reader | | --- | --- | | Result array | `results` | | Timing | `searchTime` | @@ -69,7 +69,7 @@ Each primary result contains either `memory`, `chunk`, or both only if the contr ### Verification -- Compare IDs using explicit V4-equivalent defaults, then test V5 hybrid behavior separately. +- Compare IDs using explicit v4-equivalent defaults, then test v5 hybrid behavior separately. - Cover all three modes, thresholds at `0` and `1`, each rerank option, and query rewriting. - Cover every attachment alone and in combination, including empty attachments. - Verify filters, namespace isolation, result limits, and invalid body/query placement.