From 5d48e3bb52d333f828b50945003864d99488599e Mon Sep 17 00:00:00 2001 From: Hermes SysOp Date: Thu, 12 Nov 2026 17:56:25 +0100 Subject: docs: v4.6.164 change-history — phone PASS, the two defects it exposed, corrected heap reading MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ffca5b..aca774d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,13 +4,22 @@ Generated from git history by `scripts/build-changelog.py` — do not edit by ha -## v4.6.163 — 2026-11-12 +## v4.6.164 — 2026-11-12 _Touches modules (3), main.html (1) · fix 1_ +- **A mode the user picks now survives a reload (v4.6.164)** `c5b7695` + - Found by the operator actually running /ui-selftest.html on his phone. The report said 6/6 PASS, and the interesting part was what happened next: pick "easy" from the picker, reload, and you are back in classic. Two defects stacked on top of each other, neither of which reported anything: + - … run `git show ` for the rest + +## v4.6.163 — 2026-11-12 + +_Touches modules (3), main.html (1), CHANGELOG.md (1) · fix 1, docs 1_ + - **?ui= is an opt-in too — the gate had killed every shared mode link (v4.6.163)** `7efece4` - v4.6.162 shipped the opt-in gate as `get('ui') === '1'`. But the UI shell has always treated `?ui=` as a REQUEST — `module-uishell.js` reads `q = get('ui')` and honours it when the value is one of `lazyIds()` (easy|chat|studio|workspace|commander|cockpit), with `_fromQuery` set so the request never becomes a stored preference. So every shared link of the form `main.html?ui=chat` stopped mounting the shell entirely and booted classic, silently, with no error: the gate required a literal '1' that the shell's own convention never sends. - … run `git show ` for the rest +- **Change-history + changelog for v4.6.163** `9ee962d` ## v4.6.162 — 2026-11-12 -- cgit v1.2.3