filbert: row 63 round 2 approve 28026, clean verification and session

This commit is contained in:
2026-10-12 18:08:30 -05:00
parent 6eef3e6a09
commit 6bb92d04a3
7 changed files with 143 additions and 9 deletions
@@ -0,0 +1 @@
28026
@@ -0,0 +1,12 @@
✔ a verb and a create in the child record the final read of the child's board (94.249241ms)
✔ a create in the child whose final read fails records the child's todo bucket (125.590973ms)
✔ a lost answer in the child is settled by a re-read of the child's board (134.173444ms)
✔ every related task is read before authority, not only the first (98.261377ms)
ℹ tests 4
ℹ suites 0
ℹ pass 4
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 536.514089
@@ -11,3 +11,9 @@ Remaining verification: sequential tasks and harness suites, then the seven surv
Test slot is held by Darkwing's row 69 gate, followed by Dewey's already-booked row 63 suites/mutants (about 10 minutes). No row 63 tests or mutants have been run by this Codex review yet, and no verdict has been posted. Dewey will send scratch-clear to this thread so verification resumes without competing for the machine. Waiting shells in the canonical checkout do not count as active scratch runs. Test slot is held by Darkwing's row 69 gate, followed by Dewey's already-booked row 63 suites/mutants (about 10 minutes). No row 63 tests or mutants have been run by this Codex review yet, and no verdict has been posted. Dewey will send scratch-clear to this thread so verification resumes without competing for the machine. Waiting shells in the canonical checkout do not count as active scratch runs.
Row 90 round 1 is approved on 28021. Decision 125 requires row 63 to land first, then row 90 gets a rebase-only round 2. My three row 90 notes stay in a later follow-up. Row 90 round 1 is approved on 28021. Decision 125 requires row 63 to land first, then row 90 gets a rebase-only round 2. My three row 90 notes stay in a later follow-up.
2026-10-12 verification correction: after Dewey scratch-clear, tasks 84/0 and harness 65/0 passed. The home-directory-only guard missed Researcher row 97 mutants under /mnt/storage/scratch/researcher/q97, visible in pgrep. I stopped my verifier and its test group during the first mutation, restored verbs.mjs from the candidate index, and checked manifest 6/6. No mutant result from that interrupted attempt counts. The guard now includes each seat under /mnt/storage/scratch as well as home scratch paths. Resuming requires Researcher scratch-clear.
Completion: after Researcher scratch-clear relayed by Sage, the guarded clean run passed tasks 84/0 and harness 65/0, killed all seven survivor mutants in their intended new tests, then passed the restored four proof tests and manifest 6/6. No timeout. Summary and restored test log are in this packet. Verdict is approve on manifest 2a22fd3f; earlier pending state is superseded by this completion entry.
Queue publication note: before publication I cancelled two guard attempts to correct the revision description. The first snapshot would have included Sage pending revisions 834-836; by the second attempt Sage had committed those as 49e0f990, so only my rev 837 remained. Neither cancelled attempt published a commit. The final attempt names only Filbert rev 837.
@@ -0,0 +1,15 @@
Approve row 63 (#1556), round 2, candidate manifest `2a22fd3f0a04c38e65d40d215b95516c07a9eeff6b2199accc49c39422e22859`.
I reconstructed the candidate on detached base `cca5f23e` with `git apply --index build.patch`. Manifest 6/6, no drift on those paths from the base to current refactor HEAD, and no whitespace errors. Compared to my approved round 1: verbs.mjs and tree.test.mjs are byte-identical; the added/removed lines in the two harness patches are identical, with row 89's surrounding context updated. The README only rewraps text. The real change is four tests and the two helper parameters needed by them.
The new tests cover the child create/verb final read, child create fallback with its todo bucket and quiet next tick, uncertain state/close writes settled with the child's view and no retry, and the second related task being checked before a write. Combining overlapping review requests into four tests is sound. The grandchild's existing external event is accounted for explicitly rather than masking it with a count.
My fresh sequential verification: tasks 84 pass / 0 fail, harness 65 pass / 0 fail, with TMPDIR in my scratch and DOCKER_HOST=unix:///nonexistent.sock. I repeated all seven new survivor mutations against just the four new proof tests: located-first-only, step-reread-root, handle-final-root, create-final-root, create-fallback-root-todo, read-done-root, close-done-root. All seven were killed in the intended proof test, none timed out. The restored proof tests then passed 4/0 and manifest 6/6 matched again. Each mutation ran in its own process group with timeout group cleanup and source restoration. No scratch process remains from this review.
Correction recorded in the packet: my first scratch guard checked home directories only and missed Researcher's row 97 run under /mnt/storage/scratch/researcher. I stopped my verifier and its own test group during its first mutation, restored the candidate from its index, and discarded that interrupted mutation attempt. The expanded guard covers both scratch roots and checks again before each mutation. It refused on Researcher's live processes; the clean run above began after Researcher scratch-clear (relayed by Sage).
Round 1's implementation choices and minor notes still stand. The four bucket survivors in my N1 are now killed, as are Dewey's five overlapping survivors. I found no blocking issue. I scoped this round's fresh verification to the changed tests and rebased harness files; my full round 1 gate is recorded in comment 27846, and Sage still runs the full landing gate. No candidate edit, push, landing, Console operation or bus operation.
Evidence: `agents/filbert/work/queue-63/r2/`, including verification-summary.json, the actual round-to-round diff, and the guarded reproducer verify.py. The seven mutants are finished and the test slot is clear for Researcher.
Filbert, Codex thread 50342f6a-fff7-437a-aa75-679554289732.
@@ -0,0 +1,94 @@
[
{
"suite": "tasks",
"rc": 0,
"stats": [
"\u2139 tests 84",
"\u2139 pass 84",
"\u2139 fail 0"
]
},
{
"suite": "harness",
"rc": 0,
"stats": [
"\u2139 tests 65",
"\u2139 pass 65",
"\u2139 fail 0"
]
},
{
"mutant": "located-first-only",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 every related task is read before authority, not only the first (111.986505ms)",
"\u2716 failing tests:",
"\u2716 every related task is read before authority, not only the first (111.986505ms)"
]
},
{
"mutant": "step-reread-root",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 a lost answer in the child is settled by a re-read of the child's board (258.092802ms)",
"\u2716 failing tests:",
"\u2716 a lost answer in the child is settled by a re-read of the child's board (258.092802ms)"
]
},
{
"mutant": "handle-final-root",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 a verb and a create in the child record the final read of the child's board (103.651333ms)",
"\u2716 failing tests:",
"\u2716 a verb and a create in the child record the final read of the child's board (103.651333ms)"
]
},
{
"mutant": "create-final-root",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 a verb and a create in the child record the final read of the child's board (109.800651ms)",
"\u2716 failing tests:",
"\u2716 a verb and a create in the child record the final read of the child's board (109.800651ms)"
]
},
{
"mutant": "create-fallback-root-todo",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 a create in the child whose final read fails records the child's todo bucket (77.182859ms)",
"\u2716 failing tests:",
"\u2716 a create in the child whose final read fails records the child's todo bucket (77.182859ms)"
]
},
{
"mutant": "read-done-root",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 a lost answer in the child is settled by a re-read of the child's board (121.107026ms)",
"\u2716 failing tests:",
"\u2716 a lost answer in the child is settled by a re-read of the child's board (121.107026ms)"
]
},
{
"mutant": "close-done-root",
"rc": 1,
"result": "killed",
"failures": [
"\u2716 a lost answer in the child is settled by a re-read of the child's board (134.755177ms)",
"\u2716 failing tests:",
"\u2716 a lost answer in the child is settled by a re-read of the child's board (134.755177ms)"
]
},
{
"restored_proof_tests_rc": 0,
"manifest_matches": true
}
]
+14 -9
View File
@@ -4,15 +4,19 @@ root=pathlib.Path(os.environ.get('MOSAIC_REVIEW_ROOT',str(pathlib.Path.home()/'f
out=root.parent/'verification'; out.mkdir(exist_ok=True) out=root.parent/'verification'; out.mkdir(exist_ok=True)
env=dict(os.environ,TMPDIR=str(pathlib.Path.home()/'filbert-scratch/tmp'),DOCKER_HOST='unix:///nonexistent.sock') env=dict(os.environ,TMPDIR=str(pathlib.Path.home()/'filbert-scratch/tmp'),DOCKER_HOST='unix:///nonexistent.sock')
# Do not route around another seat's test ownership. # Do not route around another seat's test ownership.
other=[str(pathlib.Path.home()/f'{seat}-scratch') for seat in ['darkwing','dewey','rocko','researcher','sage']] seats=['darkwing','dewey','rocko','researcher','sage']
busy=[] other=[str(pathlib.Path.home()/f'{seat}-scratch') for seat in seats]
for p in pathlib.Path('/proc').iterdir(): other += [str(pathlib.Path('/mnt/storage/scratch')/seat) for seat in seats]
if not p.name.isdigit(): continue def require_quiet():
try: busy=[]
cwd=str((p/'cwd').resolve(strict=True)) for p in pathlib.Path('/proc').iterdir():
if any(cwd==x or cwd.startswith(x+'/') for x in other):busy.append((p.name,cwd)) if not p.name.isdigit(): continue
except (OSError,RuntimeError):pass try:
if busy:raise SystemExit('Other scratch processes still active: '+repr(busy)) cwd=str((p/'cwd').resolve(strict=True))
if any(cwd==x or cwd.startswith(x+'/') for x in other):busy.append((p.name,cwd))
except (OSError,RuntimeError):pass
if busy:raise SystemExit('Other scratch processes still active: '+repr(busy))
require_quiet()
manifest=pathlib.Path('/mnt/storage/src/mosaic-stack/agents/darkwing/work/queue-63/r2/candidate-manifest.sha256') manifest=pathlib.Path('/mnt/storage/src/mosaic-stack/agents/darkwing/work/queue-63/r2/candidate-manifest.sha256')
def matches(): def matches():
for line in manifest.read_text().splitlines(): for line in manifest.read_text().splitlines():
@@ -46,6 +50,7 @@ mutants=[
pattern='a verb and a create in the child|a create in the child whose final read fails|a lost answer in the child|every related task is read before authority' pattern='a verb and a create in the child|a create in the child whose final read fails|a lost answer in the child|every related task is read before authority'
p=root/'packages/tasks/src/verbs.mjs' p=root/'packages/tasks/src/verbs.mjs'
for name,old,new in mutants: for name,old,new in mutants:
require_quiet()
src=p.read_text();assert src.count(old)==1,(name,src.count(old)) src=p.read_text();assert src.count(old)==1,(name,src.count(old))
try: try:
p.write_text(src.replace(old,new));log=out/f'mutant-{name}.log' p.write_text(src.replace(old,new));log=out/f'mutant-{name}.log'
+1
View File
@@ -811,3 +811,4 @@ are never rewritten or removed; corrections are new entries.
2026-10-12T23:04:35Z | dewey | row 63 round 2 review (#1556), candidate 2a22fd3f | approve, comment 28024, packet f504fc7b, rev 833 at 7ef5cf3a; tasks 84 and harness 65 green, all 10 round 1 mutants killed 2026-10-12T23:04:35Z | dewey | row 63 round 2 review (#1556), candidate 2a22fd3f | approve, comment 28024, packet f504fc7b, rev 833 at 7ef5cf3a; tasks 84 and harness 65 green, all 10 round 1 mutants killed
2026-10-12 23:02:17 UTC | Rocko (Codex gpt-6.1-sol, d99326cc) | row 94 #1588 Every message to the human, live | candidate bd9e0cea at agents/rocko/work/queue-94/r1; detached gate bus 112/CLI 125/webui 103, nine shell suites green, 27/27 mutants killed; in-review rev 830, tokenless request failed rev 831 for Sage/jarvis retry; row 85 waits on 94 done; no candidate commit/push/live service action. 2026-10-12 23:02:17 UTC | Rocko (Codex gpt-6.1-sol, d99326cc) | row 94 #1588 Every message to the human, live | candidate bd9e0cea at agents/rocko/work/queue-94/r1; detached gate bus 112/CLI 125/webui 103, nine shell suites green, 27/27 mutants killed; in-review rev 830, tokenless request failed rev 831 for Sage/jarvis retry; row 85 waits on 94 done; no candidate commit/push/live service action.
2026-10-12T23:08:30Z | filbert | row 63 (#1556) round 2 review on 2a22fd3f, base cca5f23e | approve comment 28026, rev 837 committed 6eef3e6a; clean tasks 84/0 and harness 65/0, seven survivor mutants killed by intended new tests, restored proofs 4/0 and manifest 6/6; interrupted first mutation discarded, guard expanded to both scratch roots; scratch clear and Sage notified; no push