Remove a tool's local config that a git add -A swept into the release - #333
Merged
Conversation
`.serena/` is written by an MCP server into whatever directory it was pointed at, and it records that directory's name. A copy committed from a worktree therefore ships that worktree's label: v0.5.0 carries `project_name: "t1124"`, which is meaningless to anyone who clones it and wrong for anyone who uses the same tool. It entered at `51abef8` -- the T-1124 merge -- because the commit before it staged with `git add -A` in a worktree where the server had left the directory untracked. Nothing failed, because nothing looks: the manifest test asserts that every *declared* file parses in a clean clone, and a file nobody declared is invisible to that. Distribution here is a clone (ADR-0011), so an undeclared file ships as surely as a declared one. Removed and ignored. Ignoring it is the part that lasts: the file will be recreated in every worktree the server is pointed at, so the next `-A` would otherwise put it back. Not a functional defect, and not worth a patch release on its own -- the file is inert. It is recorded here rather than quietly dropped because the release that carried it is tagged, and a later reader comparing the v0.5.0 tree against this one should find the reason rather than a silent deletion. Record-Id: r-strayserena Limit: a clean clone is the distribution, so an undeclared file ships; the manifest test checks declared files parse and cannot see a file nobody declared Ruled-out: Cutting 0.5.1 for this | the file is inert -- it changes no behaviour and breaks no install -- and a release exists to move something a user needs Ruled-out: Deleting it without a record | the tag that carries it is immutable, and a later reader comparing the two trees deserves the reason rather than an unexplained absence Ruled-out: Adding a stray-file assertion in this commit | test/manifest.test.ts belongs to another ticket's scope, and the guard is worth its own issue rather than a drive-by edit here Certainty: firm Blast: local Undo: easy Verified: the manifest and install-script suites pass at 34 with the directory gone; typecheck clean; the tree no longer carries .serena and .gitignore now excludes it Unverified: nothing executable changed
CommitLore — record lintTrailers: clean — 1 commit in Active constraints for the paths this PR touchesLimits (4)
Ruled out (16)
Warnings (5)
Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
.serena/is written by an MCP server into whatever directory it is pointed at, and it records that directory's name. A copy committed from a worktree ships that worktree's label — v0.5.0 carriesproject_name: "t1124", which is meaningless to anyone who clones it and wrong for anyone who uses the same tool.It entered at
51abef8(the T-1124 merge), because the commit before it staged withgit add -Ain a worktree where the server had left the directory untracked.Why nothing caught it
test/manifest.test.tsasserts every declared file parses in a clean clone. A file nobody declared is invisible to that check. Distribution here is a clone (ADR-0011), so an undeclared file ships as surely as a declared one.Filed as #334 — a guard belongs in a file this change does not own.
Not a patch release
The file is inert: it changes no behaviour and breaks no install. It is recorded rather than quietly dropped because the tag that carries it is immutable, and a later reader comparing the v0.5.0 tree against this one should find the reason instead of an unexplained absence.
Verification
test/manifest.test.ts,test/install-script.test.ts— 34 passednpm run typecheckclean.gitignorenow excludes it, which is the part that lasts: the directory is recreated in every worktree the server touches, so the next-Awould otherwise put it back