From 197ab31e1dc915a991b3d88697e0fc4c294563a8 Mon Sep 17 00:00:00 2001 From: Agando Date: Tue, 27 Oct 2026 08:31:56 +0100 Subject: fix(newos4): print the checkpoint name actually saved (auto) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task 2 + ship of plan 2026-10-27_061724-newos4-checkpoint-name-mismatch.md. module-system.js `checkpoint` read the clock a second time for the printed name, so the name in "✅ Checkpoint created: " differed from the name on disk by >=1ms whenever no explicit name was given. It now prints the value returned by fs.checkpoint(). try/catch and error strings unchanged. Bundles rebuilt (rebuild-bundles.py); LATEST_VER in module-loader.js and all three ?v= tags in main.html (core-bundle, module-loader, critical-ext-bundle) bumped v4.6.101 -> v4.6.102. Verification: $ node --check modules/core/module-system.js SYNTAX OK $ node --check modules/core/core-bundle.js BUNDLE SYNTAX OK $ node modules/test/test-vfs-checkpoint.js (x5) test-vfs-checkpoint: 10 passed, 0 failed $ curl -s https://webx11.duckdns.org/spaces/newos4/main.html | grep -o 'core-bundle.js?v=[^"]*' core-bundle.js?v=v4.6.102 $ python3 scripts/newos4-maintain.py PASS: version v4.6.102 x3 in main.html (expect 3) ... maintenance result: OK $ python3 scripts/newos4-skill-audit.py skill audit: 7/7 pass --- modules/core/core-bundle.js | 7 +++---- modules/core/module-loader.js | 2 +- modules/core/module-system.js | 5 ++--- 3 files changed, 6 insertions(+), 8 deletions(-) (limited to 'modules/core') diff --git a/modules/core/core-bundle.js b/modules/core/core-bundle.js index 32ff73b..cd510b7 100644 --- a/modules/core/core-bundle.js +++ b/modules/core/core-bundle.js @@ -968,7 +968,7 @@ class VirtualFileSystem { const toDelete = sorted.slice(0, all.length - 3); for (const old of toDelete) this.deleteCheckpoint(old); } - return true; + return name; } rollback(name) { const raw = this.fsReadJSON('/_snapshots/checkpoint-' + name + '.json'); @@ -6062,9 +6062,8 @@ Only output XML function calls for tool tasks. If no tool is needed, answer norm this.commands['checkpoint'] = (args) => { try { const name = args[0] || ''; - this.terminal.fs.checkpoint(name); - const displayName = name || new Date().toISOString(); - this.terminal.print('✅ Checkpoint created: ' + displayName, 'success'); + const created = this.terminal.fs.checkpoint(name); + this.terminal.print('✅ Checkpoint created: ' + (created || name), 'success'); } catch (e) { this.terminal.print('Checkpoint failed: ' + e.message, 'error'); } diff --git a/modules/core/module-loader.js b/modules/core/module-loader.js index 252c34b..b278f51 100644 --- a/modules/core/module-loader.js +++ b/modules/core/module-loader.js @@ -4,7 +4,7 @@ // Core module bundle loaded synchronously in main.html. // This loader only handles version cache-busting, splash, terminal init, and optional ext modules. - const LATEST_VER = 'v4.6.101'; + const LATEST_VER = 'v4.6.102'; const CACHE = '?v=' + LATEST_VER; const stored = localStorage.getItem('webx11_cache_ver'); if (stored !== LATEST_VER) { diff --git a/modules/core/module-system.js b/modules/core/module-system.js index b9b62a6..40b0861 100644 --- a/modules/core/module-system.js +++ b/modules/core/module-system.js @@ -479,9 +479,8 @@ this.commands['checkpoint'] = (args) => { try { const name = args[0] || ''; - this.terminal.fs.checkpoint(name); - const displayName = name || new Date().toISOString(); - this.terminal.print('✅ Checkpoint created: ' + displayName, 'success'); + const created = this.terminal.fs.checkpoint(name); + this.terminal.print('✅ Checkpoint created: ' + (created || name), 'success'); } catch (e) { this.terminal.print('Checkpoint failed: ' + e.message, 'error'); } -- cgit v1.2.3