From 05d72563637e88825ff852d803621c567de47e34 Mon Sep 17 00:00:00 2001 From: Agando Date: Sat, 7 Nov 2026 19:03:38 +0100 Subject: fix(newos4): second review round — identity for every stock node, load dedup, sweep race, a11y MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Four models (kimi-k2.7-code, deepseek-v4-pro, minimax-m3, glm-5.3) reviewed the shipped change set. Review log with every accepted and rejected finding: .hermes/plans/2026-11-07_163420-newos4-six-ui-modes.review-log.md - identity guard now covers every snapshot node, not just #terminal-container: terminal.js also binds #output, #command-input, #input-area and #status-bar, so a cloned one leaves the terminal writing into a detached node while the page looks perfect - _restoreStock anchors on the next stock node already home, then on the recorded trailing sibling; a raw child index was measured wrong (terminal,input,status-bar,quick-actions) - _loading map: a double-clicked card or a repeated 'ui easy' loads the mode once - _sweepPending returns while that id is in flight instead of declaring failure at 6 s and overwriting the stored preference - _syncChrome() on every switch (quick-actions was left in the tab order behind the mode root) - picker: role=dialog/aria-modal/labelledby/focus, shown after 600 ms instead of waiting for a registration that never happens with lazy modes, and suppressed when ?ui= already applied - ?ui= must be one of the six; _loadMode only accepts packages['ui-']; hasOwnProperty on modes - VFS names are shell-quoted before reaching api.exec (cat/edit) - refresh generation no longer bumps per tick (slow captures left later panes at '...') - easy: padding shorthand reset the 34 px footer reserve (footer overlapped the composer) - cockpit panes get tabIndex and focus; F1/F12 left to the browser; nothing swallowed in inputs - api.el lost its unused innerHTML sink; the test lost its _parseArgs stub (it hid the regression) - v4.6.155 --- CHANGELOG.md | 6 ++++ main.html | 6 ++-- modules/core/core-bundle.js | 82 +++++++++++++++++++++++++++--------------- modules/core/module-loader.js | 2 +- modules/core/module-uishell.js | 80 ++++++++++++++++++++++++++--------------- modules/core/terminal.js | 2 +- modules/ext/ui-cockpit.js | 6 +++- modules/ext/ui-commander.js | 11 +++++- modules/ext/ui-easy.js | 4 ++- modules/ext/ui-studio.js | 3 +- modules/ext/ui-workspace.js | 5 ++- modules/test/test-ui-shell.js | 3 +- 12 files changed, 142 insertions(+), 68 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d142ba..3f0a9d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ Generated from git history by `scripts/build-changelog.py` — do not edit by ha +## v4.6.153 — 2026-11-07 + +_Touches CHANGELOG.md (1), main.html (1), modules (1) · project 1_ + +- **V4.6.153 — cache-bust the review fixes** `13271e5` + ## v4.6.152 — 2026-11-07 _Touches modules (18), CHANGELOG.md (2), README.md (1), help.html (1) · docs 2, fix 2, release 1_ diff --git a/main.html b/main.html index 875ff38..eb0fe9a 100644 --- a/main.html +++ b/main.html @@ -1350,13 +1350,13 @@ - + - + - +