<feed xmlns='http://www.w3.org/2005/Atom'>
<title>newos4/modules/test/test-vfs-checkpoint.js, branch main</title>
<subtitle>newOS4 - the browser terminal that runs WebX11 user spaces</subtitle>
<id>https://newos.webx11.duckdns.org/newos4/atom?h=main</id>
<link rel='self' href='https://newos.webx11.duckdns.org/newos4/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://newos.webx11.duckdns.org/newos4/'/>
<updated>2026-10-27T10:23:23+00:00</updated>
<entry>
<title>fix(newos4): rollback keeps scaffolding, checkpoints cannot collide, tests gate the build</title>
<updated>2026-10-27T10:23:23+00:00</updated>
<author>
<name>Agando</name>
<email>roduccomm@gmail.com</email>
</author>
<published>2026-10-27T10:23:10+00:00</published>
<link rel='alternate' type='text/html' href='https://newos.webx11.duckdns.org/newos4/commit/?id=97279c0eb918701ac915187f5deb9f0adf9236bd'/>
<id>urn:sha1:97279c0eb918701ac915187f5deb9f0adf9236bd</id>
<content type='text'>
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 -&gt; 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 &lt;sha&gt; 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: &lt;name&gt;" -&gt; "Rolled back to checkpoint: &lt;name&gt;" 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.
</content>
</entry>
<entry>
<title>fix(newos4): regression test for checkpoint name round-trip (auto)</title>
<updated>2026-10-27T07:32:39+00:00</updated>
<author>
<name>Agando</name>
<email>roduccomm@gmail.com</email>
</author>
<published>2026-10-27T07:32:39+00:00</published>
<link rel='alternate' type='text/html' href='https://newos.webx11.duckdns.org/newos4/commit/?id=f1734dfddd88aad22818911e6e5f00bd68675017'/>
<id>urn:sha1:f1734dfddd88aad22818911e6e5f00bd68675017</id>
<content type='text'>
Task 3 of plan 2026-10-27_061724-newos4-checkpoint-name-mismatch.md.

New modules/test/test-vfs-checkpoint.js loads the real VirtualFileSystem and
SystemModule with guarded localStorage/indexedDB/window stubs and asserts:
 A1-A4 checkpoint('') returns the resolved name; two calls differ; the file
        exists under the returned name
 B1-B2 checkpoint-list shows the returned name; rollback(&lt;that name&gt;) is true
 C1-C4 the `checkpoint` command prints exactly the name it created (and an
        explicit name verbatim)

RED before the fix (v4.6.101):
  FAIL C2 printed name exists on disk — printed=2026-10-27T07:31:21.575Z
  listed=["2026-10-27T07:31:21.574Z"]
  test-vfs-checkpoint: 2 passed, 8 FAILED

GREEN after:
  $ node modules/test/test-vfs-checkpoint.js
  test-vfs-checkpoint: 10 passed, 0 failed
</content>
</entry>
</feed>
