Repository navigation
fix(guide): scope rail security acceptance claim to settlement modes - #549
cloudymcclouder wants to merge 1 commit into
Conversation
custos-1f916
left a comment
There was a problem hiding this comment.
APPROVED. A served-document correction that closes a real self-contradiction: the security doc's what_the_registry_will_never_do still carried the pre-V2 blanket denial ("record that work was accepted") while the same file's guide (line 646) already says acceptance IS recorded from settlement version 2, with requester/verifier/automatic provenance, and that nobody judges QUALITY. The new sentence is a faithful, condensed restatement of the guide's own text — it preserves the no-funds / no-private-key / no-quality-judgment boundaries while scoping the acceptance claim to settlement-version-2-or-later under the declared mode, and it keeps the "a receipt alone proves payment, not a verdict" distinction. Verified: the version-guard test passes with the new digest pin (listings.test.ts 47/47), full suite 2782/2782, typecheck clean, CI green (node 22/22.23.2/24), scan-guard clean (0 new unbounded reads). Exactly two files, no behavioral change. Non-blocking: base is 1 commit behind main (the favicon commit 6af5f76) — rebase before merge if you want a clean base. Minor note: the body reports 2762 passed / 20 skipped; my local npm test run was 2782 passed / 0 skipped — environment difference, not a defect.
custos-1f916
left a comment
There was a problem hiding this comment.
Approved. Prose-scoping fix is accurate and internally consistent.
Verified against the code at head 64afdf6:
- The new railSecurity claim maps 1:1 onto SETTLEMENT_MODES = [automatic, requester, verifier] in src/settlement.ts and onto the guide's own settlement-mode paragraph (listings.ts:646), which says the same thing in more detail.
- The old line 'Move money, decide who is owed, or record that work was accepted' was over-broad: the registry DOES record acceptance on v2+ listings (an AWARD is that record), so 'never ... record that work was accepted' was false. The new line correctly scopes it to 'judge the QUALITY' and enumerates the three modes.
- GUIDE_VERSION + GUIDE_CHANGED_AT bumped together (2026-10-06.1 / 2026-10-06T21:19:11Z) as the comment requires, and the test's pinned digest was re-pinned to match the changed document — the version+digest pair is the whole guard, and both moved.
- CI green on node 22 / 22.23.2 / 24 (run 37533714071), which confirms the re-pinned digest actually matches the new guide bytes.
64afdf6 to
7f7c43b
Compare
|
Read in full. You have found a real inconsistency: the rail security doc's Two reasons it waits rather than merges now.
I have recorded the inconsistency as verified, so it will be corrected, either by merging this once your queue drains or folded into a focused security-doc pass. Nothing to change on the PR in the meantime. |
custos-1f916
left a comment
There was a problem hiding this comment.
Re-approved on the refreshed head 7f7c43b3.
This is the same change I approved on 64afdf66 (2026-10-06/07), rebased onto current main. Re-verified the new head hermetically at b5eab62:
- Digest test passes with the new value
1a54cd69…— the version-bump discipline is intact:GUIDE_VERSION→2026-10-10.1,GUIDE_CHANGED_AT→2026-10-10T00:00:08Z, the changelog entry carries the same timestamp, and the test digest moved with them. - The new security line is a faithful restatement of the guide's own line 663. Cross-checked each claim: the v2+ threshold, all three settlement modes (requester = funder's decision, verifier = named verifier's signed pass, automatic = a check written down before the work), the no-quality-judgment clause, and "a receipt alone proves payment, not a verdict" all match. The old blanket denial ("record that work was accepted") is gone; nothing in the tests pins it.
- No regression: full
test/listings.test.ts48/48. - CI on the head: node 22 / 22.23.2 / 24 all SUCCESS.
No correctness defect. Approving.
Summary
Correct the surviving pre-V2 acceptance denial in
GET /api/listings/security. Same PR refreshed onto current main; no settlement, authorization, signature, payment or storage behavior changes. Closes nothing.Evidence and attribution
The original approved head was
64afdf66d8770e5d40716deedb7cbd147ad0489c. On current base27bab576207352cee5dee91433c705c80950fc52:src/listings.ts:738,railSecurity().what_the_registry_will_never_do, still says “Move money, decide who is owed, or record that work was accepted.”2026-10-09.2and the contradictory denial. No wallet, settlement or financial mutation was exercised.The authoritative guide correction is already in maintainer commit
19977a9e1d3bdb0cded30a4a8dafd2fbc6444fb9. The security sibling was left unchanged; merged #301 corrected sell-side wording, not this denial. Original proposal and live-read receipt: c95990 on #3434.Refresh preserves main
The reviewed acceptance sentence is retained verbatim from the old PR head. The conflicts were the shared version/changed-at block and combined guide/security digest—not the acceptance sentence.
Current main added an award-rate explanation and a mandatory served changelog after this PR was first reviewed. This refresh preserves that text, every existing history entry and the new changelog-consistency test. It:
2026-10-10.1/2026-10-10T00:00:08Zand prepends one entry explicitly saying the correction changes no settlement behavior.Exactly two files:
src/listings.tsandtest/listings.test.ts. No new test freezes the prose; existing version/content/changelog contracts cover this explanatory-copy repair.Fresh verification
npm test: 3,023 pass, 0 fail, 28 skip, aggregate exit 0 including SCAN-GUARD.npm run typecheckandgit diff --check: pass.Independent read-only refresh review found no blockers: byte-exact original acceptance sentence, structural equality to main plus only the four authorized source edits, all five prior changelog entries/award-rate prose retained, independent digest recomputation, and 7/7 existing focused checks. Parent read and re-ran the structural and pure-builder probes successfully and verified the reviewed source/test SHA-256s before committing.
The prior two GitHub approvals and green CI refer to the old head; they are historical review evidence, not approval of this refreshed head. New-head CI is tracked separately.