From d2de622744212ea0ba720b3f4212b82940ffe84b Mon Sep 17 00:00:00 2001 From: Agando Date: Tue, 27 Oct 2026 11:23:10 +0100 Subject: fix(newos4): rollback keeps scaffolding, checkpoints cannot collide, tests gate the build Review of the 08:30 implementer run (v4.6.102, checkpoint name fix). The shipped fix was correct; these are the defects it introduced or left behind, each measured first. - virtual-fs.js rollback(): the snapshot strips _snapshots/_sessions/.trash for bloat. Restoring it verbatim deleted every checkpoint, every agent session and the trash, made rollback irreversible and unrepeatable. Re-attach the live copies after the root swap. - checkpoint(): names are millisecond-resolution, so tight calls overwrote each other (measured 6 calls -> 3 snapshots). Dedupe with a -N suffix, refuse names containing "/" (written but unlistable), and prune by snapshot createdAt instead of filename sort, which let a custom name ("aaa-oldest") evict newer auto-named checkpoints. - module-predictor.js: legacy pre-v2 points have no `usable`, so a 0.079 s aborted run re-entered similarity as evidence and floored every prediction at 1 s. Backfill `usable` from the measurement on load, drop the ones it rejects, add a belt-and-braces guard in _findSimilar and count only usable points as actual executions. - newos4-maintain.py: run every node-runnable modules/test/test-*.js on each maintenance pass. The v4.6.102 regression was written but no job ever executed it. - newos4-steer.py: `done` now requires --commit that exists in the repo, and gains `reopen`. A written plan was being closed as done at 06:17 while the predictor fix shipped nowhere, so the implementer's pre-flight queue was empty. - steering.json: predictor item reopened, checkpoint item stamped with f7249ff. - maintenance board: MAINT-002/005/015 were fixed in v4.6.81-85 but still listed open/high; closed with their commit ids, and MAINT-010/016 annotated with the probes that keep them open. Tests: test-vfs-checkpoint 23/23 (RED 14/9 before), test-predictor-accuracy 38/38 (T1-T3 RED on HEAD), maintain --fix all PASS, browser round-trip "Checkpoint created: " -> "Rolled back to checkpoint: " on v4.6.103. Also carries the already-deployed 2026-10-26 syntax-gate hunk in newos4-maintain.py (syntax_failures + gated rebuild) that had never been committed. --- main.html | 6 ++-- modules-index.json | 9 +++-- modules/core/core-bundle.js | 47 ++++++++++++++++++++---- modules/core/module-loader.js | 2 +- modules/core/module-predictor.js | 15 ++++++-- modules/core/virtual-fs.js | 32 ++++++++++++++--- modules/test/test-predictor-accuracy.js | 33 +++++++++++++++++ modules/test/test-vfs-checkpoint.js | 55 ++++++++++++++++++++++++++++ scripts/newos4-maintain.py | 63 ++++++++++++++++++++++++++++----- scripts/newos4-steer.py | 26 ++++++++++++-- 10 files changed, 256 insertions(+), 32 deletions(-) diff --git a/main.html b/main.html index b3d2c39..1c64cf1 100644 --- a/main.html +++ b/main.html @@ -1349,13 +1349,13 @@ - + - + - +