Security fixes
- Viewer XSS hardening —
innerHTMLinjection points now escape& < > " '; inlineonclickhandlers on storedcategory/idvalues replaced withdata-id+ delegated click handling; category/date/ttl/lastAccessed escaped in the graph, timeline, tooltips, stats bar, and detail panel. - Shell-free browser launch —
openBrowserno longer usesexecSyncwith string interpolation; usesspawnwith argv arrays (no shell). - Offline d3 loading — viewer resolves
d3.v7.min.jsfrom the installed package for both CLI and MCP bundles, no more runtime fallback to the d3js.org CDN.
Smaller install
@inquirer/promptsumbrella → direct@inquirer/checkbox/@inquirer/select/@inquirer/confirmimports, dropping@inquirer/editor→@inquirer/external-editor→chardet→iconv-lite→safer-buffer(unmaintained since 2018).- Clean install: ~4.4 MB across 8 packages (was ~5.5 MB / 11).
416 tests passing. 0 audit vulnerabilities.