diff options
| author | Agando <roduccomm@gmail.com> | 2026-11-09 22:45:10 +0100 |
|---|---|---|
| committer | Agando <roduccomm@gmail.com> | 2026-11-09 22:45:10 +0100 |
| commit | bb210547ea45aabd7b68563921844ba162db67cb (patch) | |
| tree | 198a950f1aa704f25b2495bd49b9257da474c07b /modules/core/terminal.js | |
| parent | 543d85a37fe26cc401a109c021d3ffb9b04af37d (diff) | |
fix(newos4): take the UI shell off the startup path until the crash reports are explained
Symptom: operator reports newOS4 "started to crash since the last ui update"; a
user (Max) reports his browser crashed. Order: roll back, do not re-enable until
it is verified in a dev environment.
Root cause: not yet established, and the log work rules out the obvious suspect.
- 0 requests for modules/ext/ui-*.js in the entire access log: no interface mode
has ever mounted in production, so a mode's own chrome cannot be the cause.
- all six modes driven on one page in headless Chromium at 390x844: no crash, no
page errors, one #terminal-container, heap flat at 10 MB over a 25 s idle.
- the six errors.json entries that read like a crash report (SPA is not defined,
DOM harness FAILED: N, "...reading 'makeInstance'") exist in no shipped file -
grep on the served 1.29 MB bundle returns 0 - so they came from a harness run
inside that one browser session.
Two real defects were found instead, both planned not bundled here:
- /ollama/api/chat inherits nginx's 1 MB default client_max_body_size and
refused a 1,063,595-byte agent context with 413 (only 413 in 7 days).
- module-aiassist.js:2576 const originalPath = a.path || '' then .replace on a
model-supplied non-string: TypeError, 3 events on tool:list_files, 32 sites
with the same shape.
Fix: the UIShellModule registration in terminal.js is commented out with a dated
note and the revert recipe; bundles rebuilt from source; LATEST_VER v4.6.156 ->
v4.6.157; main.html's three ?v= refs bumped. The six modes are lazy ext files
whose first line is `if (!terminal.uiShell) return;`, so an accidental load is a
no-op and no first-run picker appears.
Verified: served core-bundle.js?v=v4.6.157 is cmp-identical to disk (1,298,695 B)
and the registration exists only as a comment (core-bundle.js:4082). Playwright
390x844: shellPresent false, uiShellModuleRegistered false, uiRoot false,
pickerNode false, moduleCount 47, help renders 21,802 chars, pageerrors [].
Workaround: none needed - users get classic only. Re-enable = restore the line,
rebuild, bump LATEST_VER + main.html, re-run admin/scripts/probe-ui-modes.py.
Plan: .hermes/plans/2026-11-09_224409-newos4-ui-rollback-dev-verify.md
Diffstat (limited to 'modules/core/terminal.js')
| -rw-r--r-- | modules/core/terminal.js | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/modules/core/terminal.js b/modules/core/terminal.js index f0259fc..91bea4c 100644 --- a/modules/core/terminal.js +++ b/modules/core/terminal.js @@ -1382,7 +1382,15 @@ this._safeRegister('SmartContextModule', 'smart context'); this._safeRegister('SimpleGUIModule', 'simple GUI builder'); this._safeRegister('DebugSupervisorModule', 'debug supervisor'); - this._safeRegister('UIShellModule', 'UI shell'); + // 2026-11-09 — UI shell DISABLED from startup (operator order after crash reports). + // The six interface modes (v4.6.152–156) are not in extKeys, so with the shell + // unregistered no mode can mount, no first-run picker appears, and `ui` does not + // exist: newOS4 boots to classic only. The ext ui-*.js files all begin with + // `if (!terminal.uiShell) return;`, so an accidental load is a no-op. + // Re-enable = restore this line, rebuild the bundle (scripts/rebuild-bundles.py), + // bump LATEST_VER + main.html ?v=, re-run admin/scripts/probe-ui-modes.py. + // Tracked in .hermes/plans/2026-11-09_*-newos4-ui-rollback.md + // this._safeRegister('UIShellModule', 'UI shell'); // v4.5.47: Critical ext modules promoted to boot path this._safeRegister('EditorModule', 'editor'); this._safeRegister('ShellModule', 'shell'); |