v0.24.0
v0.24.0
What's Changed
Bug Fixes
-
fix(#564): Rust resolveImport returns null instead of phantom paths —
Rustcrate::,mod X;, andsuper::imports now returnnullwhen no candidate file exists, matching the behavior of all other languages and preventing phantom paths from enteringfileImports. -
fix(#565): Move rename-state.ts from hooks/ to tools/ to fix layer violation —
tools/impact.ts,tools/rename_symbol.ts, andmcp/tools.tsno longer import fromhooks/, fixing the one-way dependency rule violation. -
fix(#566): Log MCP shutdown errors instead of empty catch blocks —
transport.oncloseandstdin.on("end")handlers now log shutdown errors via_logWarninstead of silently swallowing them. -
fix(#567): Clear LSP init timeout timer to prevent UnhandledPromiseRejection —
The 15-second LSP initialization timeout timer is now cleared on success, preventing UnhandledPromiseRejection that could crash the process under--unhandled-rejections=strict. -
fix(#568): Redact error messages in withLogging before re-throwing to MCP clients —
Error messages sent to MCP clients are now redacted to prevent leaking absolute paths and stack traces. Original stack trace is preserved on the wrapped error. -
fix(#569): Move recordCallChain after symbol existence verification —
The rename safety gate no longer marks nonexistent symbols as reviewed, preventing bypass when the impact analysis fails to find the target symbol. -
fix(#570): Batch P1 reliability and safety fixes —
Cross-platform path containment usingpath.relative()(Windows compatibility),createToolerror logging via_logWarn,validateProjectRootreturns resolved real path for LSP consistency,maxFilesdefaults to 100 instead of unsafe type cast,jqfallback inpre-commit-verify.sh, cache deserializationArray.isArrayguard for corruptedfileImports,console.errorreplaced with_logWarnin rename_symbol and index.ts.
Simplified
-
Dead code removal (#572): Removed delta mode residual code (
options.delta,deltaLabel) fromverify.ts,tools/definitions.ts,mcp/tools.ts, andprecommit-verify.ts. Removed unused_lspManagerparameter fromregisterAllTools. -
Hot-path optimizations (#573): BFS queue
shift()replaced with O(1) head-index dequeue in all 4 BFS loops. LRU detail cache uses O(1) Map-based ordering instead of O(n)indexOf+splice. Single-pass diagnostics counting avoids multiplefilter().lengthiterations. Eliminated intermediate[...Set].filter()arrays in graph snapshot comparison.
Documentation
- docs: Fixed documentation alignment with actual implementation — updated SKILL.md (removed non-existent delta parameter, fixed LSP language count), mcp/README.md (tool count), AGENTS.md (source file count, audit log path), mcp/tools.ts (tool consolidation comment).
Upgrade
pi install npm:pi-shazam@latestOr for MCP clients:
{ "mcpServers": { "pi-shazam": { "command": "npx", "args": ["-y", "-p", "pi-shazam@latest", "pi-shazam-mcp"] } } }Full Changelog: v0.23.3...v0.24.0