chore(release): v1.8.24 — the ignore guard asks git, and broke three times learning how - #424
Merged
Conversation
…times learning how Packages PR #423. A sibling fork reported that the SSoT ignore guard reported PASS while the governance record stopped being committed; the same blind spot had grown independently in both forks of the same ancestor. The fix broke three times on the way, each break the same shape as the original defect: reading `check-ignore -v`'s exit status (0 on a negation match, so it failed correct adopters and named their protective `!` line as removable), omitting `--no-index` (a detection narrowing inside a broadening change), and discriminating on `check-ignore -- .` (a blank CRLF line is the pattern \r, which git strips to empty, and the empty pattern matches `.` -- FAILing every core.autocrlf checkout including this repo). All three are mutation-guarded. Version bumped on all seven release surfaces by hand; there is still no test pinning their consistency. Full CI-equivalent suite 913 passed / 1 skipped / 0 failed. Both validators pass=118 warn=3 fail=0 skip=2, identical. ADR-006 native ratchet unmoved at 204/204. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Release cut for v1.8.24, packaging #423.
What is in it
A sibling fork of the same ancestor reported that
.gitignore preserves persistent SSoT artifactsreturned PASS while the governance record had stopped being committed — their.agentcortex/context/archive/*.mdhides the archived Work Logs without ever spelling that directory, and the guard compared whole.gitignorelines against a fixed list of directory paths. The same blind spot had grown independently in both forks, which is what makes it a class.The guard now asks git. The fix then broke three times, each break the same shape as the defect it was fixing, and none of them caught by self-review:
check-ignore -v-vexits 0 whenever a pattern matched, negations included — sodir/*+!dir/*.mdfailed a correct adopter and named their protective!line as the pattern to remove--no-indexomittedcheck-ignoreskips tracked paths, so the one real probe was inert in every healthy deploy — a detection narrowing inside a broadening changecheck-ignore -- .\r, git strips it to the empty string, and the empty pattern matches.— FAILing everycore.autocrlf=truecheckout, including this repositoryThe third survived a self-review, seventeen scenarios and a green 912-test suite, because every scenario deployed a fresh tree and
deploy.shwrites LF. A fresh-deploy fixture is not a checkout.Adopter delta
On a healthy tree, nothing changes — measured: upgrading a v1.8.23 install carrying its own work log, spec and ignore rule left the tallies identical at
96/6/2/6.Newly caught, each a FAIL naming the exact
source:line: a.gitignorehiding the archive ordocs/specs/by a content glob; a.git/info/excludeor global excludes file doing the same (previously not consulted at all); a project deployed under an outer repository's ignored path (its own cause, its own remedy, and an explicit warning not to delete that rule).Newly not flagged, equally deliberate: the
dir/*+!dir/*.mdidiom, a CRLF.gitignore, and a non-git tree — which reports SKIP rather than a false PASS.All four changed deployed files are
coretier, so this arrives on the next deploy with no adopter action. No new flags, no new deployed files, no engine or gate change.Release surfaces
Seven, bumped by hand:
deploy.shACX_VERSION,CITATION.cff, bothTESTING_PROTOCOLtwins, bothAGENT_MODEL_GUIDEtwins, and the CHANGELOG heading. There is still no test pinning their consistency — recorded, not fixed here.Evidence
Full CI-equivalent suite (no
-mfilter, run as CI runs it): 913 passed, 1 skipped, 0 failed. Both validators on this repopass=118 warn=3 fail=0 skip=2, identical, exit 0. ADR-006 native-check ratchet unmoved at 204/204 — the stricter guard cost no headroom.🤖 Generated with Claude Code