@@ -647,6 +647,26 @@ the verdict is ok. Validation and report rules live in
647647` @nodetool-ai/execution/timeline-debug ` ; the CLI keeps target resolution, the
648648interaction script, and the bundle.
649649
650+ ` timeline versions ` reads and writes a sequence's snapshot history against the
651+ local database — manual saves, the autosaves ` timeline.update ` writes at most
652+ every five minutes, and the pre-restore snapshot that makes a restore undoable.
653+ All five subcommands take ` --json ` .
654+
655+ ``` bash
656+ npm run dev:nodetool -- timeline versions list < timeline_id> --save-type manual --limit 10
657+ npm run dev:nodetool -- timeline versions show < timeline_id> 3 --json
658+ npm run dev:nodetool -- timeline versions create < timeline_id> --name " before the recut"
659+ npm run dev:nodetool -- timeline versions restore < timeline_id> 3
660+ npm run dev:nodetool -- timeline versions delete < timeline_id> 3 --yes
661+ ```
662+
663+ ` restore ` mirrors the tRPC router: it snapshots the current state as a
664+ ` restore ` version, CAS-writes the old document and its render settings back
665+ onto the sequence, then runs the same static check ` timeline validate ` runs. An
666+ old document is restored against today's schema, so what it used to pass is not
667+ what it passes now — a restore whose document no longer validates exits
668+ non-zero and prints the issues.
669+
650670### Script voicing tools (no workflow, no browser)
651671
652672An agent voices a script and cuts it without authoring a workflow:
0 commit comments