mirror of
https://github.com/supermemoryai/supermemory.git
synced 2026-10-11 03:37:56 +00:00
Rewrites 339 TypeScript calls across 50 pages from the rc.5 `method({ namespace, body })` form to the shipped `method(namespace, { ... })` form, and aligns field names with the live v5 spec: `attach` to `include`, `authUrl` to `authorization`, `lastSync` to `latestRun`, `deletedCount` to `count`, and the paginated `namespaces.list()`.
Renames container tags to namespaces across concepts, connectors, integrations and snippets. The namespace pages keep container tag in the description, search keywords and a rename note so old searches still land, and the v3 reference page points at v5.
The migration guide's SDK table now covers both 5.0.0 SDKs, and the SDK integration page uses the real client options (`baseUrl`, `timeoutInSeconds`, `maxRetries`) and error classes.
89 lines
2.7 KiB
Text
89 lines
2.7 KiB
Text
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 |
|
||
| --- | --- |
|
||
| Forget reviewed memory IDs | `DELETE /ns/{namespace}/memories` |
|
||
| Find memories by meaning | `DELETE /ns/{namespace}/memories/semantic` |
|
||
|
||
### Forget exact IDs
|
||
|
||
```bash
|
||
DELETE /ns/user_1/memories
|
||
Content-Type: application/json
|
||
|
||
{"ids":["mem_1","mem_2"]}
|
||
```
|
||
|
||
Send 1–500 IDs. The response reports successful IDs in `matches` and missing or ineligible IDs in `errors`, so HTTP success does not imply every requested ID changed.
|
||
|
||
### Preview a semantic request
|
||
|
||
```bash
|
||
DELETE /ns/user_1/memories/semantic
|
||
Content-Type: application/json
|
||
|
||
{"query":"outdated home address","dryRun":true}
|
||
```
|
||
|
||
`dryRun: true` performs selection without changing memory state. `dryRun: false` forgets the memories selected when that request executes.
|
||
|
||
### Avoid selection drift
|
||
|
||
```text
|
||
semantic request with dryRun: true
|
||
|
|
||
v
|
||
review matches[].id
|
||
|
|
||
v
|
||
exact DELETE with reviewed IDs
|
||
```
|
||
|
||
Use this workflow when a human or policy must approve the exact set. Re-running the semantic request with `dryRun: false` can select a different set if memories changed after preview.
|
||
|
||
### Read the normalized response
|
||
|
||
```json
|
||
{
|
||
"count": 1,
|
||
"matches": [{ "id": "mem_1", "memory": "Old address" }],
|
||
"errors": [{ "id": "mem_2", "error": "Memory not found" }]
|
||
}
|
||
```
|
||
|
||
`count` always equals `matches.length`. Both dry-run and applied semantic requests use this shape; the payload alone does not replace your record of which mode was sent.
|
||
|
||
### With the SDK
|
||
|
||
<CodeGroup>
|
||
```ts Legacy
|
||
await client.memories.forget({ id: "mem_1" })
|
||
await client.memories.forgetMatching({ query: "outdated home address" })
|
||
```
|
||
|
||
```ts v5
|
||
const preview = await supermemory.memories.forgetMatching("user_1", {
|
||
query: "outdated home address",
|
||
dryRun: true,
|
||
})
|
||
|
||
await supermemory.memories.forget("user_1", {
|
||
ids: preview.matches.map((m) => m.id),
|
||
})
|
||
```
|
||
</CodeGroup>
|
||
|
||
`dryRun` is required on `forgetMatching`. Both calls return `{ count, matches, errors }`.
|
||
|
||
### Removed memory-write routes
|
||
|
||
Direct v4 memory creation and version updates (`client.memories.add`, `client.memories.updateMemory`) have no v5 replacement. Ingest source material through document routes and update the canonical document when facts change.
|
||
|
||
### Verification
|
||
|
||
- Exercise all-success, partial-success, duplicate, unknown, and cross-namespace ID sets.
|
||
- Confirm dry runs leave matched memories recallable.
|
||
- Apply reviewed IDs exactly and confirm normal recall excludes them.
|
||
- Persist the request mode alongside audit logs for semantic operations.
|