Row 286 r6: shorten two fixture values for secrets guard and record green reruns (sage-4112)

This commit is contained in:
jason.woltje committed 2026-10-24 09:20:22 -05:00
1 parent af988f6526
commit 5d7801dc19
13 files changed
+1353 -5

No files matched your search

+2
View File
@@ -5528,3 +5528,5 @@ claim. Receipts and limitations in agents/lena/work/queue-296/BUILD.md and run-r
- 2026-10-24 (rockerduck, row286 / #1791, r5 before gate, sage-4097/4100): transplanted r4 onto 1f3d0350f; kept row285 library.write routing and chief write-grant refusal plus both append-log histories. Chief fixture refs added; T7/T9 mint setup now pins real refusal then seeds read-only fixture as explicitly ruled, keeping real revoke/fire assertions. Scratch role declaration mutation removed; range-diff/drift evidence recorded. No r5 tests yet; CLEAR starts after own-branch push. - 2026-10-24 (rockerduck, row286 / #1791, r5 before gate, sage-4097/4100): transplanted r4 onto 1f3d0350f; kept row285 library.write routing and chief write-grant refusal plus both append-log histories. Chief fixture refs added; T7/T9 mint setup now pins real refusal then seeds read-only fixture as explicitly ruled, keeping real revoke/fire assertions. Scratch role declaration mutation removed; range-diff/drift evidence recorded. No r5 tests yet; CLEAR starts after own-branch push.
- 2026-10-24 (rockerduck, row286 / #1791 r5 gate, sage-4097/4100): own-worktree installs; touched credential6/6 and sync24/24; whole library151/151 and bus981/981, zero fail/skip/cancel. P1 forced refspec, P2 missing inode compare and B285-M1 chief write-grant guard each killed on ERR_ASSERTION with green before/after controls and exact restoration hashes. All gate-output fixture searches zero. No normal red; source unchanged after pre-gate push045eec61a. Plain text evidence in agents/rockerduck/work/queue-286/BUILD.md and gate-r5; round2 candidate push follows. - 2026-10-24 (rockerduck, row286 / #1791 r5 gate, sage-4097/4100): own-worktree installs; touched credential6/6 and sync24/24; whole library151/151 and bus981/981, zero fail/skip/cancel. P1 forced refspec, P2 missing inode compare and B285-M1 chief write-grant guard each killed on ERR_ASSERTION with green before/after controls and exact restoration hashes. All gate-output fixture searches zero. No normal red; source unchanged after pre-gate push045eec61a. Plain text evidence in agents/rockerduck/work/queue-286/BUILD.md and gate-r5; round2 candidate push follows.
- 2026-10-24 (rockerduck, row286 / #1791 r6, sage-4112 / #1825): corrected only two fixture constants to unique19-character values after the landing secrets check refused r5. No waiver/guard/assertion/product change. Added-package-lines secrets grep empty; touched6/6+24/24, library151/151, bus981/981 on fresh shortTMP timeout-k10; both exact new values absent from all four outputs. Mutants not rerun as directed. Plain evidence in agents/rockerduck/work/queue-286/BUILD.md and gate-r6; new manifest/push and round3 follow.
+49
View File
@@ -1201,3 +1201,52 @@ receipts, excluding shared append logs and itself. Round2 reviews must examine
sage-4100's reversal of mint setup as well as the base delta. sage-4100's reversal of mint setup as well as the base delta.
Scratch gate directory retained: /mnt/storage/scratch/tmp/ZMiVek Scratch gate directory retained: /mnt/storage/scratch/tmp/ZMiVek
## r6 correction and CLEAR gate — sage-4112 / #1825 (2026-10-24)
R5 passed Boyd/Dewey and Sage's landing gate, but the landing push was correctly
refused by #1825's added-line secrets detector. Two newly added fixture constants
had 31-character literal values matching its secret shape. No waiver, no guard
change. The refused landing was not pushed; this is a correction to that candidate.
New branch rockerduck/row286-r6 starts at approved r5 ec8cb10c0. Exactly two package
lines differ: SLOT_TOKEN in bus/tests/library-credential.test.mjs and SEAT_TOKEN in
library/tests/sync.test.mjs each now have a unique 19-character made-up value.
Constant names, every assertion, helper, production byte and all other package bytes
remain identical. Exact repository search finds each new value once, at its source
definition. Values are omitted from this evidence to preserve uniqueness.
The requested pipeline was executed using subprocess argument arrays to preserve
its regex literally: git diff -U0 1f3d0350f -- packages, grep ^+, then grep -i -E
with sage-4112's exact (token|secret|password) literal detector. Result: no output,
0 matches, final grep rc1 (no match). Plain receipt in gate-r6/secrets-pattern-scan.txt.
No scripts/push-check.sh edit or bypass.
Fresh short TMPDIR created with mktemp -d /mnt/storage/scratch/tmp/XXXXXX. Existing
node_modules remains the own-worktree install made for r5, with no canonical link.
All runs used timeout -k 10, focused180s/library900s/bus1800s:
- node --test packages/bus/tests/library-credential.test.mjs: 6/6, exit0.
- node --test packages/library/tests/sync.test.mjs: 24/24, exit0.
- node --test packages/library/tests/*.test.mjs: 151/151, exit0.
- node --test packages/bus/tests/*.test.mjs: 981/981, exit0.
All four: zero fail/cancel/skip/todo; no normal red and no assertion edits.
Mutants not rerun, explicitly waived by sage-4112 for the value-only correction;
production code and assertions are unchanged, and the r5 mutant receipts remain.
Each captured output was searched for both exact new values in memory: every count
is zero. Legacy fixture-prefix search also zero. Counts only are recorded in
gate-r6/token-search.txt; full text outputs are alongside it. The existing
appears-nowhere-but-file assertions still run unchanged, so the shorter values
retain the original leak-check meaning. Source definitions alone are not counted
as runtime leakage.
The initial static edit helper had a Python syntax error before making any edit;
it was corrected before the two replacements. No test/setup failure resulted.
R5 manifest preserved as candidate-r5.sha256. Regenerated candidate includes this
correction and r6 plain-text gate receipts; package scope remains the same nine
paths inherited from the row, with only the two value replacements since r5.
No source edits after the green runs. Round3 Boyd/Dewey review and Sage's fresh
landing gate precede any refactor push.
R6 scratch gate directory retained: /mnt/storage/scratch/tmp/iGjm8u
@@ -1,7 +1,8 @@
7fab157be380502b726c4a84772bfb667850766062e4952b73f172f5ada363ed agents/ludwig/work/queue-286/BUILD.md 7fab157be380502b726c4a84772bfb667850766062e4952b73f172f5ada363ed agents/ludwig/work/queue-286/BUILD.md
3b19f4e6e569fabe701e2068bbded1e2e52cd1451fe98e198530c86d046df91b agents/rockerduck/work/queue-286/BUILD.md 261bc9194c1f621c1f5bde1410b65e51c6a32b980e23fa6e99e0f2ad180115b7 agents/rockerduck/work/queue-286/BUILD.md
1698321de2b17251ae3dd55bf3b79e03770d20d932fb60d514ee58700f80fb3b agents/rockerduck/work/queue-286/candidate-r3.sha256 1698321de2b17251ae3dd55bf3b79e03770d20d932fb60d514ee58700f80fb3b agents/rockerduck/work/queue-286/candidate-r3.sha256
647776d3f75e00023ce1a1b286ff67a0f7a4958165dcebe24216fb6bde27e610 agents/rockerduck/work/queue-286/candidate-r4.sha256 647776d3f75e00023ce1a1b286ff67a0f7a4958165dcebe24216fb6bde27e610 agents/rockerduck/work/queue-286/candidate-r4.sha256
ff4460fa002c8d6724d513eaafd2b458dcf0b0adb1155ad9b42c11f21bf9e954 agents/rockerduck/work/queue-286/candidate-r5.sha256
e5026111e3c84f1294c80631fc5d5dad6dc77166209acdfd07c6ea8755469e19 agents/rockerduck/work/queue-286/gate-bus.txt e5026111e3c84f1294c80631fc5d5dad6dc77166209acdfd07c6ea8755469e19 agents/rockerduck/work/queue-286/gate-bus.txt
4e191637baa4d8683679fd6e84d81e29ec6fe64faf38b4b33f9b5965fce1dfcf agents/rockerduck/work/queue-286/gate-library.txt 4e191637baa4d8683679fd6e84d81e29ec6fe64faf38b4b33f9b5965fce1dfcf agents/rockerduck/work/queue-286/gate-library.txt
bb60e11b8d74da9eda11f838d99713871c55af43857811941bc1f98a3bc54ed8 agents/rockerduck/work/queue-286/gate-r5/B285-M1-chief-write-control.txt bb60e11b8d74da9eda11f838d99713871c55af43857811941bc1f98a3bc54ed8 agents/rockerduck/work/queue-286/gate-r5/B285-M1-chief-write-control.txt
@@ -19,6 +20,12 @@ bb60e11b8d74da9eda11f838d99713871c55af43857811941bc1f98a3bc54ed8 agents/rockerd
95f0d339495713d55a98fba6336a23e37023cdac429725647f71b30774f622a6 agents/rockerduck/work/queue-286/gate-r5/token-search.txt 95f0d339495713d55a98fba6336a23e37023cdac429725647f71b30774f622a6 agents/rockerduck/work/queue-286/gate-r5/token-search.txt
33b7f339b6d8e45fa049f19cc07d9a21ec8d9294ae74e7fa0201d5a2c777897f agents/rockerduck/work/queue-286/gate-r5/touched-credential.txt 33b7f339b6d8e45fa049f19cc07d9a21ec8d9294ae74e7fa0201d5a2c777897f agents/rockerduck/work/queue-286/gate-r5/touched-credential.txt
f08f55c5d326acb1dfa5e91f1e3a7c33ec1f1a7044e3e9829f59bd1306e6d584 agents/rockerduck/work/queue-286/gate-r5/touched-sync.txt f08f55c5d326acb1dfa5e91f1e3a7c33ec1f1a7044e3e9829f59bd1306e6d584 agents/rockerduck/work/queue-286/gate-r5/touched-sync.txt
06774fff57c357a666d578399e6006e4c75bddfe08624b4c16abfbc8453d7fe3 agents/rockerduck/work/queue-286/gate-r6/bus.txt
572fcba8a9a4f59d7b63ddc00a1928dc3f6988831b06b6210a770ce4361c7bc7 agents/rockerduck/work/queue-286/gate-r6/library.txt
2c2c9c47e81275c23839e79cb065b12da17c7c9f439c1e0506ca420afaa1861d agents/rockerduck/work/queue-286/gate-r6/secrets-pattern-scan.txt
a1946f1d1a6961dd876d022c10fa528310d34d5d5234de0021d24b242344a10b agents/rockerduck/work/queue-286/gate-r6/token-search.txt
ebaf8a545bcaaf279b7c5e140d6f51c6afa9b998db7f5405d8291abf4f1dd463 agents/rockerduck/work/queue-286/gate-r6/touched-credential.txt
398d383effcbbbe80bd48af246359984766a63c72c1b2422d6c382d66f58dc6c agents/rockerduck/work/queue-286/gate-r6/touched-sync.txt
50291819572752733a1c33e846e1e1e8d66e89b677a6a6d0cc7d2402e8fa82ea agents/rockerduck/work/queue-286/mutant-M1.txt 50291819572752733a1c33e846e1e1e8d66e89b677a6a6d0cc7d2402e8fa82ea agents/rockerduck/work/queue-286/mutant-M1.txt
ade72e9641ac5ee97b1ceaa266d54b48d28d0d613f415a030547963664a04646 agents/rockerduck/work/queue-286/mutant-M2.txt ade72e9641ac5ee97b1ceaa266d54b48d28d0d613f415a030547963664a04646 agents/rockerduck/work/queue-286/mutant-M2.txt
f640bc30c0e07dad11d57f8f00397a76638f5fbc4c71fc56e748f9cb6f4e30e1 agents/rockerduck/work/queue-286/range-diff-r4.txt f640bc30c0e07dad11d57f8f00397a76638f5fbc4c71fc56e748f9cb6f4e30e1 agents/rockerduck/work/queue-286/range-diff-r4.txt
@@ -26,10 +33,10 @@ a0b7fb45d5bbf213a9a01ddf25c5306f2d280544ed452ced2cf329ab6ac6590d agents/rockerd
b3b9a19825a43f33942746bbaaa93670453d4f21b63005d915d9cf92523e9143 agents/rockerduck/work/queue-286/token-search.txt b3b9a19825a43f33942746bbaaa93670453d4f21b63005d915d9cf92523e9143 agents/rockerduck/work/queue-286/token-search.txt
9e16ff6225cf5e438b0694e2f2b5831c2750f2d0dfc43c7f2f257d8cdacf9ffd packages/bus/src/broker.mjs 9e16ff6225cf5e438b0694e2f2b5831c2750f2d0dfc43c7f2f257d8cdacf9ffd packages/bus/src/broker.mjs
19f69252b3d0ea8d8098044a4ff7e2a6ba5d4fd7a4995bf0494395ad8a1a065c packages/bus/src/runtime.mjs 19f69252b3d0ea8d8098044a4ff7e2a6ba5d4fd7a4995bf0494395ad8a1a065c packages/bus/src/runtime.mjs
693e669a8182c320e028389d55cfeed07504104ffe2b0faf8a8d86e9d6f6ff61 packages/bus/tests/library-credential.test.mjs dbea638240c93e8ef5e408b9ba00780eba155704a283628afe7afb9a12ebbbaf packages/bus/tests/library-credential.test.mjs
d9c523d830c57df9fedf5cb42e6c74999fde529751e8a5eea95b3ae097d8548d packages/library/README.md d9c523d830c57df9fedf5cb42e6c74999fde529751e8a5eea95b3ae097d8548d packages/library/README.md
5c9b528fd69a2493f04933fc84f352b1101d276d69d9982806975def614fd740 packages/library/bin/askpass 5c9b528fd69a2493f04933fc84f352b1101d276d69d9982806975def614fd740 packages/library/bin/askpass
143cafb4984921f6a6e45adcbb812ac402f2ad146ea58de4a0cb8e7c67a6b002 packages/library/src/index.mjs 143cafb4984921f6a6e45adcbb812ac402f2ad146ea58de4a0cb8e7c67a6b002 packages/library/src/index.mjs
0bea0f3553ecfca8bee81e545faf5142e5fa6521ea971fbd2d8a78932d644f2b packages/library/src/mirror.mjs 0bea0f3553ecfca8bee81e545faf5142e5fa6521ea971fbd2d8a78932d644f2b packages/library/src/mirror.mjs
784af63a417b547b195ca835878daeba5b696b42a83a4c95de6728a0efa75e38 packages/library/src/sync.mjs 784af63a417b547b195ca835878daeba5b696b42a83a4c95de6728a0efa75e38 packages/library/src/sync.mjs
c8500795d80f56536f0ffd17bcad4f38778d4b06ec39030200c17f31c750ac94 packages/library/tests/sync.test.mjs 675d55efac16fcca7d2fd0b1978cabbb5132096adeff21729b6f8fa9b8a3cdb8 packages/library/tests/sync.test.mjs
@@ -0,0 +1,35 @@
7fab157be380502b726c4a84772bfb667850766062e4952b73f172f5ada363ed agents/ludwig/work/queue-286/BUILD.md
3b19f4e6e569fabe701e2068bbded1e2e52cd1451fe98e198530c86d046df91b agents/rockerduck/work/queue-286/BUILD.md
1698321de2b17251ae3dd55bf3b79e03770d20d932fb60d514ee58700f80fb3b agents/rockerduck/work/queue-286/candidate-r3.sha256
647776d3f75e00023ce1a1b286ff67a0f7a4958165dcebe24216fb6bde27e610 agents/rockerduck/work/queue-286/candidate-r4.sha256
e5026111e3c84f1294c80631fc5d5dad6dc77166209acdfd07c6ea8755469e19 agents/rockerduck/work/queue-286/gate-bus.txt
4e191637baa4d8683679fd6e84d81e29ec6fe64faf38b4b33f9b5965fce1dfcf agents/rockerduck/work/queue-286/gate-library.txt
bb60e11b8d74da9eda11f838d99713871c55af43857811941bc1f98a3bc54ed8 agents/rockerduck/work/queue-286/gate-r5/B285-M1-chief-write-control.txt
1b659445b779b6ba0ccbddc9f1c4c20d6dad7aeee8b59ee6c4dad97beec067c6 agents/rockerduck/work/queue-286/gate-r5/B285-M1-chief-write-mutant.txt
bb60e11b8d74da9eda11f838d99713871c55af43857811941bc1f98a3bc54ed8 agents/rockerduck/work/queue-286/gate-r5/B285-M1-chief-write-restored.txt
a6e9e05ee925068c53bd22ad0dac905f1d4855f81d54943b6b44fe8beb934deb agents/rockerduck/work/queue-286/gate-r5/P1-force-push-control.txt
1253e62d913b8b2ef60a63149c0c1dbcd94ca348011d0a59aca11810ead1c13f agents/rockerduck/work/queue-286/gate-r5/P1-force-push-mutant.txt
a6e9e05ee925068c53bd22ad0dac905f1d4855f81d54943b6b44fe8beb934deb agents/rockerduck/work/queue-286/gate-r5/P1-force-push-restored.txt
bb60e11b8d74da9eda11f838d99713871c55af43857811941bc1f98a3bc54ed8 agents/rockerduck/work/queue-286/gate-r5/P2-drop-inode-control.txt
b0d2c28880856007400440f6158fd9ed2032a33de44540d419c8eb303e32fbf5 agents/rockerduck/work/queue-286/gate-r5/P2-drop-inode-mutant.txt
bb60e11b8d74da9eda11f838d99713871c55af43857811941bc1f98a3bc54ed8 agents/rockerduck/work/queue-286/gate-r5/P2-drop-inode-restored.txt
154bb3d6772186ec889e54b546929b799bf31648db7d3590f097aba4c539dde1 agents/rockerduck/work/queue-286/gate-r5/bus-r5.txt
909bf1e6bd694275bb2555956673a330689d5acaaa9702eb2c040a5938900d60 agents/rockerduck/work/queue-286/gate-r5/library-r5.txt
2d8a4f70e4a59dcccf147060af9c21930499a14de209889fec59e22244b0ba4e agents/rockerduck/work/queue-286/gate-r5/mutants-summary.txt
95f0d339495713d55a98fba6336a23e37023cdac429725647f71b30774f622a6 agents/rockerduck/work/queue-286/gate-r5/token-search.txt
33b7f339b6d8e45fa049f19cc07d9a21ec8d9294ae74e7fa0201d5a2c777897f agents/rockerduck/work/queue-286/gate-r5/touched-credential.txt
f08f55c5d326acb1dfa5e91f1e3a7c33ec1f1a7044e3e9829f59bd1306e6d584 agents/rockerduck/work/queue-286/gate-r5/touched-sync.txt
50291819572752733a1c33e846e1e1e8d66e89b677a6a6d0cc7d2402e8fa82ea agents/rockerduck/work/queue-286/mutant-M1.txt
ade72e9641ac5ee97b1ceaa266d54b48d28d0d613f415a030547963664a04646 agents/rockerduck/work/queue-286/mutant-M2.txt
f640bc30c0e07dad11d57f8f00397a76638f5fbc4c71fc56e748f9cb6f4e30e1 agents/rockerduck/work/queue-286/range-diff-r4.txt
a0b7fb45d5bbf213a9a01ddf25c5306f2d280544ed452ced2cf329ab6ac6590d agents/rockerduck/work/queue-286/range-diff-r5.txt
b3b9a19825a43f33942746bbaaa93670453d4f21b63005d915d9cf92523e9143 agents/rockerduck/work/queue-286/token-search.txt
9e16ff6225cf5e438b0694e2f2b5831c2750f2d0dfc43c7f2f257d8cdacf9ffd packages/bus/src/broker.mjs
19f69252b3d0ea8d8098044a4ff7e2a6ba5d4fd7a4995bf0494395ad8a1a065c packages/bus/src/runtime.mjs
693e669a8182c320e028389d55cfeed07504104ffe2b0faf8a8d86e9d6f6ff61 packages/bus/tests/library-credential.test.mjs
d9c523d830c57df9fedf5cb42e6c74999fde529751e8a5eea95b3ae097d8548d packages/library/README.md
5c9b528fd69a2493f04933fc84f352b1101d276d69d9982806975def614fd740 packages/library/bin/askpass
143cafb4984921f6a6e45adcbb812ac402f2ad146ea58de4a0cb8e7c67a6b002 packages/library/src/index.mjs
0bea0f3553ecfca8bee81e545faf5142e5fa6521ea971fbd2d8a78932d644f2b packages/library/src/mirror.mjs
784af63a417b547b195ca835878daeba5b696b42a83a4c95de6728a0efa75e38 packages/library/src/sync.mjs
c8500795d80f56536f0ffd17bcad4f38778d4b06ec39030200c17f31c750ac94 packages/library/tests/sync.test.mjs
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,160 @@
✔ C2-06 reply schema: free bodies, exact objects and safe refusal reasons (28.003888ms)
✔ C2-06 citation setting and all four exact fixed texts (21.045692ms)
✔ C2-06 default citation cap passes 20 and refuses 21, even with optional citations (126.04528ms)
✔ C2-06 real Git citation scope, reachability, lines and normalized quotes (66.392856ms)
✔ C2-06 playground cites pass but cannot state canon (44.49242ms)
✔ C2-06 independent universes refuse; a hybrid and only its sources pass (67.755071ms)
✔ C2-06 web cites require allowed definition, this session fetch and kept quote (15.464462ms)
✔ C2-06 file origin is the path commit and trailer, while last follows served changes (44.735065ms)
✔ C2-06 origin uses literal paths even when a filename contains a glob (30.278601ms)
✔ C2-06 cited-commit guard reads exactly the C2-05a indexed file set with supporting scope (73.985591ms)
✔ C2-06 reply limits fall back independently without coercion or inherited keys (0.901096ms)
✔ the same commit, repo path and mapping return the same index, and only mapped files are in it (43.031945ms)
✔ a different repo path, mapping or commit gets its own index (62.379004ms)
✔ the cache holds at most eight indexes and evicts the least recently used (81.015448ms)
✔ a failed read is not kept in the cache (16.558322ms)
✔ a missing or unchecked mapping is refused before any read (16.776582ms)
✔ a 3,000-file rebuild completes and its time is reported (2913.682398ms)
ℹ 3,000-file index rebuild: 2686 ms
✔ resolver step 1: a path from the repo root, with or without .md (1.682426ms)
✔ resolver step 2: the same path with vaultPrefix/ stripped (0.245907ms)
✔ resolver step 3: a path relative to the linking file, never above the repo root (0.31513ms)
✔ resolver step 4: a base name that matches exactly one indexed file (0.266981ms)
✔ a link into another of her repos resolves to nothing (0.228833ms)
✔ wikilink forms, embeds, and links skipped inside code (1.090948ms)
✔ only a body embed whose target has an extension other than .md, in any case, is an attachment (0.429648ms)
✔ the fixture mapping checks and comes back frozen (2.634878ms)
✔ C2-01c: a prefix inside or holding another entry's book refuses library-playground-other-universe (1.288858ms)
✔ C2-01c: a prefix equal to a book folder, or holding its own, refuses library-mapping-invalid (0.680966ms)
✔ C2-01c: universe-level prefixes lie outside every book, in a plain universe and in a hybrid with no books (1.118575ms)
✔ C2-01c: a draft takes kind, name and playground only, and comes back frozen with books [] (1.847471ms)
✔ C2-01d: supporting prefixes at book level, universe level, in a hybrid and in a draft, [] when absent (0.593593ms)
✔ C2-01d: each supporting prefix rule refuses with its code (2.717292ms)
✔ C2-01d: between the lists, a supporting prefix may equal its own playground, and a playground may hold its own supporting (0.970028ms)
✔ C2-01d: editor is optional, kept when given, and refuses anything but a plain name and email (4.920413ms)
✔ C2-01d: an accepted editor round-trips through a real git commit unchanged (15.398133ms)
✔ no playground prefix holds another, and no book folder holds another (0.973169ms)
✔ shape refusals: kind, remote, branch, unknown keys, types, manuscript, folder names (1.339169ms)
✔ C2-03a sage-2021: user is optional, kept when given, and must be a plain account name (0.865552ms)
✔ a hybrid universe is a shape the query code can take (1.4), with sources that must exist (0.816839ms)
✔ a caller-supplied fail receives the code, as business file loading will pass it (C2-04) (0.758062ms)
✔ scope comes from the path alone (design 1.2) (0.675692ms)
✔ C2-04 mirror: exact default path, bare without checkout or remote, and idempotent initialization (62.823301ms)
✔ C2-04 mirror: simultaneous creators publish one intact mirror and leave no staging paths (46.233585ms)
✔ C2-04 mirror: skipped publication accepts both coreutils statuses without removing the winner (162.60028ms)
✔ C2-04 mirror: preserve occupied directories and reject symlink ancestors and code overlaps (21.270544ms)
✔ C2-04 mirror: existing metadata accepts only bare Git plus state and the precreated lock (36.661984ms)
✔ C2-04 state: missing state is empty only while the served ref is absent (47.894831ms)
✔ C2-04 state: valid problems and sync metadata return no content and change no state bytes (49.340483ms)
✔ C2-04 state: strict keys, types, times, branch, commit and fixed R messages fail closed (163.671158ms)
✔ C2-04 state: symlink, hardlink, non-private state and missing lock refuse without replacement (36.231483ms)
✔ C2-04 file: served commit, not HEAD or a caller commit, owns the exact returned text (90.635536ms)
✔ C2-04 file: R1, R2 and R7 exclusions and never-synced mirrors cannot return file bodies (101.742902ms)
✔ C2-04 lock: a first-sync and fast-forward reader wait for a consistent pair across processes (261.188968ms)
✔ C2-04 lock: same-process waits, timeout code, callback expiry and throw release (5038.235418ms)
✔ C2-04 lock: owner death releases the kernel lock without replacing its file (56.37892ms)
✔ C2-04 lock: a missing flock binary becomes a handled refusal (51.681108ms)
✔ C2-04 lock: an unawaited scoped read drains before the lock is released (20.080063ms)
✔ the query reply cap equals the harness reply cap (1.510727ms)
✔ find is bound to its universe and refuses a call without one (53.675302ms)
✔ every result carries its scope, and playground appears only when asked for (36.086213ms)
✔ unmapped files never appear in any reply (29.809614ms)
✔ a hybrid sees its sources canon, minus exclusions, and no playground (33.646028ms)
✔ a hybrid gets a source file it can see, and not an excluded or foreign one (47.029701ms)
✔ get lists visible links both ways and drops a target another universe cannot see (51.103924ms)
✔ a long list pages by position, never cuts an item, and returns 50 per page (185.729747ms)
✔ a page stays under the reply cap when items are large (95.490461ms)
✔ a search line too long to fit alone comes back marked, with no excerpt, and the other hits still return (37.801786ms)
✔ a find item that cannot fit alone is refused, not cut (28.868136ms)
✔ get pages its lines, and the next line picks up where the page stopped (27.990934ms)
✔ get refuses a file whose front matter alone is over the cap, and a line alone is over the cap (28.093756ms)
✔ get pages the links of a hub note, every page carries the front matter, and the pages add up (884.411537ms)
✔ get rejects a bad links_from (27.936344ms)
✔ search returns scoped line hits, case-insensitively, and refuses empty text (23.951454ms)
✔ a manuscript call returns one chapter, at most 400 lines, and names its next line (42.904126ms)
✔ a manuscript call without a chapter returns the first chapter in path order and names the next (24.015228ms)
✔ a chapter name that matches two visible files is refused (25.891779ms)
✔ a hybrid reads a source chapter through its declared sources only (34.534149ms)
✔ universe info reports a hybrid sources, constraints and notes, and refuses an unknown universe (14.090719ms)
✔ an exclusion hides what it names from a hybrid and from nothing else (36.663788ms)
✔ PRD 1.14: a lookup that names a book leaves book-null files out (30.513917ms)
✔ PRD 1.14: library_manuscript never reads a book-null file (27.56989ms)
✔ PRD 1.14: a draft universe has no canon, so its lookups return files only with scope playground (28.262596ms)
✔ PRD 1.14: library_universe on a draft returns its kind, name and prefixes (15.832553ms)
✔ a hybrid gets a source playground file as null, while the source gets it with scope playground (35.848562ms)
✔ the fixture reads clean: every resolver step, appears_in and relationships wikilinks indexed (49.221641ms)
✔ R1: executables, symlinks, gitlinks, blobs over 1 MiB and non-UTF-8 text are not indexed (84.760167ms)
✔ R2: unmapped paths are reported and not indexed (30.905823ms)
✔ R3: front matter not fully parsed stays raw, with the line where parsing stopped (33.875953ms)
✔ front matter forms the reader accepts and refuses (0.554707ms)
✔ R4: a link to no file, to more than one, or into another repo is reported and not followed (37.910843ms)
✔ a block list link carries its item line, a scalar or flow link its key line, and problems follow (32.926599ms)
✔ an unresolved attachment embed gives no problem; a link or front matter value to one is R4; a note embed resolves (37.278062ms)
✔ an indexed Dr.Quinn.md resolves as a body link, a block list link and an embed (29.200585ms)
✔ R5: a canon file that refers into the playground is reported, and the link still goes by path (26.361841ms)
✔ R6: a canon file that refers into another universe is reported; a hybrid may refer into its sources (27.736593ms)
✔ R7: two paths that differ only in case are both left out (35.361268ms)
✔ the reader reads the commit, never the working tree, and refuses a bad commit id (37.268328ms)
✔ a bare mirror reads the same as the clone (55.462301ms)
✔ renderItems snapshot: fact (1.885942ms)
✔ renderItems snapshot: finding (0.298312ms)
✔ renderItems snapshot: correction (0.236105ms)
✔ renderItems snapshot: question (0.171529ms)
✔ renderItems snapshot: idea (0.239146ms)
✔ renderItems numbers several items and takes a parsed body as well as a string (1.567758ms)
✔ without options a path cite has no badge and is never marked changed (0.253967ms)
✔ renderItems snapshot: notice no-cited-answer (0.192699ms)
✔ renderItems snapshot: notice no-answer (0.203451ms)
✔ renderItems snapshot: notice turn-failed (0.747251ms)
✔ a body without the reply shape shows a fixed line and none of its text (0.592662ms)
✔ C2-01c: each level gives its universe, and its book or null (4.102997ms)
✔ C2-01c: prefixes come first: in a book that holds a prefix, a file outside it is canon and one under it playground (0.675921ms)
✔ C2-01c: a canon file linking into a draft gives R6, and into its own universe-level prefix gives R5 (50.830955ms)
✔ C2-01d: each supporting level gives its universe, and its book or null (0.738259ms)
✔ C2-01d: supporting comes before playground; a folder in both lists is supporting, one in the playground only stays playground (0.578763ms)
✔ C2-01d: only .md files are supporting; a .canvas or .base under a supporting prefix is unmapped (0.397031ms)
✔ C2-01d: a path passes at book level, universe level, in a draft and in a folder in both lists (1.859653ms)
✔ C2-01d: a path of exactly 1024 bytes passes, and 1025 bytes made of multi-byte characters refuses (0.840113ms)
✔ C2-01d: a path outside the universe's supporting folders refuses (0.513816ms)
✔ C2-01d: malformed paths refuse by class, in order (0.588374ms)
✔ C2-01d: a symlink or gitlink on the way, or at the path itself, refuses (0.323679ms)
✔ C2-01d: a name that differs from a tree name only in case or Unicode form refuses, at the file or any folder (1.020788ms)
✔ the survey prints folder names, counts, key sets and link-form counts, and never text (49.846298ms)
✔ folder names print DEL, C1 and bidi controls, U+061C among them, as escapes (30.524229ms)
✔ an embed of an attachment counts as an embed and as an attachment; a plain link to one does not (20.588834ms)
✔ with --mapping the survey adds scope, resolver step and problem counts (44.011611ms)
✔ C2-01d: with --mapping the survey counts supporting files (41.152592ms)
✔ survey exit codes: usage 4, bad mapping 3, unreadable repo 2 (17.992443ms)
✔ scripts/mosaic library survey reaches the survey (108.161485ms)
✔ C2-03a argv: the fixed sequence, one https allow, no other protocol key (2.526717ms)
✔ C2-03a argv: only an https URL with a plain host, no userinfo, and a plain user (1.030994ms)
✔ C2-03a helper: answers only the exact prompts for the configured host and user (dewey-0765) (46.027509ms)
✔ C2-03a first sync: served is the fetched tip, HEAD is served, the survey reads it, and the token stays in the slot (185.950419ms)
✔ C2-03a fast-forward: served moves, problems are rebuilt, and a repeat changes only lastFetch (276.021651ms)
✔ C2-03a Filbert N2: a read that took served before a sync still finds its objects after served moves (210.065762ms)
✔ C2-03a overlap: a reader during a sync sees the old pair or the new one, never a mix (188.532271ms)
✔ C2-03a diverged: a non-fast-forward keeps serving and holds until a human accepts the tip (414.085865ms)
✔ C2-03a accept starts the record over, so a changed branch gets a fresh state (167.820835ms)
✔ C2-03a fetch failure: a wrong token keeps serving and records the error, lastFetch unchanged (190.798597ms)
✔ C2-03a a failed first fetch records the error with nothing served (57.314417ms)
✔ C2-03a a 302 to another host fails the fetch and the other host sees nothing (60.064724ms)
✔ C2-03a the slot: missing or unsafe refuses before git, and sync never opens it (58.440867ms)
✔ C2-03a sage-2021: an entry with no user refuses library-remote-invalid and runs no git (28.972968ms)
✔ C2-03a one sync per mirror: an overlapping call refuses library-sync-busy (111.989426ms)
✔ C2-03b argv: a push sends one full commit to the branch, fast-forward only, with the fetch prefix (0.460384ms)
✔ C2-03b T1 push: a fast-forward lands with the seat's own user and file, and moves no local ref (107.416719ms)
✔ C2-03b T2 and T3: a moved tip reports the race after one fetch, and a second race refuses stale-base (186.993111ms)
✔ C2-03b race fetch: while a sync of the mirror runs, the race refuses library-sync-busy (210.609304ms)
✔ C2-03b T4: a dead remote, a hook refusal and a wrong token each refuse library-push-failed (170.455799ms)
✔ C2-03b push: a refused, missing or unsafe credential runs no git (91.174666ms)
✔ C2-03b T10 humanCredential: her login and a 0600 slot library-human, or library-human-missing (0.89536ms)
✔ C2-03b fetch credential: the state names the kind and user, a refusal runs no git, and a pre-286 state still reads (136.587793ms)
✔ C2-03b T5 helper: the named seat's user and file, never a link, 0644, another uid, or a swapped file (28.008316ms)
ℹ tests 151
ℹ suites 0
ℹ pass 151
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 6319.032827
@@ -0,0 +1,7 @@
sage-4112 / #1825 added package line scan
Input: git diff -U0 1f3d0350f -- packages, filtered by grep ^+
Final grep -i -E used exactly the ruling pattern.
Matches: 0. grep stdout: empty. grep exit: 1 (no match).
Only package delta from ec8cb10c0: two constant values, one replacement line each.
Each value length: 19. Exact repository matches: one source definition each.
All remaining source bytes and assertions equal r5.
@@ -0,0 +1,5 @@
Checked the exact two new values from their source definitions in memory; values omitted.
bus.txt: SLOT_TOKEN value=0 matches; SEAT_TOKEN value=0 matches; legacy fixture pattern=0 matches
library.txt: SLOT_TOKEN value=0 matches; SEAT_TOKEN value=0 matches; legacy fixture pattern=0 matches
touched-credential.txt: SLOT_TOKEN value=0 matches; SEAT_TOKEN value=0 matches; legacy fixture pattern=0 matches
touched-sync.txt: SLOT_TOKEN value=0 matches; SEAT_TOKEN value=0 matches; legacy fixture pattern=0 matches
@@ -0,0 +1,14 @@
✔ C2-03b T6: the slot before any chief evidence, then the listed chief's live grant (28.318924ms)
✔ C2-03b T7: a chief revoked through grants.revoke or fired through instance.fire refuses, and the fallback stays ended (194.21615ms)
✔ C2-03b T7 choice checks: delisted, a fire under way and held each refuse; a rehire lists the chief again (33.958162ms)
✔ C2-03b T8: a chief grant on another project ends the fallback, and two listed chiefs refuse library-fetch-no-grant (28.619923ms)
✔ C2-03b departure (sage-2928): with no chief entry, any Gitea grant evidence refuses (14.676693ms)
✔ C2-03b T9 runtime: the chief's store file and user, then a real revoke that runs no git with the slot at 0000 (611.79939ms)
ℹ tests 6
ℹ suites 0
ℹ pass 6
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 1026.25149
@@ -0,0 +1,32 @@
✔ C2-03a argv: the fixed sequence, one https allow, no other protocol key (1.47226ms)
✔ C2-03a argv: only an https URL with a plain host, no userinfo, and a plain user (0.528552ms)
✔ C2-03a helper: answers only the exact prompts for the configured host and user (dewey-0765) (27.747663ms)
✔ C2-03a first sync: served is the fetched tip, HEAD is served, the survey reads it, and the token stays in the slot (118.121125ms)
✔ C2-03a fast-forward: served moves, problems are rebuilt, and a repeat changes only lastFetch (173.10401ms)
✔ C2-03a Filbert N2: a read that took served before a sync still finds its objects after served moves (166.37298ms)
✔ C2-03a overlap: a reader during a sync sees the old pair or the new one, never a mix (152.220338ms)
✔ C2-03a diverged: a non-fast-forward keeps serving and holds until a human accepts the tip (361.132626ms)
✔ C2-03a accept starts the record over, so a changed branch gets a fresh state (152.668983ms)
✔ C2-03a fetch failure: a wrong token keeps serving and records the error, lastFetch unchanged (178.901563ms)
✔ C2-03a a failed first fetch records the error with nothing served (53.754112ms)
✔ C2-03a a 302 to another host fails the fetch and the other host sees nothing (58.776258ms)
✔ C2-03a the slot: missing or unsafe refuses before git, and sync never opens it (52.059353ms)
✔ C2-03a sage-2021: an entry with no user refuses library-remote-invalid and runs no git (28.09302ms)
✔ C2-03a one sync per mirror: an overlapping call refuses library-sync-busy (112.869004ms)
✔ C2-03b argv: a push sends one full commit to the branch, fast-forward only, with the fetch prefix (0.47863ms)
✔ C2-03b T1 push: a fast-forward lands with the seat's own user and file, and moves no local ref (107.964466ms)
✔ C2-03b T2 and T3: a moved tip reports the race after one fetch, and a second race refuses stale-base (177.969359ms)
✔ C2-03b race fetch: while a sync of the mirror runs, the race refuses library-sync-busy (212.694862ms)
✔ C2-03b T4: a dead remote, a hook refusal and a wrong token each refuse library-push-failed (151.350198ms)
✔ C2-03b push: a refused, missing or unsafe credential runs no git (89.503232ms)
✔ C2-03b T10 humanCredential: her login and a 0600 slot library-human, or library-human-missing (0.876568ms)
✔ C2-03b fetch credential: the state names the kind and user, a refusal runs no git, and a pre-286 state still reads (138.364609ms)
✔ C2-03b T5 helper: the named seat's user and file, never a link, 0644, another uid, or a swapped file (27.03766ms)
ℹ tests 24
ℹ suites 0
ℹ pass 24
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 2623.139415
+2
View File
@@ -1664,3 +1664,5 @@ are never rewritten or removed; corrections are new entries.
- 2026-10-24 — rockerduck (a403aa78-b550-4bab-a613-7ea3fd75ec79), row286 / #1791 r5: rebase onto row285 landing 1f3d0350f, both logs preserved, chief refs and ruled read-mint fixtures prepared; real revoke/fire checks preserved, no product change; pre-gate push next under sage-4097/4100. - 2026-10-24 — rockerduck (a403aa78-b550-4bab-a613-7ea3fd75ec79), row286 / #1791 r5: rebase onto row285 landing 1f3d0350f, both logs preserved, chief refs and ruled read-mint fixtures prepared; real revoke/fire checks preserved, no product change; pre-gate push next under sage-4097/4100.
- 2026-10-24 — rockerduck (a403aa78-b550-4bab-a613-7ea3fd75ec79), row286 / #1791 r5 gate: touched6/6+24/24, library151/151, bus981/981; three semantic mutants killed/restored with green controls; no normal red; all output fixture searches zero; sage-4100 read seed verified, ready for round2 Boyd/Dewey checks and Sage landing gate. - 2026-10-24 — rockerduck (a403aa78-b550-4bab-a613-7ea3fd75ec79), row286 / #1791 r5 gate: touched6/6+24/24, library151/151, bus981/981; three semantic mutants killed/restored with green controls; no normal red; all output fixture searches zero; sage-4100 read seed verified, ready for round2 Boyd/Dewey checks and Sage landing gate.
- 2026-10-24 — rockerduck (a403aa78-b550-4bab-a613-7ea3fd75ec79), row286 / #1791 r6 under sage-4112: two fixture-value replacements only, exact secrets grep empty, touched6/6+24/24 and whole151/151+981/981, zero output fixture matches; no assertion/production/guard change, manifest prepared for round3.
@@ -27,7 +27,7 @@ import { systemFor } from '../../business/tests/helpers.mjs';
const AT = '2026-10-22T00:00:00.000Z'; const AT = '2026-10-22T00:00:00.000Z';
const REV = 'b'.repeat(64); const REV = 'b'.repeat(64);
const SLOT_TOKEN = 'fixture-token-2c90-made-up-0048'; const SLOT_TOKEN = 'fx286-slot-q7-r6-a9';
const role = { authority: { withinRole: [], crossRole: [] } }; const role = { authority: { withinRole: [], crossRole: [] } };
const none = { authority: { withinRole: ['message.send'], crossRole: [] } }; const none = { authority: { withinRole: ['message.send'], crossRole: [] } };
const options = [{ key: 'yes', text: 'Yes' }, { key: 'no', text: 'No' }]; const options = [{ key: 'yes', text: 'Yes' }, { key: 'no', text: 'No' }];
+1 -1
View File
@@ -308,7 +308,7 @@ test('C2-03a one sync per mirror: an overlapping call refuses library-sync-busy'
// C2-03b (#1791): push and per-seat credentials. A seat's grant store file is the token plus "\n", as // C2-03b (#1791): push and per-seat credentials. A seat's grant store file is the token plus "\n", as
// Credentials writes it. SEAT_TOKEN is made up too and must also appear nowhere but its file. // Credentials writes it. SEAT_TOKEN is made up too and must also appear nowhere but its file.
const SEAT = 'writer-seat'; const SEAT = 'writer-seat';
const SEAT_TOKEN = 'fixture-token-71ae-made-up-0044'; const SEAT_TOKEN = 'fx286-seat-q7-r6-a9';
async function writeWorld(t) { async function writeWorld(t) {
const w = await world(t, { users: { [USER]: TOKEN, [SEAT]: SEAT_TOKEN } }); const w = await world(t, { users: { [USER]: TOKEN, [SEAT]: SEAT_TOKEN } });