Check your codeNewImprovedFixed
Forget everywhere, safer updates
forget can now reach every kind of data, updating a record keeps what you leave out, and the OpenAPI document works with client generators.Check your code
Two changes affect existing callers:
- Updating a record by key keeps what you leave out.
POST /v1/collections/{c}/recordswith an existingkeyused to reset every field you didn't send, so sending onlystatuswipeddata, cleareddue_at, and setorigintoagent. If you relied on that, send the field explicitly:"due_at": null,"data": {}, or"status": "". forgetwith aquerymatches whole words in facts. Forgetting "Sam" used to delete facts containing "same" too. If you relied on prefixes, name the whole word.
GET /v1/context also returns more than it did: open_records now covers every collection without being asked, up to 20. Use open_limit=0 to go back to leaving them out.Forget
- New scopes:
actions,kv, andevents. The default is still["memories"], so to forget something everywhere, list all six. - The result now has
not_searched, the scopes it didn't look in, andtruncated, which istruewhen there's more to do. Check both before saying something is gone. - Actions are redacted, not deleted, so a denied action can't be proposed and run again. Any that could still run become
superseded.executing_actionslists those already running. - Phrase matching now ignores case and accents in any script, and it covers journal
source_refsand facttagsandsource_ref.
See Forget and privacy.
New
POST /v1/space/keyreplaces a space's key. The old key stops working at once, and everything in the space stays, including a stored OpenAI key. REST only.PATCH /v1/actions/{id}merges into an action'smeta, in any status. Also theaction_updateMCP tool and theaction.updatebatch op. The MCP server now has 34 tools.search.indexingon recall counts the matching facts that may not be findable by meaning yet.open_records_totalandopen_limitonGET /v1/context.error.details.op_indexandopon a failed batch, including failed preconditions.
Fixed
- A
qwith no letters or digits, such as?!, now finds nothing. It used to list every fact. - OpenAPI:
createdis a plain boolean on both responses,weeklyis nullable in a form client generators keep, the name pattern no longer has a stray/i, and the batch limit says 50, the real limit. If you generate a client from the document, regenerate it.
Unchanged on purpose
Proposing an action with a used
idempotency_key and the same payload returns the existing action, even if it was denied. A retry mustn't be able to reopen something the owner refused, so use a new key to ask again.