muninn_memory_update
Update an existing memory's text, tags, decay score, occurredAt, or project. memoryId may be a short-form (8-char) prefix. Two ways to change text: pass text to replace the WHOLE body, OR pass replacements:[{old,new}] for surgical find-and-replace — each old must match EXACTLY ONCE or the whole update is rejected atomically (nothing is written), so a two-line edit to a long memory costs one pair instead of resending thousands of words. Regenerates the embedding ONLY if text actually changes. tags REPLACES the whole list. Returns a compact {id, tags, project, updatedAt, embeddingRegenerated, length} — length is the stored char count, your self-verify signal (the body is never echoed back). When you used replacements, the result also carries replacements: so you can confirm how many spots were hit. For a tags-only edit, prefer muninn_memory_tag. hideRank:true takes a memory out of Ranking and boot's mostAccessed, false puts it back; omit it to leave it as it is. This is also how you EDIT AN ARTIFACT'S BODY — an artifact's artifactId IS its memoryId; there is no separate muninn_artifact_update. If the artifact is currently published, its public link is refreshed automatically. Optional expectedRev: pass the rev your last muninn_memory_get / muninn_artifact_get returned and the write is REJECTED (nothing written) if someone changed the body since you read it, instead of silently overwriting them. Omit it when you read and write in the same breath.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | New tags (replaces existing tags) | |
| text | No | New text content — replaces the WHOLE body. Mutually exclusive with replacements. | |
| preview | No | Updated 1–2 sentence summary. Pass when text changed. If omitted, existing preview is preserved. | |
| project | No | New project slug. Pass empty string '' to clear back to global. Omit to leave unchanged. | |
| hideRank | No | Keep this memory out of the Ranking view and out of the "most accessed" block of session boot. Set true for anything whose reads come from tooling, not from interest: session state, a checkpoint, carryover notes, a run or sync log, a scratch note for the next session of one tool. Leave false for anything a person might want surfaced because it keeps coming up: a decision, a profile, a preference, an article, a changelog entry. When unsure, leave false; a hidden memory is still found by search, tag and get. Omit to leave the current setting. | |
| memoryId | Yes | The memory ID to update (full UUID or unique 8-char prefix) | |
| decayScore | No | New decay score between 0 and 1 | |
| occurredAt | No | Corrected ISO 8601 datetime of when the event actually happened. Used for chronological ordering. | |
| expectedRev | No | The `rev` from the read you based this edit on. Rejects the write if the body has changed since. Omit to skip the check. | |
| replacements | No | Surgical find-and-replace pairs applied in order. Each `old` must match exactly once or the entire update is rejected (atomic). Use instead of `text` to edit a few lines of a long memory cheaply. |