Releases: stainless-code/codemap
v0.11.1
Patch Changes
3aff237Thanks @SutuSebastian! - Refresh runtime and toolchain dependencies (better-sqlite3, oxc-parser, oxfmt, oxlint, and related dev tooling) to latest compatible releases. Pin transitive hono and js-yaml to patched versions so dependency audits report no known vulnerabilities.
v0.11.0
Minor Changes
-
#178
36106ffThanks @SutuSebastian! - Add structural duplicate detection:symbols.body_hashat index time (canonical function body AST) and bundledduplicatesrecipe. Schema version 39 — existing indexes rebuild on nextcodemaprun. Function-shaped symbols only; trivial one-line bodies skipped. Triage collisions withsnippet— shared control-flow skeletons can false-positive. -
#179
8595173Thanks @SutuSebastian! - Add churn × complexity hotspot ranking:file_churnrefreshed on every index from git history, withcodemap ingest-churn, MCP/HTTPingest_churn, and configchurn.filefor non-git repos. Schema version 40 — existing indexes rebuild on nextcodemaprun. Newchurn-complexity-hotspotsrecipe ranks files or symbols (by_symbol) by change frequency × complexity with normalized 0–100 scores andchurn_trend. Outcome aliashotspotsstill maps to fan-in. -
#173
d4982c4Thanks @SutuSebastian! - Add SonarSource cognitive complexity onsymbols(same function-shaped coverage as cyclomatic, including class methods). Schema version 38 — existing indexes rebuild on nextcodemaprun. New recipehigh-cognitive-complexity;high-complexity-untestedrows includecognitive_complexity.
Patch Changes
-
#177
bb8bae9Thanks @SutuSebastian! - Onaudit --base <ref>(CLI / MCP / HTTP), eachaddedrow carriesattribution: introduced | inherited(branch-new vs pre-existing at merge base).--summaryaddsadded_introduced/added_inheritedper delta. -
#172
cf7df2fThanks @SutuSebastian! - Addquery --format codeclimate(GitLab Code Quality JSON) andquery --format badge(markdown issue-count line orcodemap-badge/v1JSON via--badge-style json). Available on CLI, MCP, and HTTP query tools. -
#183
b509e4cThanks @SutuSebastian! - Add hash-stablemap_idandcodebase_maprouting hints tocontextresponses (CLI, MCP, HTTP). MCP initialize instructions now includemap_idand top hub paths. Opt out with--no-codebase-maporinclude_codebase_map: false; omitted whencompact. -
#176
16687a0Thanks @SutuSebastian! - Addcoverage-confirmed-deadrecipe: static dead exports withconfidence(highwhen ingested 0% coverage,mediumwhen unmeasured), plusreasonandcaller_count. -
#174
a11242eThanks @SutuSebastian! - Addreasonandevidence_jsoncolumns on high-judgment recipe rows (boundary-violations,deprecated-symbols,unimported-exports) so agents can cite detection path beforeapplyor manual edits. -
#175
af86d10Thanks @SutuSebastian! - Addhigh-crap-scorerecipe: CRAP ranking with measured coverage when ingested, or graph-estimated 85/40/0% tiers from test reachability otherwise.Extend
unimported-exportswithunresolved_import_blind_spotreason andevidence_json(unresolved import hop) so dead-export / high-CRAP triage does not over-trust the graph past alias blind spots. -
#181
aae172fThanks @SutuSebastian! - Scopecodemap impactand MCP/HTTPimpacthomonym symbols:--in/indisambiguates by defining file (same prefix/exact rules ascodemap show --in); unscoped homonyms union per-defining-file call graphs instead of merging by name only. Mismatched scope returns emptymatcheswithskipped_scope. -
#170
e74410cThanks @SutuSebastian! - MCPtools/listand HTTPGET /toolsexpose advisoryreadOnlyHint,destructiveHint, andidempotentHintper tool so clients can gate auto-approval. Apply tools carrydestructiveHint; read-only query tools carryreadOnlyHint. -
#180
a5caca8Thanks @SutuSebastian! - Harden read surfaces:codemap query --format …blocks index mutations via the same read-only guard as--json;codemap serverequires--tokenwhen--hostis not loopback (any127.0.0.0/8address counts as loopback, so--tokenstays optional on127.0.0.2and similar);codemap validate(and MCP/HTTPvalidate) can returnrejectedrows with optionalreason(path escapes project root|path escapes via symlink|path resolves outside project root) — outputpathkeys are always project-relative POSIX paths. -
#182
3568c5fThanks @SutuSebastian! -createCodemap()and the CLI now reject invalid project config at load time. A secondcreateCodemap()with a different project root in the same process throws (audit--baseworktree reindex is exempt). -
#184
fb73e0dThanks @SutuSebastian! -showandsnippetnow use fast equality lookup for exactnameand lonename:Tokenqueries (no wildcards); substring, multi-field, and FTS paths stay on the broader slow tier. CLI help, MCP tool descriptions, and bundled agent guidance document the two tiers.
v0.10.1
Patch Changes
-
#169
1632bddThanks @SutuSebastian! - Refresh runtime and toolchain dependencies (oxc-parser, oxc-resolver, oxfmt, oxlint, @clack/prompts, tinyglobby, and related dev tooling) to latest compatible releases. -
#166
4bfb067Thanks @SutuSebastian! - Addcodemap renameCLI alias for homonym-safe renames viaapply rename-preview(--define-in,--in-file,--kind). -
#167
231d6ccThanks @SutuSebastian! - Add MCP/HTTP transport parity for coverage ingest and query baselines: newingest_coveragetool (CLI twincodemap ingest-coverage --json) and optionalbaselineparam onquery/query_recipe(same diff envelope ascodemap query --baseline). Tool count 19 → 20.
v0.10.0
Minor Changes
-
#164
8c7064aThanks @SutuSebastian! - Add optional heuristic call edges (calls.provenance) for JSX parent→child composition. Schema rebuild to v37. Enable via.codemap/configsynthesis.heuristicCalls: true(default off). Bundled recipecalls-including-heuristic;call-pathexcludes heuristics by default. -
#162
6e50d77Thanks @SutuSebastian! - Add two-phase call resolution (unresolved_callsstaging,calls.callee_symbol_id/callee_resolution_kind). Schema version 36 — existing indexes rebuild on nextcodemaprun.
Patch Changes
7b0406aThanks @SutuSebastian! - Ship the apply substrate: recipe-drivencodemap applyfor stale imports, deprecated migrations, import-source moves, JSX prop renames, and scopedrename-preview(define_inhomonyms). Add--rows,--diff-input, fixpoint--until-empty, optional--commit,auto_fixable/--force, andapply.autoApplyRecipesallowlist. MCP/HTTP twins:apply,apply_rows,apply_diff_input.
v0.9.5
Patch Changes
- #160
b1e3d58Thanks @SutuSebastian! - Add CLI twins for MCP query composers and resources so shell-only consumers get the same JSON payloads:codemap query batch,trace,explore,node,file,schema,symbols, andcontext --include-snippets.
v0.9.4
Patch Changes
- #158
e8ea640Thanks @SutuSebastian! - Addcodemap agents init --targetsand--link-modefor non-interactive IDE wiring. Combine with--mcpto write MCP config only for selected integrations (e.g. Cursor + Copilot without Continue/Cline). Mutually exclusive with--interactive.
v0.9.3
Patch Changes
- #156
ae4a143Thanks @SutuSebastian! -codemap agents init --mcpnow includes--root ${workspaceFolder}in the VS Code / Copilot MCP config (.vscode/mcp.json), same as Cursor. Re-runcodemap agents init --mcpto upgrade an existing.vscode/mcp.jsonfrom older init output (or--interactiveand select Copilot only).
v0.9.2
Patch Changes
-
#152
150c6c6Thanks @SutuSebastian! - Adaptive snippet budgets fortrace,explore, andnodescale with indexed file count whenbudget_charsis omitted (explicit override unchanged).explorealso applies adaptive row limits internally (no transport override). -
#155
450ca2eThanks @SutuSebastian! -codemap agents initis safer on re-run: IDE mirrors sync bundled template paths only;--forceoverwrites IDE mirrors only when they carrycodemap-init:managedor match the legacy mirror heuristic (pre-marker bundled copies); invalid MCP JSON shapes are rejected instead of reset (even with--force). -
#149
41a4184Thanks @SutuSebastian! - Addindex_freshnessmetadata oncontext, MCP tool responses, HTTP headers, and boot stderr warnings so agents can detect commit drift, pending watcher sync, and disk-ahead-of-index states before trusting structural queries. -
#154
1bcca3aThanks @SutuSebastian! -codemap agents init --mcpwrites PM-aware MCP spawn commands (e.g.npx codemap,pnpm exec codemap,yarn exec codemap,bunx codemap, or dlx@stainless-code/codemap@latest) instead of assuming globalcodemapon PATH. -
#153
048278bThanks @SutuSebastian! - MCP session lifecycle hygiene: stdio disconnect detection (stdin EOF, stdout EPIPE, parent-PID poll) with graceful watcher shutdown on client exit; HTTPserve --watchrefcount-gates the watcher per request (5s release grace,/healthexcluded). No MCP idle shutdown. -
#151
e717652Thanks @SutuSebastian! - Richcontextbootstrap:start_herewith intent-ranked recipe cards, inline index summary, budget-capped hub leaders with export signatures (adaptive caps by repo size), debug-biased marker samples, and optionalinclude_snippetson MCP/HTTPcontext(no-op whencompact: true). Legacyhubskeeps the bundledfan-inrecipe default limit; preferstart_here.hub_leadersfor signatures.
v0.9.1
Patch Changes
- #146
7afc9ebThanks @SutuSebastian! - Fixcodemap --full(and other worker-pool parses) appearing to hang ~120s after stats print — clear parse timeout timers when workers respond instead of leaving orphanedsetTimeouthandles on the event loop.
v0.9.0
Minor Changes
-
#129
6648addThanks @SutuSebastian! - Add cross-process index lock withcodemap unlock, and append parse failures to<state-dir>/errors.log. -
#130
f5374b8Thanks @SutuSebastian! - Add per-file parse timeouts with worker recycle during full and incremental indexing; failures log to errors.log and appear in the index summary.
Patch Changes
-
#132
8a1de53Thanks @SutuSebastian! - Addaffected-testsrecipe andcodemap affectedCLI for reverse-dependency test selection from changed files. -
#135
c4b4b36Thanks @SutuSebastian! - Addcodemap agents init --mcp— project-level MCP config for Cursor, Claude Code, VS Code, Continue, Cline, Amazon Q (workspace.amazonq/default.json+ legacy.amazonq/mcp.json), and Gemini CLI (Windsurf when that integration is selected), with idempotent JSON merge and Claudemcp__codemap__*permissions. -
#138
829075cThanks @SutuSebastian! - Add field-qualified symbol discovery oncodemap show --queryand MCP/HTTPshow/snippetvia aqueryargument (kind:,name:,path:,in:+ optional free text). Includes parameterized SQL engine, optional FTS join,--print-sqlMoat-A transparency, and{matches, disambiguation?, warning?}envelope parity across CLI, MCP, and HTTP. -
#124
04c4aa7Thanks @SutuSebastian! - Honor--state-dirfor project recipes; populatefunction_params.owner_kind; register MCPfiles/symbolsresource templates with optional?in=filter; watcher fixes for custom state dirs. -
#133
386ffa6Thanks @SutuSebastian! - Add MCP/HTTPaffectedtool — same preprocessor ascodemap affected, composes theaffected-testsrecipe. RespectsCODEMAP_MCP_TOOLSallowlist. -
#126
ed4ca6bThanks @SutuSebastian! - Add MCP initialize server instructions (tool-selection playbook) andCODEMAP_MCP_TOOLSenv for subset tool registration. -
ee9f6b2Thanks @SutuSebastian! - Bumpoxc-parserto ^0.133.0 and@typescript/native-previewto the latest 7.0 dev build. -
9fa1e9dThanks @SutuSebastian! - Pin runtime and dev dependencies to exact versions inpackage.json(drop carets) and refreshbun.lock. Dev tooling:oxfmt0.52,oxlint1.67,@typescript/native-preview20260526. Oxlint 1.67 drops a redundant escape inshow-search-mode.tsglob regex (no behavior change). -
#131
a8cf25bThanks @SutuSebastian! - Addcall-pathandsymbol-neighborhoodquery recipes for cycle-safe call-graph tracing and bidirectional symbol exploration. -
#143
e475d20Thanks @SutuSebastian! - Fix type heritage resolve edge cases: default-import bases, re-export barrel incremental scope, homonym dedupe in ancestor walks, and(expression)complex extends handling. -
#142
a085ec6Thanks @SutuSebastian! - Addtype_heritagesubstrate and rewiretype-ancestors/type-descendantsrecipes to JOIN indexed heritage edges instead of parsingsymbols.signature. -
#141
bd5a1faThanks @SutuSebastian! - Addtype-ancestorsandtype-descendantsquery recipes for extends/implements hierarchy walks (backed by thetype_heritagesubstrate after #142). -
#127
4318cc4Thanks @SutuSebastian! - Add WSL watch policy (auto-disable on/mnt/*mounts) and opt-in git hooks for background incremental index when the watcher is off.