diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/core/core-bundle.js | 8 | ||||
| -rw-r--r-- | modules/core/module-loader.js | 2 | ||||
| -rw-r--r-- | modules/core/terminal.js | 8 |
3 files changed, 15 insertions, 3 deletions
diff --git a/modules/core/core-bundle.js b/modules/core/core-bundle.js index d52764d..349c02b 100644 --- a/modules/core/core-bundle.js +++ b/modules/core/core-bundle.js @@ -4104,7 +4104,13 @@ Only output XML function calls for tool tasks. If no tool is needed, answer norm // (cron ui-gate-guard) fails if the gate is lost or the bare call returns. const _uiExp = (function () { try { - if (new URLSearchParams(location.search).get('ui') === '1') return true; + // ANY `?ui=<value>` opts in except an explicit off ('0'/'false'), because + // `?ui=<mode>` is the shell's own shared-link request (?ui=chat deep-links a + // mode, validated against lazyIds inside the shell). Requiring exactly '1' + // made every shared mode link boot classic with no error — measured + // 2026-11-12, the day this gate shipped. + const q = new URLSearchParams(location.search).get('ui'); + if (q !== null && q !== '' && q !== '0' && q !== 'false') return true; return localStorage.getItem('webx11_ui_experimental') === '1'; } catch (e) { return false; } })(); diff --git a/modules/core/module-loader.js b/modules/core/module-loader.js index 06a809f..754b532 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.162'; + const LATEST_VER = 'v4.6.163'; const CACHE = '?v=' + LATEST_VER; // Exposed so ext modules can register their own URL with the same cache-busting version // instead of an unversioned path the browser may already have cached (shell.js did). diff --git a/modules/core/terminal.js b/modules/core/terminal.js index cd7f5ae..9360f9e 100644 --- a/modules/core/terminal.js +++ b/modules/core/terminal.js @@ -1398,7 +1398,13 @@ // (cron ui-gate-guard) fails if the gate is lost or the bare call returns. const _uiExp = (function () { try { - if (new URLSearchParams(location.search).get('ui') === '1') return true; + // ANY `?ui=<value>` opts in except an explicit off ('0'/'false'), because + // `?ui=<mode>` is the shell's own shared-link request (?ui=chat deep-links a + // mode, validated against lazyIds inside the shell). Requiring exactly '1' + // made every shared mode link boot classic with no error — measured + // 2026-11-12, the day this gate shipped. + const q = new URLSearchParams(location.search).get('ui'); + if (q !== null && q !== '' && q !== '0' && q !== 'false') return true; return localStorage.getItem('webx11_ui_experimental') === '1'; } catch (e) { return false; } })(); |