034d4b4359
Migration #23 adds routing_traces, and internal/store/routingtraces.go writes, lists and prunes it. Nothing calls it yet; the daemon side is the next commit. The utterance is stored in clear. A 384-dimension vector of a short sentence is substantially recoverable, so storing vectors instead would be a privacy claim we cannot support. Retention is 14 days, enforced on write, and an age rather than a row count so a busy Tuesday cannot push last Friday out. Store.Wipe already deletes it with everything else, so explicit deletion needs no new surface. A correction is not covered by that bound. When the owner corrects a turn the pair is promoted out into a seed-shaped row and kept, because a label is not a transcript. What stays here is the transcript, and the transcript expires. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0117tgnmbgZpHVV3XSNw8Qua