v1.4.2
Added
src/utils/sanitize-url.jsβ zero-trust URL gate forshell.openExternaland friends. Returns the URL unchanged when protocol ishttp:/https:,''for anything else (javascript:,data:,file:,vbscript:,chrome:, custom schemes). 9 unit tests.docs/boot-sequence.mdβ full ordered list ofmanager.initialize()steps + rationale. Migrated out of CLAUDE.md.docs/cross-context-helpers.mdβ helper table, adding new helpers,EM_*build-mode env vars. Migrated out of CLAUDE.md.
Changed
- Zero-trust URL sanitization at 5 call sites that previously passed potentially attacker-controllable URLs to
shell.openExternal:context-menu.js(params.linkURL),tray.js+menu.js(getWebsiteUrl()),restart-manager.js(Linux.debURL),hero-demo-form.js($form.dataset.redirect). CLAUDE.mdrestructured: 347 β 181 lines. Deep references moved intodocs/<topic>.mdfiles. Top-of-file note added: meat goes intodocs/*.md, not CLAUDE.md.~/.claude/CLAUDE.md(global) strengthened with the <250-line rule + default-to-docs/directive so future sessions write deep references indocs/instead of growing CLAUDE.md.
All 602 tests pass.