#247: one condition, one diagnosis — and the scratch repos stop being able to hang the suite - #260
Merged
Merged
Conversation
…s stop hanging ONE CONDITION WAS PRODUCING TWO DIAGNOSES. A ref this clone cannot see and a ref that is not a frozen commit shared a message naming neither cause, which never said `git fetch`. Three branches now, with different remedies: a blank pin is a pin defect (an empty ref reads the index); an object this clone has never seen is a fetch problem (shallow, --single-branch, or older than the pin); a ref that resolves to a non-commit is a pin defect. The bogus-sha case is deliberately the second, because that is the truth — the reader cannot tell a bad pin from a missing fetch, and now says so instead of guessing. ROWS() REFUSES A SCALAR ROW BY NAME. `[test_environment]` on the live registry is top-level strings. Classifying such a table CONSUMED — which the partition check's own remediation message invites — used to return an AttributeError from a dict comprehension, in the module whose stated justification is failing legibly. THE SCRATCH REPOSITORIES ARE HERMETIC. All three run git with `-c commit.gpgsign=false -c core.hooksPath=/dev/null` and a timeout. Verified rather than assumed: ran under a HOME whose .gitconfig sets commit.gpgsign=true and points core.hooksPath at a nonexistent directory — four tests pass where they would have failed with a bare CalledProcessError, or with a passphrase-protected key blocked on pinentry and hung the run. The refusal proof's expectations moved with the split, which is the point of having it: two of its five cases now assert different messages because the messages became more precise. C-91 resolved and moved to Resolved Concerns; 22 open -> 21. Suite 421 passed / 1 skipped / 40 xfailed, ruff clean. Closes #247. Epic #241 complete. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
5 tasks
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.
Closes #247. The last story of epic #241.
One condition was producing two diagnoses, neither of them the right one
A ref this clone cannot see and a ref that is not a frozen commit shared a message that named neither cause and never said
git fetch. They have different remedies. Now three branches:git fetch— shallow,--single-branch, or older than the pinThe bogus-sha case is deliberately classified as "this clone cannot see it", because that is the truth: the reader cannot tell a bad pin from a missing fetch, and the message now says so rather than guessing.
rows()refuses a scalar row by name[test_environment]on the live registry is top-level strings, not sub-tables. Classifying such a table CONSUMED — which the partition check's own remediation message invites — used to return anAttributeErrorfrom a dict comprehension, in the module whose stated justification is failing legibly.The scratch repositories are hermetic
All three now run git with
-c commit.gpgsign=false -c core.hooksPath=/dev/nulland an explicit timeout.Verified rather than assumed: ran the suite under a
HOMEwhose.gitconfigsetscommit.gpgsign = trueand pointscore.hooksPathat a nonexistent directory. Four tests pass where they would previously have failed with a bareCalledProcessError— or, with a passphrase-protected key, blocked on pinentry with no timeout and hung the whole run.Mutation-proven three ways, each reverted.
C-91 resolved and moved; 22 open → 21.
🤖 Generated with Claude Code