summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAgando <roduccomm@gmail.com>2026-11-07 18:20:27 +0100
committerAgando <roduccomm@gmail.com>2026-11-07 18:20:27 +0100
commitc2f5c87529376c9f0a5d577378505489de8c85b8 (patch)
tree88e9b3c24d8414ddf0e46ade255bd5823994c78d
parentaac2b1c0689aefeb140e08c24278ec486611fe10 (diff)
docs(newos4): v4.6.152 changelog + change-history row for the six modes
-rw-r--r--CHANGELOG.md34
1 files changed, 33 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b5dbd5f..b7f16e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,13 +4,45 @@ Generated from git history by `scripts/build-changelog.py` — do not edit by ha
<!-- generated:start -->
+## v4.6.152 — 2026-11-07
+
+_Touches modules (11), README.md (1), help.html (1), main.html (1) · release 1_
+
+- **Six interface modes (easy -> cockpit) over one terminal** `5dafaa4`
+ - Symptom: newOS4 had exactly one layout. A first-time user had no way in that did not require learning commands, and an operator had no surface showing live runtime state; the only way to see heap/VFS/tool-call telemetry was to type cat /sys/...
+ - Root cause: no UI layer existed. main.html hard-codes one flex column, and terminal.js binds the stock nodes by id at construction, so an alternative layout had to either duplicate the output stream or reparent the real nodes.
+ - Fix:
+ - modules/core/module-uishell.js (new): mode registry, #ui-root, stock-node
+ - snapshot/restore, identity check that reverts to classic when a mode removes or clones #terminal-container, shell-docked #ui-foot (the AI stop button exists in every mode), ui command, gated first-run picker, ?ui= honoured only if the mode actually registers, lazy mode loading via the same loader ext modules use.
+ - … run `git show <sha>` for the rest
+
+## v4.6.151 — 2026-11-07
+
+_Touches modules (5), main.html (1), help.html (1) · project 1, fix 1_
+
+- **V4.6.151 — wget that actually saves, web_fetch that actually pages** `f84a82d`
+ - S1 (reported by agent-os4-maint-01, wrongly refuted by the chat auto-reply): wget existed but was unusable and dishonest.
+ - Cause 1: _cmdWget used the page's own fetch(url), so every cross-origin URL
+ - died on CORS ("Failed to fetch"). Measured in the served v4.6.150 page: fetch(cgit README) threw, /api/fetch returned 200/1954 bytes.
+ - Cause 2: _vfsWriteBytes ignored writeFile()'s boolean, so the command printed
+ - a green tick when the target directory did not exist. Measured: fs.writeFile('nosuchdir/x.txt') === false.
+ - Cause 3: bytes were round-tripped through String.fromCharCode, mangling UTF-8.
+ - Fix: fetch through /api/fetch (raw source), mkdir -p, writeFile + read-back
+ - verification, error instead of a tick on failure. Register curl with -s/-o parsing delegating to the same writer so the two cannot drift.
+ - … run `git show <sha>` for the rest
+- **Document curl in help command table (auto)** `f8e4c51`
+ - Plan: .hermes/plans/2026-11-07_061825-newos4-curl-help-row.md (T1) Root cause: curl shipped in v4.6.151 (cryptogzip.js:19 getHelpInfo, :612 commands['curl']) but help.html's command table was never updated, so check_help_coverage() reported 365/366.
+ - Change: one <tr> row added after the wget row in help.html's command table. No JS/PHP touched; cryptogzip.js, modules-index.json and atlas unchanged as specified in T2.
+ - Verification: grep -c '<code>curl ' help.html -> 1 wget row at 1086, curl row at 1087 -> adjacent grep -c "_isBase64" modules/ext/cryptogzip.js -> 0 (unchanged) git diff --stat -> help.html | 1 + python3 scripts/newos4-maintain.py -> PASS: help coverage 366/366, maintenance result: OK, needs OK: none HTTP help.html -> 200
+
## v4.6.150 — 2026-11-06
-_Touches modules (7), main.html (1) · project 1_
+_Touches modules (7), main.html (1), CHANGELOG.md (1) · project 2_
- **Commit the module work that has been live but uncommitted** `6bea062`
- Operator commit-approve, 2026-11-06. These changes have been served since 2026-11-02/03 while git HEAD still stamped v4.6.146, so the mirror published a tree four builds behind the running instance and the release tag named the wrong build.
- … run `git show <sha>` for the rest
+- **Regenerate for v4.6.150** `10e2ac2`
## v4.6.146 — 2026-11-06