Repository navigation
KNOWN-LIMITS 84: matcher stamp misses 23 helpers its hashed rules call (tripwire + entry) - #94
Open
githubscum wants to merge 1 commit into
Open
githubscum wants to merge 1 commit into
githubscum wants to merge 1 commit into
Conversation
…wire test Measured and proven by mutation: 18 helper functions and 5 regex constants in the policy module decide gate outcomes from outside matcherHashInputs(). A weakened brace split stamps byte-identical to the stronger one. Tripwire test asserts the defect and was checked to fail on the natural fix. Fix is core, queued for a signing sitting. Pin re-stamped. Co-Authored-By: Claude Opus 5.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.
WO: WO-L84-01 + WO-L84-02 (Lotor lane run 80). Addresses: a new limit, 84: the matcher stamp still misses helpers its hashed rules call. This is the candidate run 77 flagged (
firstBraceGroup,matchableCommand), measured, and it turned out to be 23 names, not 2.What this PR is: docs and a test. No core file touched. The fix itself is core (the policy module's
matcherHashInputs()) and queues for a signing sitting.What changed
KNOWN-LIMITS.md: new entry 84, pin re-stamped.test/policy-matcher-stamp-helpers.test.js: a tripwire in the same form as the limit-63 one. It asserts the defect today and fails on purpose when the fix lands.Evidence (executed, not read)
matcherHashInputs(). 21 of 57 are hashed. 18 functions and 5 constants are called or referenced from hashed text but their own source is not hashed.matchableCommandwith prose stripping removed:isPushForceongit commit -m "do not git push --force"goes from false to true.firstBraceGroupreturning null: self-mod ontouch src/g{a,x}te/x.jsgoes from true to false. This is an under-gate.e0877fab0f459e0c.partsmade the test go 2 pass / 23 fail, as designed. On this branch it is 25/25.npm test: 1404 tests, 1399 pass, 0 fail (main is 1379; this adds 25).Executor and verification
model: glm-5.3-flashfor both sessions, and the only file touched is the test file.const NAME =, which would never trip on the natural fix (NAME.toString()emits the literal). WO-02 changed them to key on the regex literal, and check 3 above confirms they now trip.Eval served: none of E1-E6. This is stamp integrity (R-trust), not v3 granularity. The v3 spec has nothing unstarted except V3-07, which is still unruled.
What a reviewer should doubt
evaluate()-only callees (isImplicitProtectedPush) and helpers reached only through other unhashed helpers (INLINE_CODE_FLAG,PRESIGN_PARAM_PREFIX) are named in the entry but not tested. The sitting fix should probably derive the list from the call graph instead of extending it by hand again.\bNAME\(is textual. A call inside a comment in hashed text would satisfy it. I checked that the hits are real call sites, but the test does not enforce it.fsto find the literals. If a constant is reformatted onto two lines,regexLiteralOfthrows instead of passing silently. That is the right failure direction, but it is noisy.