docs: record the memory API decisions, including the one declined
Keeps the reasoning behind PR #19 next to the code, since none of it is recoverable from the diff: why memory_get stopped returning the embedding and tsvector, why memory_patch refuses ambiguous matches rather than picking one, and why memory_append was dropped as redundant with patch. Also records P3 (mechanising file->memory mirroring) as DECLINED with its reasoning and, more usefully, the condition that would reopen it — the mirror going stale again now that patching is cheap. The evidence we had pointed at edit cost, which P2 fixed; if drift recurs the cause was attention instead, and the answer is probably to remove the duplication rather than build a drift detector for it. Notes two traps for anyone extending this: content_tsv is a generated column so full-text search cannot rot after a patch (only the embedding needs recomputing), and the obvious "does search find the patched text" acceptance check therefore passes on an implementation that skips re-embedding entirely. The brief previously lived outside the repo. Moved rather than copied — two hand-maintained copies is the exact drift problem described in the document. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -655,6 +655,20 @@ the `lint` script is a cheap way to keep it that way.
|
||||
|
||||
---
|
||||
|
||||
## Design notes
|
||||
|
||||
`docs/` holds decision records for changes whose reasoning isn't recoverable
|
||||
from the diff — what was built, what was deliberately rejected, and what would
|
||||
reopen a closed question.
|
||||
|
||||
- [`docs/memory-api-improvements.md`](docs/memory-api-improvements.md) — why
|
||||
`memory_get` stopped returning the embedding and tsvector, why `memory_patch`
|
||||
refuses ambiguous matches instead of guessing, why `memory_append` was
|
||||
dropped, and why file-mirroring was left as a convention rather than
|
||||
mechanised.
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **`401 claim invalid: aud`** from `/api/mcp` — your MCP client isn't
|
||||
|
||||
Reference in New Issue
Block a user