Skip to content

Write down the title-writer invariant where it is enforced - #62

Merged
gengwg merged 1 commit into
mainfrom
docs/title-invariant
Sep 7, 2026
Merged

gengwg merged 1 commit into
mainfrom
docs/title-invariant

Conversation

@gengwg

@gengwg gengwg commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Comment only, no behaviour change.

The reviewer's closing point was that the setTitle / renameSession split is now both the correctness rule (a later, worse guess must not clobber a good title) and the security boundary (both mask, and an adapter reaching for the column directly bypasses redaction — which one did until v0.12.5). That invariant was not written down anywhere; it now sits above the two statements that enforce it.

93 tests pass.

https://claude.ai/code/session_01NZDHk4yVYP4jMZkTUMQ1Lw

sessions.title has exactly two writers: setTitle fills an empty title so a
later, worse guess cannot clobber a good one, and renameStmt overwrites
for a harness that names a session after the fact. Both mask, which makes
the split the security boundary as well as the correctness rule - an
adapter reaching for the column directly bypasses redaction, and one did
until v0.12.5.

Comment only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NZDHk4yVYP4jMZkTUMQ1Lw
@gengwg
gengwg merged commit 6231859 into main Sep 7, 2026
1 check passed
@gengwg
gengwg deleted the docs/title-invariant branch September 7, 2026 23:11
gengwg added a commit that referenced this pull request Sep 8, 2026
Write down the title-writer invariant where it is enforced
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant