Skip to content
v3.31.1MIT

Framework-aware code intelligence MCP server — 88 framework integrations, 81 languages, 72.7% fewer input tokens to review a pull request, comprehension at parity

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

3.31.1 (2026-09-21)

Bug Fixes

  • ci: raise MCP-registry publish timeout above npm wait loop (TRA-1756) (#1308) (6c839c0)
  • daemon: count deferred reconcile + bulk indexing in projects_indexing (TRA-1763) (#1311) (09db9e7)
  • daemon: stop rescanning deleted roots, report missing in health (TRA-1715) (#1290) (52b38c0)
  • gc: sweep ephemeral watcher snapshots, log ephemeral sweep (TRA-1714) (#1289) (0d63b18)
  • graph: stabilize zoom gestures and deduplicate hover labels (TRA-1767) (#1314) (483441e)
  • indexer,daemon: dedup identical language-plugin failures, skip ephemeral roots on update reindex (TRA-1768) (#1315) (f232fce)
  • indexer: purge stale electron cross-file edges on handler/listener removal (TRA-1780) (#1318) (5dcec54)
  • indexer: yield between framework edge passes so /health stays answerable (TRA-922) (#1302) (56f4d09)

Performance

  • indexer: scope-aware Pass 2 remainder — electron channel cache, file-projection UNION, ts import-map narrowing (TRA-1729) (#1313) (1a5e97a)

3.31.0 (2026-09-20)

Features

  • graph: dependency navigation, safe tooltips, and monorepo deduplication (TRA-1745) (#1303) (435169a)

Bug Fixes

  • observation-pack: compact/legacy ranking parity under budget + bench depth args (TRA-1728) (#1307) (441f6f0)

3.30.1 (2026-09-20)

Bug Fixes

  • daemon: drain in-flight pipeline work before closing DBs on SIGTERM (TRA-1752) (#1306) (d5244f2)
  • daemon: stop relay pinning projects + honest sweep accounting (TRA-1738) (#1301) (994349c)
  • graph: auto-fit frames point cloud, not simulation space (TRA-1741) (#1299) (6c1c4b8)
  • guard: canonicalize consultation marker keys + root-aware errors (TRA-1737) (#1305) (51e664c)
  • observation-pack: Reviewer C follow-ups from #1285 + economics branch coverage (TRA-1700, TRA-1703) (#1296) (bc5d250)

Performance

  • indexer: share workspace plugin detection + throttle ANALYZE (TRA-1543) (#1304) (276ac7f)

Documentation

  • distribution: record TRA-1732 alternative-query venue checks (no submissions) (#1295) (ca92171)
  • seo: jcodemunch on-page + CTR descriptions + internal links + visible breadcrumbs (TRA-1731) (#1298) (05fee6e)
  • seo: on-page + CTR for comparisons, configuration, vs/jcodemunch (TRA-1734) (#1297) (a36de17)

3.30.0 (2026-09-20)

Features

  • clients: Zed writer, detect, status and UI row (TRA-1658) (#1277) (04842a2)
  • daemon: single-daemon audit, doctor process inventory, stop sweep (TRA-1607) (#1284) (6e48b7b)
  • diagnostics: evidence-preserving reducer for long outputs (TRA-1702) (#1291) (09aa341)
  • observation-pack: paged recall for get_change_impact (TRA-1700) (#1285) (74b1105)
  • refactoring: then_validate fused validation for mutating tools (TRA-1701) (#1288) (25948cf)
  • session: economic compaction gate for session memory (TRA-1703) (#1292) (bb75381)

Performance

  • onnx,daemon: ORT mem-pattern tuning + watcher dedup by root (TRA-1608) (#1286) (db376d7)

Documentation

  • measurements: mark response_tokens historical — measured at 3.23.2, stale since 3.30.0 (TRA-1723) (#1294) (778b68c)

3.29.0 (2026-09-19)

Features

  • clients,savings,app: close the value loop from the app — one-click PreToolUse redirect + honest Savings (TRA-1698) (#1283) (23db2d8)
  • clients: MiniMax Code writer, detect, status and UI row (TRA-1670) (#1274) (ad3f596)
  • memory: one-shot mine CTA and automining flag in Memory empty states (TRA-1689) (#1281) (e6380b7)
  • overview: expose security findings list via REST + Overview section (TRA-1675) (#1279) (70d1a80)

Bug Fixes

  • daemon: register endpoint full reindex in stop drain + stopping gate (TRA-1674) (#1278) (ed1823c)
  • debt: absolute churn signal + recalibrated A/B cutoffs (TRA-1671) (#1273) (757e3b5)
  • indexer,app: surface silent max_files truncation (TRA-1664) (#1271) (2129ff5)
  • indexer: EnvIndexer respects descendant excludes and gitignore (TRA-1666) (#1269) (2323fd6)
  • indexer: reconcile-storm backoff and run-artifact default excludes (TRA-1665) (#1270) (09f7a97)
  • quality: skip PHP __construct DI and empty boilerplate in empty_function (TRA-1672) (#1275) (0e1d157)

Documentation

  • outreach: delta recheck 2026-09-19 morning — all threads silent, sweep clean, graft listing surface checked (TRA-1684) (#1280) (80da4bc)
  • outreach: evening delta 2026-09-19 — threads silent, sweep clean, ripwire + context-mode surfaces checked (TRA-1697) (#1282) (51829bc)
  • outreach: yzfly recheck 2026-09-19 still open, maintainer quiet since 08-30 (TRA-1673) (#1276) (ba94aee)

3.28.0 (2026-09-18)

Features

  • app,cli: per-client restart-to-pickup hint after MCP client update (TRA-1647) (#1267) (e48bb74)
  • clients: codex TOML drift parity, project-layer guide and tests (TRA-1657) (#1266) (f115596)
  • daemon: sweep-eligibility observability in vitals (TRA-1625) (#1250) (a1641de)
  • init: add Gemini CLI MCP client support (TRA-1659) (#1265) (347bd9f)

Bug Fixes

  • app: blocked Claude Desktop write opens a sheet with the quit-and-retry steps (TRA-1645) (#1258) (6ebdb89)
  • app: overview shows not-registered empty state instead of eternal load error (TRA-1643) (#1257) (db375b0)
  • daemon: reap MCP sessions idle >1h so dead clients stop pinning projects (TRA-1627) (#1251) (1d3009e)
  • errors: missing target returns VALIDATION_ERROR, not echoable NOT_FOUND (TRA-1633) (#1254) (ec9f148)
  • indexer: skip directories instead of erroring (TRA-1649) (#1259) (90bd2de)
  • navigation: accept absolute paths and kind-less symbol ids (TRA-1660) (#1268) (5962d40)
  • notebook: friendly state for unregistered projects instead of raw daemon JSON (TRA-1642) (#1256) (ca16514)

Documentation

  • outreach: awesome-claude-code submitted 2026-09-18 as #2871, awaiting triage (TRA-1651) (#1261) (6b321a8)
  • outreach: twenty-sixth pass 2026-09-18 night — delta recheck, one genuine sweep hit (TRA-1624) (#1249) (c148c01)

Tests

  • e2e: umbrella indexing lifecycle + unload/reload + watcher-dir regressions (#1260) (0374a7f)

CI/CD

  • release: retry gh release upload with backoff, fail loudly when npm is skipped (TRA-1628) (#1253) (39f421c)

3.27.1 (2026-09-17)

Bug Fixes

  • memory: FTS5-escape memory search; gate mined fragments + low-quality sweep (TRA-1619) (#1247) (3d5187e)

3.27.0 (2026-09-17)

Features

  • daemon: fallback-storm guard — adaptive proxy timeout + cross-process index mutex + fallback counter (TRA-1605) (#1246) (193a010)

Bug Fixes

  • daemon: drain and gate single-file reindexes across stopProject (TRA-1553) (#1241) (daabadd)

Performance

  • indexer: per-pass resolve-context memo + tailwind read gate (TRA-1602) (#1245) (2643ba0)

Documentation

  • outreach: twenty-fifth pass 2026-09-17 morning — light recheck, one genuine sweep hit (TRA-1599) (#1243) (8fc6b0f)
  • outreach: twenty-fourth pass 2026-09-16 night — light recheck, sweep clean, TensorBlock evaluated+held (TRA-1590) (#1240) (d3b4814)

Tests

  • windows: quarantine timing flakes on loaded CI runners (TRA-1579) (#1244) (bc15ccf)

3.26.3 (2026-09-16)

Performance

  • parser: per-file tree-sitter cache + incremental reparse in watcher (TRA-1577) (#1237) (bbeee02)
  • weak: weak-profile stand + full vs low-power numbers (TRA-1578) (#1236) (8cec277)

Documentation

  • outreach: twenty-third pass 2026-09-16 late evening — light recheck, one sweep collision (TRA-1584) (#1238) (98ded90)

3.26.2 (2026-09-16)

Bug Fixes

  • ci: bound Windows prompt-hook decisions search at 10s, quarantined retries for wall-clock flakes (TRA-1571) (#1230) (1e4c5bf)
  • ci: Windows timeout budget for SQLite-heavy suites, refresh stale sitemap (TRA-1513) (#1211) (12634f1)
  • cli: handle clack cancel symbol for @clack/prompts 1.8 compat (TRA-1558) (#1227) (2214f6f)

Performance

  • ai: ONNX q8 default + true batching for embedBatch (TRA-1538) (#1220) (4ead7e3)
  • db: FTS trigram-merge + SQLite pragmas audit (TRA-1541) (#1224) (a9f9405)
  • embeddings: eval MiniLM vs e5-small vs bge-m3, E5 prefix plumbing (TRA-1539) (#1231) (9b924ab)
  • indexer: shared decode + adaptive worker pool (TRA-1537) (#1222) (5c4f658)
  • indexer: watcher since-query + git fast-path for incremental discovery (TRA-1576) (#1234) (0d71cf3)
  • parser: tree-sitter-wasm 2.0.1, full warmup coverage, tree.edit() prototype (TRA-1540) (#1233) (8db7118)

Documentation

  • config: record the daemon-default decision at auto_spawn_daemon (TRA-1509) (#1208) (f5b86c9)
  • outreach: 2026-09-16 delta — aloth/awesome-ai-agents fits (moratorium-held), crazy54 rejected as link-farm (TRA-1567) (#1229) (1246218)
  • outreach: twentieth pass 2026-09-16 — outline#34 answered, threads silent, sweep clean (#1225) (3ac5fab)
  • outreach: twenty-first pass 2026-09-16 — light recheck, one sweep collision (TRA-1572) (#1232) (c94f745)
  • outreach: twenty-second pass 2026-09-16 evening — light recheck, sweep clean (TRA-1580) (#1235) (761713f)
  • perf: TRA-1392 startup+size pass at 3.25.1 — no regressions, first_content 89 -> 82ms (#1214) (b274805)
  • sitemap: refresh lastmod to 2026-09-16 for 14 pages (TRA-1569) (#1228) (25ffecf)
  • vs: add /vs/narsil-mcp comparison page and profile CCG competitor (TRA-1234) (#1163) (68d21cf)

Chores

  • deps: fix 2 open Dependabot alerts via pnpm overrides (TRA-1559) (#1226) (82836a0)

3.26.1 (2026-09-15)

Bug Fixes

  • ux: name empty root + relay hint in health/empty-hints (TRA-1534) (#1219) (03498ea)

Performance

  • app: startup-only baseline pass at 3.25.1, no regression (TRA-1347) (#1215) (58433a3)
  • indexer: skip unchanged files before extract dispatch (TRA-1536) (#1221) (22203b2)

Chores

  • deps: pin tree-sitter-wasm to 1.1.6, take web-tree-sitter 0.27.0 (TRA-1513) (#1210) (1716525)

3.26.0 (2026-09-15)

Features

  • indexer: Lua cross-file require import edge resolver (TRA-1332) (#1185) (8d33242)

Bug Fixes

  • analytics: book measured tokens in agent-for-indexed, cap savings pct at 100 (TRA-1514) (#1213) (299ec2b)

Documentation

  • outreach: evening pass — pr-agent reply + TRA-1502, FM-Agent close, Aspire no, Egoka/Altera sweep hit (TRA-1501) (#1206) (cb15be1)
  • outreach: rebase dirty catalog PRs eltociear#119, ai-boost#240 back to mergeable (TRA-1508) (#1207) (e52ab61)

3.25.1 (2026-09-14)

Bug Fixes

  • analytics,server: strip execution schema tax, clean poisoned analytics targets, and eliminate false positives in optimization rules (TRA-1350) (#1191) (adb354c)
  • detect active model for savings and resolve CLAUDE.md drift false positives (TRA-1063) (#1183) (1cca06d)
  • presets: add get_untested_symbols to dev preset and audit per-role telemetry (TRA-1366) (#1194) (a33dfcd)

Documentation

  • ops: update preset telemetry audit for v3.25.0 and integrate analytics DB (TRA-1356) (#1192) (ca66be9)
  • outreach: seventeenth pass — deslop fix shipped, roam-code rival names us, 4 sweep hits (TRA-1496) (#1205) (537d0c8)
  • seo: GSC crawl record (homepage recrawled, 24 indexed, +2 discovered), GitNexus link mesh, and Narsil-MCP/Graft deep-dives (TRA-1365) (#1195) (33b57af)
  • seo: GSC crawl record 24 indexed (+2 /vs/ pages), privacy discovery links, and code-graph-mcp ecosystem expansion (TRA-1346) (#1190) (cab2b68)
  • vs: add /vs/gitnexus comparison, deep-dive grafel, and update competitor stars (TRA-1361) (#1193) (031ad4e)
  • vs: add /vs/graft comparison, refresh competitor stars, and distribution ledger (TRA-1371) (#1196) (71b0dca)

Tests

  • db: add comprehensive unit tests for GraphRepository (TRA-1334) (#1187) (b6a5d46)

3.25.0 (2026-09-09)

Features

  • cli: expose blast radius and impact analysis via CLI (TRA-1252) (#1172) (10e7864)
  • indexer: Elixir cross-file import edge resolver and multi-alias expansion (TRA-1227) (#1162) (4c8c6c4)
  • plugin: support @opentelemetry/api for agentic workflows tracing (TRA-1264) (#1178) (dfa2231)
  • quality: add get_diagnostics tool to map compiler errors to AST symbols (TRA-1222) (#1181) (5aaba15)

Bug Fixes

  • daemon: heal 0-byte WAL, prevent constructor fd leaks, and fix session refcount leaks (TRA-1233) (#1165) (11520b4)
  • docs: quality-gates defaults, benchmark scenarios, OpenCode client, and test references (TRA-1236) (#1173) (b331de6)
  • launcher,updater,cli: pnpm prefix probing, auto-update lock, and state hygiene sweeps (TRA-1259) (#1177) (3958abd)
  • launcher: multi-version node resolution and client drift healing (TRA-1266) (#1179) (cc9e7fc)
  • launcher: prevent app runtime pairing with incompatible external npm CLI (TRA-1249) (#1171) (8ce9207)
  • savings: align savings-report o200k_base count claim with runtime tokenizer reality (TRA-1263) (#1176) (695902e)

Documentation

  • comparisons: profile two peers at source, update competitor star counts (TRA-1283) (#1182) (5243e3d)
  • ops: fourteenth outreach pass — mention sweep, linny006 tracker, MobinX queue analysis (TRA-1281) (#1184) (9cf5043)
  • ops: record su-record/vibe integration in distribution and mentions-seen (TRA-1244) (#1170) (418a869)
  • ops: thirteenth outreach pass — gbrain #5001, FM-Agent #229, competitor ai-architect-codebase (TRA-1265) (#1180) (850de38)
  • ops: twelfth outreach pass — fullsend #297, stella #6461, competitor aft (TRA-1232) (#1164) (02013ea)
  • web: fix GitHub casing/noopener in landing chrome and refresh DESIGN-WEB baselines (TRA-1247) (#1169) (3c2090d)

Tests

  • db: add unit tests for AnalyticsRepository (TRA-1229) (#1166) (12ab200)

3.24.0 (2026-09-08)

Features

  • app: auto-growing highlighted json editor and unified theme segmented control (TRA-1066) (#1141) (9883b19)
  • client: opencode client profile, auto-config in init, and neutral tool routing in AGENTS.md (TRA-1204) (#1150) (1def36d)
  • context-bundle: declare a body the budget refused, instead of a bare signature (TRA-1144) (#1114) (63b7b1c)
  • server: antigravity client profile with host tool retargeting and search suppression (TRA-1216) (#1153) (5dfe6d3)

Bug Fixes

  • analytics,security: fix bash target_file extraction and root path traversal false-alarm (#1134) (4ccb020)
  • app: "Get help" opens a prefilled issue form, not a closed-issue list (TRA-1155) (#1121) (dd9cef2)
  • app: disambiguate Open/Re-index/Remove aria-labels too (TRA-1058) (#1123) (5a98412)
  • cli: sort recently changed files by mtime_ms DESC NULLS LAST (TRA-1069) (#1147) (2de011a)
  • dashboard: a real grade needs a real sample size (TRA-1057) (#1124) (92b917c)
  • docs: register foreign audit paths, add test-quiet runner, refresh llms-full (TRA-1226) (#1160) (d574379)
  • i18n: macOS Tahoe terminology and layout fixes for German and Japanese (TRA-1220) (#1157) (9b282a7)
  • init: detect and heal drifted Codex MCP launcher path and dynamic home paths (TRA-1224) (#1161) (aec9fb9)
  • launcher,config: support CRLF in launcher and prune dangerous state directories (TRA-1197) (#1137) (4210f90)
  • launcher,gc: sweep stale session artifacts in softGcSweep and support --preset variations in proxy fast path (TRA-1218) (#1155) (2bcbeba)
  • launcher: keep the legacy shim path delegating so upgrades reach it (#1125) (516bef2)
  • launcher: resolve probe candidates across candidate homes under isolated HOME (TRA-1206) (#1145) (1d24da3)
  • launcher: self-locate state home under isolated HOME and survive update swap window (TRA-1190) (#1136) (1b3ca6d)
  • launcher: survive an MCP client spawned without HOME (TRA-1163) (#1128) (11e878c)
  • memory: ensure mined decision titles are complete statements and preserve wording (TRA-1056) (#1140) (8397f59)
  • presets: compose navigation primitives floor, and account for meta-tools (TRA-1162) (#1131) (b4e3c21)
  • quality: filter parameter properties from empty_function, ignore backtick TODO tags, and filter DOCTYPE/placeholder/local URLs (TRA-1070) (#1151) (60c2278)
  • registry,dangerous-root: preserve shared index DB and protect state subdirs (TRA-1197) (#1138) (e31906b)
  • router: drop late backend responses for non-pending ids and detach before error synthesis (TRA-1200, TRA-1149) (#1143) (e3ebae0)
  • sweep: collect leaked tmp symlinks, and bound the shim header read (#1127) (9ba0c31)

Performance

  • app: lazy-load GraphExplorerGPU to drop 702KB cosmos chunk from eager startup (TRA-1185) (#1133) (2de5c48)
  • tools: shape get_plugin_registry, price field tail, and update response-token benchmark (TRA-1159) (#1154) (5ad36c2)

Documentation

  • comparisons: audit what the field measures besides tokens (#1104) (9cb29d2)
  • comparisons: profile two peers at source, add the benchmark-method gap (TRA-1019) (#1022) (82dfb1d)
  • comparisons: update competitor star counts and verification pass log (2026-09-08) (#1158) (608ac4d)
  • ops: audit live preset telemetry, configure web design agent, and add multica audit script (TRA-1208) (#1146) (e0ae603)
  • ops: eighth outreach pass — diff-scoped graph review in PR-Agent, and C# namespace fan-out in Aspire (TRA-1193) (#1135) (3a9d263)
  • ops: eleventh outreach pass — redproof #50, cxpak #103, ripwire peer discovery (TRA-1219) (#1156) (caf9801)
  • ops: ninth outreach pass — PR-Agent reply, LastLight #372 code-graph skill vs egress, GitNexus #3068 portable index (TRA-1205) (#1144) (c6ab8ec)
  • ops: seventh outreach pass — the merged catalog PR, and two doors in the freshness class (#1129) (d963028)
  • ops: sixth outreach pass — SCIP doors, and our own ingest fails the no-op invariant (#1126) (2553915)
  • ops: tenth outreach pass — nanocoder/deslop validations, harness-engineering #1284, git-pkgs/outline #34 (TRA-1211) (#1152) (0aafc95)
  • ops: update preset telemetry audit to N=7843 and record 100% fleet rollout (TRA-1223) (#1159) (c22215b)
  • seo: internal link graph reinforcement, GSC 09-08 12:00 UTC crawl record, and /tools-index discovery integration (TRA-1207) (#1149) (d1c5bc3)
  • seo: internal linking overhaul across 11 /vs/ pages, ecosystem expansion in /code-graph-mcp, and GSC 09-08 crawl record (TRA-1184) (#1132) (d3ce7fb)
  • vs: add /vs/jcodemunch comparison page and profile competitor (TRA-1153) (#1120) (940532d)
  • vs: add /vs/tokensave comparison page and profile competitor (TRA-1166) (#1130) (97892bb)

Tests

  • bench: add state_patch arm to recall A/B benchmark (TRA-1124) (#1142) (97e0668)
  • launcher: fix test isolation on runners with system node (TRA-1199) (#1139) (f9b5eb2)
  • launcher: force candidate home probing in hostile identity injection test (TRA-1206) (#1148) (1f64cd2)

3.23.2 (2026-09-07)

Bug Fixes

  • workspace: dead registry rows aren't projects (TRA-1054/1057/1077) (1749b7a)

Documentation

  • perf: measure what the missing changed-symbol bodies are, and what recovering them costs (#1117) (50d6845)

3.23.1 (2026-09-07)

Bug Fixes

  • app: drop the false role=grid on the projects list (TRA-1108) (#1110) (c5b9ce0)

Performance

  • context-bundle: stop shipping the same bytes twice (TRA-1141) (#1107) (5f868b8)

3.23.0 (2026-09-07)

Features

  • docs: rebalance the row lockup — icon +16%, word -16% (TRA-780) (#1036) (a74d7f7)
  • doctor: answer 'what would serve index from here' first (TRA-1087) (#1060) (724e8b8)
  • notice the user when the daemon auto-registers a project root (#936) (#1068) (427059a)
  • ops: gate the GitHub and npm descriptions against docs/_data (TRA-1120) (#1086) (d4d27a2)
  • quality: CI structural gate + release threshold check for context-bundle quality (TRA-1100) (#1106) (9a432d8)
  • server: say what the server is in serverInfo (TRA-1119) (#1084) (3b08e27)
  • show the user how much token spend trace-mcp gave back (TRA-1091) (#1064) (866aa8a)

Bug Fixes

  • activity: keep tool-call history on disk so the tab stops reading zero (TRA-1071) (#1111) (30957bf)
  • activity: stop cross-project filter leak and contradictory empty state (TRA-1055) (#1074) (256cacf)
  • analysis: label communities in the Graph tab, not just detect_communities (#1054) (ba0283c)
  • analysis: make community labels unique across communities (#1052) (6432481)
  • analytics: stop reporting stale:false when project freshness is unknown (TRA-1072) (#1073) (022f103)
  • app: contract-test daemon wire responses; fix pagerank/hotspot/search/get_symbol field drift (#1055) (98eafd4)
  • app: disambiguate identically-named projects in Recent/Quick Open (TRA-1058) (#1050) (27e918c)
  • context-bundle: restore symbol bodies under ESM, correct the PR-context figure to 70.5% (#1066) (b6748b8)
  • daemon: gate watcher rescans by parallel_initial_index (TRA-1138) (#1102) (d5bc8da)
  • daemon: lazy-load idle-unloaded projects over HTTP, reconcile status periodically (TRA-1052, TRA-1067) (#1053) (1b345ab)
  • daemon: stop /health starvation scaling with the number of indexing projects (TRA-1127) (#1094) (4e9b1b9)
  • daemon: stop reporting a busy daemon as idle, and name the idle RSS ceiling (TRA-1125) (#1092) (ee2fd58)
  • docs: anchor every count claim to counts.yml, not the registry (#1061) (8f065a7)
  • guard: find the heartbeat sentinel from a subdirectory (TRA-1088) (#1062) (4f25380)
  • guard: match shared ancestors across the macOS /private symlink (#1065) (4a783a1)
  • indexer: normalize backslash paths in indexFiles/deleteFiles on Windows (TRA-1045) (#1041) (d48a858)
  • indexer: resolve C# using-directive imports (TRA-1027) (#1028) (5a8bccf)
  • indexer: resolve Kotlin imports, the next language after C# (TRA-451) (#1039) (096f46a)
  • init: pin the tweakcc npx spec and stop detection from installing it (TRA-1133) (#1099) (385bff4)
  • launcher: require a non-empty cli.js before exec (TRA-1132) (#1097) (94eb399)
  • launcher: verify the configured node still runs on every start (TRA-1040) (#1038) (d21c9e0)
  • ops: mention sweep was blind to every multi-term query (TRA-1085) (#1059) (0f1a6e7)
  • proxy: never let a failed local fallback orphan the client handshake (#1116) (9d0128f)
  • quality: reject stale spans in get_changed_symbols/compare_branches (#1049) (d03ec58)
  • registry: route unregistered one-shot workdirs at the ephemeral index dir (TRA-1136) (#1101) (696f243)
  • registry: sweep a dead one-shot workdir without the 7-day grace (#1071) (7eea38c)
  • router: promote to local mode when a proxy send fails (TRA-1080) (#1056) (1bd3d68)
  • tests: raise dashboard-routes beforeAll hook timeout for Windows CI (#1057) (bcf9872)

Performance

  • dashboard: serve /api/dashboard/projects from cache, compute in background (TRA-1053) (#1051) (c2196ec)
  • find_usages: cap the response tail, and price the tool from a basket (TRA-1049) (#1045) (851169c)
  • register_edit: stop re-reporting duplicates the edit did not introduce (TRA-1098) (#1069) (3ed903c)

Documentation

  • benchmarks: what share of a subscription can trace-mcp actually save (#1046) (7c9e979)
  • CodeGraph (codegraph-ai) deep dive, competitor star refresh, and t.co distribution ledger update (TRA-1074) (#1048) (4ae2b5c)
  • contributing: require screen-to-code path for UI defect fixes (#1072) (760c192)
  • language-matrix: measure import resolution depth per language on real repos (TRA-1145) (#1109) (3bebb50)
  • ops: assess Homebrew as an install path and correct the tracedecay reading (TRA-1097) (#1067) (91e2b5c)
  • ops: merge duplicate hermes-agent rows, add pre-submission dedupe check, record the 2026-09-06 trial-plan sweep (TRA-1046) (#1042) (8694475)
  • ops: record 2026-09-07 evening outreach pass (#1115) (3384abc)
  • ops: record the 2026-09-07 outreach pass — nanocoder #1197 and deslop #173 (#1093) (adc5b49)
  • ops: third trial-plan sweep, the atlas reply that found TRA-1075, and a competitor with no catalog presence (#1047) (05343e1)
  • perf: reprice register_edit from the frame, 345 → 219 tokens (TRA-1107) (#1087) (6ca4d37)
  • perf: republish PR-context coverage under the corrected readability metric (#1112) (3144f17)
  • roadmap: 2026-09-07 revision — the quality arm missed, and it reorders the roadmap (#1063) (d106639)
  • security: record standing verdicts for js/log-injection and the registry.ts key-write pair (#1096) (a5a5142)
  • seo: add /code-graph-mcp landing page and record 09-07 GSC crawl findings (TRA-1083) (#1058) (39e00a9)
  • seo: integrate SocratiCode into /code-graph-mcp, carry quality half, and record 09-07 16:00 GSC crawl (TRA-1139) (#1105) (adf8dc1)
  • site: carry the quality half in the homepage hero, and drop the locality absolutes (TRA-1122) (#1090) (8259245)
  • site: stop setting the hero's quality evidence as fine print (TRA-1143) (#1108) (74b1d24)
  • stop claiming 100% local, and never publish the saving without the quality half (TRA-1013) (#1088) (58f401a)
  • vs: add /vs/socraticode comparison page and profile competitor (TRA-1114) (#1085) (526241f)
  • vs: add trace-mcp vs code-review-graph comparison page (TRA-1001) (#1040) (3423b56)
  • vs: head-to-head page for CodeGraphContext, refresh its facts (TRA-1034) (#1034) (d6a235c)

Tests

  • bench: a SKILL.state A/B whose arms can fail — and one does (TRA-1115) (#1091) (c148138)
  • daemon: close the guard's SQLite handles so Windows can clean up (TRA-1127) (#1100) (f4e0b1a)
  • daemon: unflake the /health starvation guard — compare p99, not max (TRA-1127) (#1098) (0560afc)
  • dashboard-routes: seed in one transaction instead of 2000 commits (TRA-1104) (#1070) (d4e5806)
  • db: cover DomainRepository (TRA-1111) (#1080) (2583fde)
  • hooks: raise hook subprocess timeouts 5s -> 30s (TRA-1117) (#1081) (4d0811e)
  • launcher: cover the daemon-aware proxy routing (TRA-1050) (#1044) (c2548c1)
  • proxy: guard the daemon-death rescue against the built bundle (TRA-1112) (#1082) (385596c)
  • proxy: wait for the child to exit before removing its sandbox (#1103) (66f835f)
  • stop subproject-clone ref test from doing a real git clone (#1083) (ea99422)

CI/CD

  • run cross-platform tests on any PR touching shipped code (TRA-1048) (#1043) (ab17d0b)

3.22.0 (2026-09-06)

Features

  • docs: the mark and the wordmark as two generated lockups (TRA-780) (#1029) (ec5e259)

Bug Fixes

  • app: give macOS back its dock margin, the icon shipped a fifth too big (TRA-780) (#1032) (23d7144)

Documentation

  • ops: record the awesome-AI-driven-development submission and the trial-plan issue sweep (#1030) (60f5e76)

3.21.0 (2026-09-06)

Features

  • daemon: thin proxy entrypoint cuts connected-session RSS ~175MB→~73MB (TRA-970) (#1003) (b77a272)
  • guard: nudge long sessions into the StateEngine loop (TRA-763) (#1010) (d0a6002)
  • tools: verify an existing document against the index (TRA-1023) (#1027) (7640318)

Bug Fixes

  • launcher: recover node and cli.js from the app bundle (TRA-996) (#1011) (e51d4d9)
  • postinstall: stop the daemon only when a new binary was installed (TRA-1015) (#1020) (7f53f32)

Documentation

  • code graph mcp cluster — landing-target decision, depgraph.ai facts, tracked query set (#1026) (81650e0)
  • ops: make the GitHub mention sweep a repeatable channel (TRA-998) (#1012) (ff75c50)
  • ops: record the awesome-hermes-agent submission and the mcp-servers-nix door (#1018) (3a61b8d)
  • ops: record what actually invalidates a prompt-cache prefix (TRA-858) (#1016) (10ede73)
  • ops: resubmit sitemap to GSC, rule out /vs/ subdirectory (TRA-1022) (#1024) (11f7684)
  • perf: generate the per-tool response-token table instead of typing it (TRA-1020) (#1023) (bde54ee)
  • seo: link tools-reference.html to MCP tracing, record the TRA-1025 re-derivation (#1025) (3eaed43)

Tests

  • bench: measure PR-review quality, not just tokens (TRA-568) (#1017) (bc67ad2)
  • launcher: a read-only state home must not cost the session (TRA-1016) (#1021) (8c9d0ee)
  • launcher: cover concurrent client starts on the probe+heal path (TRA-1029) (#1031) (a920cba)
  • tools: gate read-only tool output determinism (TRA-858) (#1015) (f3bee49)

CI/CD

  • cache pnpm activation via corepack instead of re-downloading per job (#1014) (6aae6cb)

3.20.0 (2026-09-06)

Features

  • doctor: validate the launcher path clients actually spawn (#988) (6146312)
  • telemetry: privacy page, first-run disclosure notice, config opt-out (#992) (6a4b593)

Bug Fixes

  • app: every Clients row names its own state (TRA-479) (#1000) (e62dd88)
  • config: cap unregistered project sections in .config.json (TRA-706) (#985) (c0ae24c)
  • indexer: resolve Astro/Svelte imports, no new pass needed (TRA-451) (#993) (034d3a9)
  • indexer: scale ExtractPool to zero within 60s of daemon idle (TRA-971) (#999) (993fa9b)
  • launcher: name control-plane tmp files so the orphan sweeper collects them (TRA-982) (#1004) (8adbee6)
  • quality: index the metadata-existence checks in antipatterns.ts (TRA-940) (#959) (cfc7dca)
  • registry: classify <tmp>/multica-task-<id> checkouts as ephemeral (TRA-992) (#1007) (68d0e0c)
  • search: exclude synthetic module-body pseudo-symbols on every retrieval path (TRA-985) (#1006) (e910bad)
  • search: reduce instead of spreading the FTS result set (#957) (#976) (9318251)
  • seo: let the sitemap generator advance lastmod as soon as git does (#1009) (db9c36d)
  • server: stop an orphaned server spinning forever on a dead log pipe (TRA-921) (#986) (67affca)
  • test: bump testTimeout in onnx.test.ts past cold-import contention (TRA-961) (#995) (546f930)

Performance

  • bench: add session-scaling benchmark harness and v3.18.0 baseline (TRA-931) (#956) (529f714)
  • bench: register a sampling frame before measuring response tokens (TRA-993) (#1008) (af2f16d)
  • daemon: serve first requests from the index snapshot before the daemon handshake (TRA-948) (#1001) (ffc67d5)
  • graph: stop the per-file symbol N+1 in the daemon's graph build (TRA-651) (#1002) (a83a0b5)
  • indexer: measure indexing throughput by stage before optimizing (TRA-936) (#968) (4f78203)

Documentation

  • app: make electron-cdp's header describe the flags it actually has (#994) (384a171)
  • lead with the claim, not the mechanism (TRA-918) (#983) (a0ce61d)
  • ops: record the 2026-09-06 index reading — one /vs/ URL crossed (TRA-973) (#989) (ca6d116)
  • ops: record the GetBindu submission and the generative auto-index finding (TRA-984) (#1005) (9297924)
  • registry: drop the tool count from the server.json storefront (TRA-761) (#987) (61b8b5b)
  • seo: retarget the comparisons hub at the Serena/Repomix query cluster (#984) (960d6a2)
  • seo: route mcp tracing impressions to /telemetry.html (TRA-974) (#990) (7d391a6)
  • site: give door 2 a page — what trace init installs (TRA-919) (#998) (fe47548)

Tests

  • logs: pin the rotation ceiling on every log under ~/.trace (TRA-707) (#996) (5167af3)
  • scale: run the real tools against a 150k-symbol index (TRA-977) (#997) (27f35ef)

3.19.0 (2026-09-05)

Features

  • app: ship the reworked icon and retire the bitmap generator (TRA-780) (#949) (6f6c413)

Bug Fixes

  • app: a KPI baseline needs an age, and its caption has to keep one (TRA-960) (#974) (7465060)
  • app: tell a busy daemon from a missing one (TRA-939) (#963) (d88864d)
  • app: the Chinese guard card stops calling itself two names (TRA-953) (#975) (c8976d7)
  • app: the Index card states one condition, not two (TRA-964) (#980) (89449e6)
  • daemon: share TopologyStore/DecisionStore/StateEngine across the whole daemon, not per project (#954) (a9429c7)
  • daemon: stop a running daemon from overriding the session's preset (TRA-951) (#967) (345043c)
  • indexer: index the metadata-existence checks in edge resolvers (#952) (1fe7a70)
  • indexer: stop rebuilding the TS/JS call-edge universe with an N+1 per symbol (TRA-923) (#961) (699ec36)
  • launcher: reprobe past an app runtime shim whose target is gone (#982) (3e749a0)
  • server: scope instructions to the session's advertised tool surface (#947) (b34b1ba)
  • tools: publish get_change_impact's optional params as actually optional (TRA-962) (#979) (d021ede)

Performance

  • app: measure and fix time to first useful paint, per screen (#955) (f977d75)
  • indexer: make a reindex that finds nothing cost nothing (TRA-935) (#964) (0066fcf)
  • indexer: stop probing every manifest name with its own syscall (#950) (f5fdb5e)
  • savings: close the response-token measurement tail and stop crediting mutations (TRA-945) (#965) (27f6808)
  • session: measure the per-session baseline instead of guessing at it (TRA-925) (#962) (f27a723)
  • tools: stop three tools answering more than they were asked (TRA-952) (#969) (93b3f7c)

Documentation

  • antipatterns: record TRA-944 decision — leave detectMemoryLeak's LIKE group unindexed (#960) (01b62d1)
  • comparisons: read the largest table entry at source for the first time (#945) (7f320dc)
  • comparisons: the session-memory entry does not index code — it delegates (#948) (44af510)
  • make the home page eligible for the code graph mcp cluster (#966) (8fcf9ff)
  • ops: inventory every persistent state change trace-mcp makes on a machine (#953) (2f49b39)
  • ops: keep the issue-search readout in the private ledger, not the public one (#958) (60e6637)
  • ops: record best-of-mcp-servers #384, the third-party plugin surface, and how both were found (TRA-909) (#938) (61ba971)
  • ops: two new list submissions and what the second seed of the competitor-README search returns (TRA-915) (#941) (03af5f5)
  • recapture the app screenshots so the dark frame stops photographing the harness (TRA-958) (#978) (ad03c8d)
  • refresh the app screenshots and correct a stale checklist claim (TRA-955) (#970) (e8f1ee3)

Tests

  • design-tokens: cover parseColor edge cases directly (#971) (964a943)
  • launcher: give the node-probe tests a budget that clears CI contention (#973) (ab14512)
  • manifests: anchor the PR-benchmark exemption to the claim, not its neighbourhood (TRA-883) (#914) (8ef271a)

3.18.0 (2026-09-05)

Features

  • analytics: apply and roll back startup-context recommendations (TRA-769) (#869) (e7760a6)
  • analytics: watch the startup block for growth and notify with one number (TRA-865) (#907) (c2f806c)
  • app: vector masters and a build script for the app icon (TRA-780) (#925) (c308387)
  • docs: the README download buttons fill the column on a phone (TRA-863) (#901) (7ea2915)
  • indexer: resolve Ruby require/require_relative import edges (TRA-900) (#934) (5d0ce9b)
  • state: register the SKILL.state protocol as an MCP prompt (TRA-799) (#859) (71ff604)
  • tools: per-call compute ceiling for heavy graph traversals (#894) (2a54f5b)

Bug Fixes

  • ai: stop retrying a dead embedding endpoint forever, and stop logging a total failure as "completed" (TRA-812) (#906) (9767f13)
  • analytics: gate active_users.month while the window is still filling, and give the savings tripwire a receiver (TRA-843) (#891) (cf5dbba)
  • ci: only a claimed issue collides in check-duplicate-pr (TRA-856) (#897) (7ef5278)
  • daemon: attribute SIGTERM shutdowns with process-side exit context (TRA-809) (#871) (2fdb122)
  • daemon: never index or watch a dangerous project root (TRA-893) (#923) (b6ed7ec)
  • daemon: record who asks for every daemon stop (TRA-850) (#893) (b43c1ca)
  • daemon: stop the file watcher before awaiting the initial index on shutdown (#881) (f420df4)
  • docs: dark-appearance app screenshots for the landing gallery (TRA-851) (#898) (e2ef85b)
  • guard: move server↔hook sentinels out of $TMPDIR (TRA-869) (#908) (d1612ac)
  • indexer: resolve C/C++ imports, the next language after Rust (TRA-832) (#895) (dd1d948)
  • launcher: pick the newest package backup, not the first one listed (TRA-881) (#916) (1cf6c2b)
  • launcher: stop a throwaway TRACE_MCP_HOME from breaking the real MCP launcher path (#937) (4120383)
  • mirror: exempt spill reads, make the rewrite byte-deterministic (TRA-860) (#903) (76b923b)
  • scripts: stop verify-upgrade-path.mjs from bouncing the real daemon (TRA-890) (#921) (7c8f0b7)
  • tools: report dropped fs events in get_index_health (TRA-813) (#875) (73e772d)
  • watcher: stop() must wait for a handler that already started (TRA-808) (#866) (8d852b5)

Performance

  • app: stop freezing the whole app for the length of a daemon restart (TRA-806) (#867) (13375dd)
  • app: time the synchronous half of every UI action, and record the 3.17.0 baseline (TRA-835) (#904) (a600fff)
  • daemon: release idle extract workers instead of holding ~420 MB forever (TRA-811) (#874) (2972aee)
  • savings: score token savings against the measured response, not a constant (TRA-880) (#915) (f41969d)

Documentation

  • comparisons: profile the largest unread peer, take its measurement discipline (#940) (e58c653)
  • comparisons: profile the last unread large peer at source, file the two mechanisms worth taking (#880) (8e9773b)
  • comparisons: record the discipline gap as closed, not open (#944) (507719a)
  • design-web: correct §1a — the wordmark is Space Mono Bold outlined, not redrawn (#873) (502ef6e)
  • guard the searchable name after the trace rename (TRA-879) (#911) (f964514)
  • guard the visible home page copy carries trace-mcp (TRA-907) (#929) (86dea72)
  • init: route agents to the SKILL.state tools (TRA-884) (#913) (32aaadc)
  • link the six /vs/ pages from the README; record the TRA-905 index-coverage decision (#931) (b6be106)
  • ops: index-coverage ledger — 11 of 24 pages unindexed, nothing crawled since 08-29 (TRA-791) (#854) (cb1abbe)
  • ops: move the confidential half of ops/ to a private repo (#917) (5ffd1ec)
  • ops: name the category — one claim, two doors, and the share we may claim (TRA-906) (#933) (7257442)
  • ops: record the ai-tooling evaluation and our one-time correction (TRA-857) (#900) (721ee96)
  • ops: redact the names #917 left in the public ledger (#922) (00c8d36)
  • ops: resolve the two remaining backend-slot doors, record an outside benchmark that went against the category (TRA-872) (#909) (28e8444)
  • ops: the same referrer finding, second occurrence in the same file (#924) (59e50ed)
  • ops: user-signal run 2026-09-05 — code search as a channel, first external evaluation (#882) (67a5152)
  • perf: preregister and version-stamp every published benchmark (TRA-920) (#943) (1cb706f)
  • restate every published savings number on the corrected basis (TRA-904) (#935) (8277782)
  • roadmap: revision 2026-09-05 — the savings counter was an identity, presets move 3.5% of the block (TRA-898) (#927) (eed47d9)
  • seo: retarget the telemetry page at the 'mcp tracing' query (TRA-897) (#926) (0bae384)
  • seo: stop conceding a benchmark we now have on three /vs/ pages (TRA-876) (#910) (1912101)
  • site: add Team section (#920) (f726ddf)

Tests

  • indexer: stop the crash-loop dedup case from depending on any timer (TRA-885) (#918) (f3ab9ac)
  • indexer: stop the crash-loop dedup case from running the idle timer (#912) (bc16f24)
  • measure the mechanical share of real agent edits (TRA-862 gate — fails) (#905) (f94bdba)
  • tools: enforce cross-tool routing hints with a family drift gate (TRA-842) (#888) (997526a)

Chores

  • security: deny-by-default token permissions in ga4-snapshot + scanner-config ledger (TRA-903) (#928) (d82b279)

CI/CD

  • release: attach provenance bundles and an SPDX SBOM to releases (TRA-902) (#932) (dc81079)

3.17.1 (2026-09-04)

Bug Fixes

  • daemon: stop reporting requested shutdowns as exit=1 (TRA-849) (#890) (52e7e67)
  • docs: a narrow banner cut so the README header stays readable on a phone (TRA-827) (#877) (f0c0858)
  • hooks: let Bash fall back when trace-mcp is unreachable (TRA-845) (#889) (52c1531)
  • launcher: refuse to heal launcher.env when the path is not a regular file (#883) (73227a1)
  • release: import the Developer ID certificate ourselves (TRA-844) (#887) (cc24562)
  • state: bound the global state.db instead of growing it forever (TRA-830) (#879) (5694c23)
  • watcher: reconcile the index when the OS drops fs events (#892) (846f17b)

Documentation

  • design-web: an un-paired app screenshot is a finding, not a milder pair bug (TRA-851) (#885) (6443a53)
  • ops: record claude-code-templates in the distribution ledger (TRA-846) (#886) (5417a07)
  • ops: tokenomics listing merged, third arrivals window, backend-slot door class (#884) (6c038f1)
  • regenerate the config index after db.path lost its default (TRA-810) (#870) (a007163)

3.17.0 (2026-09-04)

Features

  • analytics: startup-context audit — what every session pays for before the first message (#843) (b82c43d)
  • analytics: startup-text compressor — drop what the block already says (TRA-770) (#845) (8a820f6)
  • app: split app and daemon updates into independent checks (#790) (93cc4e5)
  • distribution: publish the site URL to the MCP registry and npm (TRA-792) (#855) (d0b3791)
  • mirror: default the Read/Bash window to 24/12, add an opt-in char cap (TRA-750) (#832) (83ce1bb)
  • site: red means danger, not brand — monochrome CTA and chrome (TRA-739) (#840) (78ecb0f)

Bug Fixes

  • app: a number stops breaking in half, and a Korean word stops splitting (TRA-803) (#865) (150a59f)
  • app: clamp the sheet to the window so the first-run actions stay reachable (TRA-794) (#856) (c018e52)
  • app: the German KPI label no longer truncates and the wizard uses the app's informal tone (TRA-591) (#838) (cc5916f)
  • docs: correct the stale tool/resource counts in the README diagram (TRA-608) (#830) (a3ef5b7)
  • docs: regenerate config-index after db.path lost its schema default (e8b5064)
  • docs: regenerate llms-full.txt alongside the config index (81f9a6d)
  • docs: regenerate stale sitemap lastmod (#858) (58d8f04)
  • docs: stop the sitemap guard failing on merge-date drift (TRA-800) (#862) (868dae8)
  • hooks: port the guard v2 navigation gate to Windows (TRA-757) (#836) (cbe59bf)
  • launcher: an unreadable launcher.env must not kill the server (TRA-797) (#861) (1b4bdcd)
  • launcher: refuse to start the server on an unsupported node (TRA-755) (#831) (9ca72dd)
  • launcher: resolve node from a prefix only pkg_roots knows (TRA-742) (#833) (7343980)
  • server: report the attached stdio session so the guard stops degrading (TRA-773) (#846) (8f62854)
  • server: the client-profile notice was an instruction, not a note (TRA-796) (#860) (1051fda)
  • state: sweep orphaned tmp files in state subdirectories (TRA-783) (#849) (0b6e428)
  • tools: report the real index path in get_index_health (TRA-802) (#864) (7a22fc2)
  • web: left-align comparison table cells kramdown centres (TRA-741) (#821) (6305636)

Documentation

  • benchmark_project is an estimator, not measured tool output (TRA-762) (#837) (6299383)
  • comparisons: give CodeGraphContext a real hub summary (TRA-768) (#847) (8905aa4)
  • comparisons: give each head-to-head peer real coverage on the hub (TRA-767) (#842) (3494fdb)
  • design-web: the wordmark is the logo — grid, step, minimum size, lockups (#848) (6287b6a)
  • generate a complete config index, and fix the preset-default claim (TRA-801) (#863) (57762d4)
  • ops: measured ledger of client start-block levers (TRA-771) (#844) (accd5b4)
  • ops: put the measured benchmark into the launch drafts (TRA-722) (#813) (a842a7a)
  • ops: user-signal run 2026-09-03 — the ping is the channel, and by_client is 90% pre-fix (TRA-745) (#824) (f7363aa)
  • seo: structured data, citable comparison hub, and number-drift guards (TRA-419) (#841) (586d016)
  • site: cobalt accent instead of red, README header as a generated banner (#839) (b69cc0f)

Chores

  • app-deps: bump fast-uri and @xmldom/xmldom to patched versions (#852) (1f4fca2)
  • security: scope ga4-snapshot permissions to the job, document alert triage (#818) (531dcad)

CI/CD

  • make the audit gate depend on advisories, not on npm's uptime (#853) (4c38b3d)
  • unblock the board — audit job timeouts, and the docs lastmod master is red on (#850) (a968ef8)

3.16.0 (2026-09-03)

Features

  • analytics: publish the client-reporting gate in adoption.yml (TRA-748) (#827) (70fa3ef)
  • docs: rebuild the first screen of the site and the README around one download (TRA-738) (#819) (d2a8df9)

Bug Fixes

  • app: the theme switcher applies without a restart (TRA-754) (#828) (ac22e43)
  • doctor: stop flagging trace-mcp's own tool names as competitor directives (a6b1017)
  • security: patch fast-uri/qs advisories and enforce the audit invariant in CI (TRA-733) (#817) (502168c)

Documentation

  • roadmap: calls is a GA4 custom dimension, not a metric (#826) (051b81b)

3.15.0 (2026-09-03)

Features

  • app: detect a second installed trace-mcp.app bundle (TRA-692) (#798) (04cfd79)
  • app: surface a second installed app copy in the app menu (TRA-692) (d4c3f25)
  • app: WindowTabBar becomes a real tab bar (TRA-700) (#807) (e996dc2)
  • guard: guard v2 — intervene only where the win is measured (TRA-711) (#810) (f80bedd)
  • hooks: Read/Bash output mirror prototype (TRA-725, E1') (#815) (40d5b32)
  • plugins: add Agent Plugins v1.0.0 root manifest and MCP config (TRA-634) (#791) (ea5c285)

Bug Fixes

  • analytics: keep session ingestion current and make staleness visible (TRA-695) (#802) (26ae439)
  • collect ~/.trace-mcp state that nothing ever swept (TRA-702) (#804) (fc4d12e)
  • daemon: name the dropped dangerous root instead of re-asking for a hint (TRA-720) (#814) (f1b0ec9)
  • daemon: report cleanup-tier failures on project removal (TRA-559) (#797) (17a3f12)
  • hooks: strip CRLF from mirror hook output on Windows (TRA-743) (#822) (cb03a86)
  • indexer: stop mangling hyphenated CMake targets and add_subdirectory edges (TRA-622) (#750) (d7667ba)
  • launcher: resolve cli.js independently of the selected node (TRA-701) (#806) (e9df75d)
  • launcher: stop the legacy bin path freezing at its install-time shim (TRA-716) (#809) (2a37a19)
  • migration: copy files byte-for-byte, not through a UTF-8 string (TRA-732) (#816) (a4897c8)
  • navigation: resolve cwd-relative paths to the indexed file (TRA-693) (#800) (833206a)
  • serve: keep daemon auto-spawn off the stdio handshake path (#805) (e6f3b67)
  • serve: move auto-update off the MCP initialize path (TRA-703) (#808) (ff2ebd7)
  • web: sweep the scroll hint, the one label nothing measured (TRA-564) (#794) (478cdfe)

Performance

  • app: code-split the four secondary project tabs out of startup (TRA-593) (#792) (39b3376)
  • hooks: detach the reindex dispatch so an edit never waits on the daemon (#801) (5d7b516)

Documentation

  • comparisons: refresh peer facts and record this pass's source reads (#777) (a7d08f1)
  • competitor-vs-competitor page — Repomix vs codegraph (#795) (34ffdf8)
  • migration: update docs, generators, and distribution ledger for the trace transition (TRA-615) (#717) (40d1623)
  • seo: link source files by GitHub URL instead of paths that 404 on the site (#793) (85fbfde)
  • state: say that trace_state_* is off the default surface (TRA-723) (#811) (6db8777)

Tests

  • presets: guard every preset's tools/list budget, not just the listed ones (TRA-719) (#812) (039b64b)

CI/CD

  • verify the Windows update path on a real install (#775) (460ef4d)

3.14.0 (2026-09-02)

Features

  • docs: publish the saved-token counter on the homepage and in the README (#774) (0f56830)
  • tools: ship the router preset and make batch-as-door deliberate (TRA-675) (#785) (2ce3d20)

Bug Fixes

  • search: honor glob wildcards in search's file_pattern filter (TRA-676) (#784) (4c9a77a)

Documentation

  • app: warn app builds <=3.10.0 they must reinstall (TRA-687) (#786) (54f97f0)
  • correct Multica agent mcp_config semantics (#789) (a5e903a)
  • lead with the benchmark measured on other people's code (TRA-647) (#752) (4ee6b22)

3.13.0 (2026-09-02)

Features

  • tools: explain empty results with a capped, data-derived note (TRA-680) (#779) (024c76b)

Bug Fixes

  • site: generate llms-full.txt, guard llms.txt against page drift (TRA-681) (#780) (21cfc5b)

Performance

  • app: let the Graph tab go quiet when nobody is watching (TRA-683) (#783) (0c79f0e)
  • app: reconcile both TRA-617 passes, measure the app offscreen, price the idle Graph tab (#781) (942a206)

Documentation

  • add TechArticle schema to three pages and guard it in CI (#776) (64214fb)
  • ops: add third-party roundup surface class to distribution ledger (#782) (59d3159)

3.12.0 (2026-09-02)

Features

  • app: first-run setup wizard with MCP client detection and project guessing (TRA-439) (#710) (bb75a32)
  • app: flag legacy trace-mcp client entries and offer a one-click Migrate (TRA-614) (#724) (3564a74)
  • core,cli: trace bin alias, McpServer identity, config paths, and client auto-migration (TRA-611) (#730) (88eb73c)
  • eval: measure SKILL.state savings on real sessions, not constants (TRA-600) (#765) (310bbe2)
  • state: implement SKILL.state linear context engine (TRA-596) (#715) (cdb5e5e)
  • telemetry: put a funnel behind active installs (TRA-645) (#745) (8196084)
  • telemetry: read the ping's calls to measure use, not just setup (TRA-673) (#773) (4e51fe6)
  • telemetry: report daemon starts and unclean stops in the daily ping (TRA-671) (#770) (9b5a186)
  • telemetry: report the active preset and advertised tool count, and fix the client-name clobber (#748) (be1fb53)
  • web: cut the hero to one download and one command (TRA-609) (#718) (d175595)

Bug Fixes

  • analytics,hooks,plugins: recognize trace as a trace-mcp server key (TRA-641) (#755) (8a566c5)
  • app: a badge tint is opaque, so its measured contrast is the one it renders (#731) (30dfca8)
  • app: a file row shows its location whole or not at all (TRA-504) (#725) (063c03b)
  • app: enable custom WindowTabBar across all platforms including macOS (#716) (fd80d97)
  • app: Project Overview states a section failure once, without inventing a cause (TRA-662) (#762) (e55bd35)
  • app: spawn the CLI through a real executable on Windows (TRA-638) (#738) (dae0869)
  • app: the guard card says "not running" once, and says what to do about it (TRA-490) (#759) (e66fa3c)
  • ci: exempt the release PR from the duplicate-work guard (#736) (aca4e98)
  • db: don't crash reindex on cross-file ORM associations (TRA-663) (#763) (dc0b2e8)
  • docs: date sitemap pages by author date, not committer date (TRA-637) (#729) (b2636ca)
  • indexer: stop mangling multi-target .PHONY lines into one symbol (TRA-618) (#721) (3b3c6a0)
  • indexer: stop truncating CMake include/find_package/add_subdirectory paths (TRA-670) (#772) (4227a09)
  • indexer: support framework and manifest detection in monorepos (#705) (#711) (9eaf1dd)
  • init: migrate legacy mcp__trace-mcp__ tool prefix in settings.json (TRA-650) (#756) (699581d)
  • release: sign, notarize and staple the macOS DMG container (#728) (e25a41d)
  • scripts: resolve the CLI state dir instead of hardcoding ~/.trace-mcp (TRA-667) (#767) (e56f457)
  • server: fall back to the default preset, not the full surface, on an unknown preset name (TRA-648) (#753) (185e5f4)
  • tests: use file:// URLs for the trace-home subprocess harness (TRA-672) (#769) (e0c2d99)
  • update: align Windows NSIS naming, fail-closed channel manifest audit, per-bundle running detection (TRA-592) (#742) (0428744)
  • web: drive the homepage footer from docs_nav, and guard it (TRA-629) (#733) (53a5045)
  • web: make the landing footer's doc list read down, and pull /Contact up (#739) (648633c)
  • web: raise --text-disabled and dark --accent to clear 4.5:1 (TRA-539) (#719) (5857eba)
  • web: stack the hero's two mono caps rows on a phone (TRA-607) (#771) (2ef0977)

Performance

  • app: stop staging 132 MB the embedded daemon cannot reach (TRA-605) (#743) (d434224)
  • bench: measure trace-mcp → trace token savings across 4 tokenizers (TRA-613) (#720) (b41dc35)
  • tools: land role-based tool presets with re-measured budgets (TRA-603, TRA-601) (#732) (3d415e0)

Documentation

  • config: document Multica workspace agent MCP preset wiring (TRA-604) (#747) (f3f2399)
  • configuration: warn that --preset needs a release that has it (TRA-664) (#764) (374248e)
  • contributing: record why master's protection is not strict (#751) (ab73e39)
  • decide the trace rename — command, not project (TRA-644) (#741) (2d8e305)
  • link the docs pages into four topical clusters (#757) (6f92234)
  • ops: two new agent-reachable directory doors, four closed with reasons (TRA-623) (#722) (7d6be87)
  • point the state-directory and CLI references at what the code actually does (TRA-666) (#766) (2d05cb7)
  • read the PR-benchmark counts from the data file, not by hand (#760) (b24b15b)
  • refresh app screenshots at v3.11.0 (TRA-630) (#746) (f0728a0)
  • roadmap: activation measures setup, not use — read calls by client (TRA-668) (#768) (bc97bb0)
  • roadmap: add the evidence item — the one outside measurement is on no entry surface (TRA-616) (#749) (18f71e4)
  • roadmap: record the State Engine positioning question (TRA-616) (#754) (c322823)
  • roadmap: revise for v3.11.0 — presets supersede tool consolidation, adoption is live (TRA-625) (#740) (f47ad89)

Tests

  • app: give the AskTab lazy-import test a timeout that fits what it loads (#734) (64b14a1)
  • app: wait for the guessed-project card before clicking Change folder (TRA-640) (#761) (9e18e75)

CI/CD

  • fail when waiting_for_release is set against an unmerged PR (TRA-659) (#758) (036c558)
  • release: gate the Apple signing secrets behind a branch-protected environment (#737) (dfd7bbd)

3.11.0 (2026-09-01)

Features

  • topology,memory: add stale root pruning to topology.db and decisions.db (TRA-595) (#714) (edb2fc8)

Bug Fixes

  • app: clamp KpiTile label and comparison spans to preserve TILE_H (TRA-492) (#713) (b4549ac)
  • app: remove broken native macOS tab bar under hiddenInset (TRA-587) (#708) (891b1d8)
  • app: resolve autoUpdater dynamic export and wrap long menu header status text (#707) (c0b3083)
  • init: update tool routing table and stale hint references (TRA-579) (#712) (b6b02ae)

3.10.0 (2026-08-31)

Features

  • app: the app installs and repairs its own daemon (TRA-438) (#692) (b8dd908)
  • bench: measure PR-review context cost on 60 real merged PRs (TRA-534) (#699) (aeb5080)
  • docs: lead with the signed DMG on the site and in the README (#697) (219dc3b)

Bug Fixes

  • ci: stop compiling better-sqlite3 — use its bundled prebuilds (TRA-567) (#700) (d9f2a1e)
  • config: rewrite the pre-v3.3 tools.preset: "full" default on upgrade (TRA-538) (#693) (e8cc9dc)
  • indexer: resolve Rust imports, the next language after Java (TRA-565) (#698) (98ef908)
  • release: demote an unverified release out of latest (TRA-566) (#701) (cf3afd1)
  • site: light-mode disabled text was measured against the wrong background (#695) (90aaaa1)

Tests

  • update: verify the upgrade path against real releases (TRA-562) (#694) (a7de2d2)

3.9.0 (2026-08-30)

Features

  • app: move macOS to electron-updater and delete the staged-zip updater (TRA-437) (#689) (b525048)

Documentation

  • ops: rebalance the GitHub repo topics; note the Reddit referrer (TRA-393) (#691) (d747bf9)

Tests

  • app: cover the restart-budget guard where checkHealth calls it (TRA-558) (#688) (eb94851)

3.8.0 (2026-08-30)

Features

  • analytics: price the saved-token counter server-side, capped for inflation (#682) (fe5027c)
  • app: sign and notarize macOS builds, ship DMG per architecture (#584) (61c07d3)

Bug Fixes

  • app: a "starting" daemon must not refill the restart budget (TRA-543) (#683) (b2aaecf)
  • daemon: a losing spawn can no longer report the live daemon as dead (TRA-525) (#663) (248374e)
  • update: re-check whether the app is running per bundle (TRA-555) (#687) (03ebf63)
  • update: update every installed bundle, not just the resolved one (TRA-535) (#672) (26d3eed)

Documentation

  • ops: draft the Reddit material (TRA-393) (#656) (cc6a40e)
  • vs: read Serena's source, correct four rows in its favour (TRA-547) (#684) (391b90a)

3.7.0 (2026-08-30)

Features

  • ops: daily GA4 adoption snapshot into docs/_data/adoption.yml (#673) (ecbf963)
  • telemetry: add client and timezone dimensions to the daily ping (#659) (db7e288)
  • telemetry: country, model and indexed-repo count; drop raw timezone (#667) (984b264)
  • telemetry: install type, previous version and machine class (#671) (549765e)

Bug Fixes

  • app: a project tab must not hold a daemon socket while it is off screen (#670) (8d5d88f)
  • app: delete the 20px segmented control, not its latest victim (TRA-522) (#658) (242d5d6)
  • app: one focus ring per control, on the control's own boundary (TRA-521) (#662) (acb4dd1)
  • app: stop the daemon restart loop the wedged guard was meant to stop (TRA-543) (#681) (13e6aa7)
  • app: the graph filter popover stays inside the graph pane (#661) (e6a398d)
  • app: the tab bar is 20px, not 36 — lights back on the tab centre line (TRA-523) (#664) (00e4c0f)
  • ci: publish the adoption snapshot to a data branch, not a PR (#678) (d6a937f)
  • ci: route the adoption snapshot through a PR, not a push to master (#674) (7dd1b63)
  • daemon: decision rows survived project removal in every build (TRA-542) (#680) (a0c251d)
  • docs: the sitemap generator stops revising published dates backwards (#652) (2d2b577)
  • registry: stop agent workdirs leaking into the registry and topology store (TRA-527) (#660) (15bce03)
  • restore what #659 reverted, gate the shape that let it through (TRA-528) (#665) (ccc3b45)
  • svelte: extract $props() destructuring as component props (#668) (67ac07c)
  • web: label, focus and keyboard-reach the landing quickstart terminal (#676) (0ee5cb2)

Performance

  • app: load the Ask tab's markdown stack with the tab (TRA-532) (#669) (e503c66)

Documentation

  • ops: add user-signal ledger; exclude git clones from the adoption metric (#679) (f777bd6)

CI/CD

  • codeql: exclude the filesystem-taint rule family (TRA-518) (#653) (2cb8656)
  • lockfile, Dependabot and CI coverage for packages/vscode-extension (#654) (c892ada)

3.6.0 (2026-08-30)

Features

  • clients: report each client's current enforcement level (TRA-498) (#637) (b99f2eb)
  • server: tailor the advertised surface to the connected MCP client (TRA-513) (#648) (a43f5d4)

Bug Fixes

  • app: MCP clients — the row actions never ran, and six drifted rows took six clicks (TRA-497) (#638) (ce47652)
  • app: Project Overview reads all three daemon states, not one (TRA-489) (#632) (fc20f58)
  • app: shorten the Russian KPI delta caption to one line (TRA-464) (#630) (4bb6bbd)
  • app: the KPI strip stops arguing with the banner above it (TRA-488) (#627) (1ab017e)
  • app: the sidebar file row leads with the filename, not the path (TRA-503) (#640) (ed369ec)
  • clients: a global MCP registration no longer carries the caller's cwd (TRA-501) (#639) (a107d87)
  • indexer: resolve Java imports, the next language after Go (TRA-483) (#623) (934b2ee)
  • search: scope the subproject fan-out to the requested project (TRA-470) (#626) (724697f)
  • site: a code block that scrolls says so, and every scroll region has a ring (TRA-508) (#645) (cfd77ad)
  • tools: get_untested_symbols reports the actionable tier by default (TRA-515) (#650) (8f849f7)
  • update: target the running bundle, reclaim orphaned staging (#644) (33d716e)
  • workspace: a dead daemon gets one verdict from the KPI strip, not two (TRA-495) (#633) (267c2f4)

Documentation

  • add the scip_resolved tier to the stale resolution-tier tables (#628) (4b44a31)
  • comparisons: profile the largest LSP-native peer, correct its debugger claim (TRA-511) (#646) (dc13beb)
  • design: a review run must isolate the daemon, not just the screen (TRA-502) (#641) (3a1c30c)
  • fifth head-to-head page — trace-mcp vs Context Mode (#629) (1932c80)
  • ops: draft the Show HN material (TRA-393) (#625) (56da9b0)
  • ops: keep a ledger of what has actually been audited (TRA-505) (#643) (6324c10)
  • pin /perf/ with a permalink, undoing a soft 404 from #635 (#636) (af61b3a)
  • publish the tool index — 101 registered tools had no entry anywhere (TRA-505) (#642) (c1b9b7f)
  • publish two orphan pages, noindex three internal ones (#635) (fb4e037)

Tests

  • init: cover the Hermes guard-hook installer (TRA-514) (#649) (63e92af)
  • skip POSIX exec-bit assertion on Windows in hermes-hooks (#651) (f5f2e3c)

3.5.2 (2026-08-30)

Bug Fixes

  • app: the dashboard at rest marks nothing selected (TRA-475) (#617) (9618479)
  • app: the sidebar file list can no longer pulse a skeleton forever (TRA-478) (#622) (40cb6e6)

Documentation

  • a settled screenshot is not the only frame worth checking (TRA-465) (#620) (f25bd54)

CI/CD

  • fail a PR that duplicates an open PR on the same issue (TRA-476) (#618) (87bf5fc)

3.5.1 (2026-08-30)

Bug Fixes

  • app: a baseline taken while the daemon was silent is not a baseline (#602) (8319504)
  • app: centre the daemon-down pane on Project Overview (TRA-469) (#614) (14313a4)
  • app: point the quarantine command at the real install path (#604) (c416638)
  • app: Project Overview says a dead daemon once, not six times (TRA-469) (#611) (c5340ca)
  • app: the KPI strip is a grid of equal tracks, not a wrapping flexbox (TRA-467) (#608) (f992cb5)
  • app: the projects table shades what its pinned column covers (#596) (421c157)
  • app: the sidebar file list stops blaming the scope for a dead daemon (TRA-471) (#615) (84ae30c)
  • indexer: reconcile scope on full reindex, keep git-ignored files out (#610) (13d26bd)
  • site: a scrollable table says so (TRA-461) (#606) (fb9c5ee)
  • workspace: measure the pane before the first paint, not after it (#612) (5fdc586)
  • workspace: two overlapping KPI sets stop wearing the grammar of a partition (TRA-459) (#605) (6079be2)

Documentation

  • ops: Cline is not an agent-alone submission after all (TRA-393) (#599) (ad54c57)
  • price the default tool surface on one basis everywhere (TRA-448) (#597) (4cbd69f)
  • re-measure the standard tool surface on comparisons.md (TRA-455) (#601) (94f69ef)
  • workspace: two comments in Workspace.tsx that TRA-467 left behind (#616) (ece028f)

Chores

  • deps: unblock i18next 26 + react-i18next 17, restore the commander hold (#607) (af2985f)

3.5.0 (2026-08-29)

Features

  • app: a pop-up language picker with ten languages (#594) (080f369)
  • app: ship Spanish and Simplified Chinese (TRA-389) (#592) (3f76ab2)

Bug Fixes

  • indexer: resolve Go imports, stop the matrix overclaiming import edges (TRA-449) (#593) (b32b5e0)
  • site: capability marks are monochrome text, not emoji (TRA-447) (#591) (3ee72f1)
  • telemetry: make GA4 count installs as active users, report tokens saved (#585) (b0f7bab)
  • update: trust the bundle's Info.plist over the version marker (#589) (e2d4cdb)

Documentation

  • bring the i18n docs back in line with what ships (TRA-379) (#595) (6a5e412)
  • ops: verify the last four directories in the distribution ledger (TRA-393) (#588) (0292de8)

Tests

  • docs: guard the default-surface claims on the vs/ comparison pages (TRA-427) (#586) (05dc3dd)

3.4.0 (2026-08-29)

Features

  • app: a Language row in the app menu and in Settings (TRA-388) (#579) (d11b655)

Bug Fixes

  • app: never swap a running bundle, never call an already-installed update stuck (#581) (8349f7e)
  • app: put the sidebar update card on the Lattice layer (#582) (ad9eaa7)
  • app: the AppKit tab bar is 28px, not 36 — lights sat 4px low (#583) (65105c5)

Documentation

  • add the trace-mcp vs codegraph head-to-head page (TRA-427) (#578) (7343bf0)
  • dead evidence anchor in skills/README + verified distribution-ledger rows (TRA-393) (#575) (450a719)
  • disambiguate tune_decision_weights vs tune_weights, record consolidation-retirement policy (TRA-205) (#577) (a2f4342)
  • the menu's control column is an inset, not an x coordinate (TRA-388) (#580) (8fca8fe)

3.3.0 (2026-08-29)

Features

  • app: i18n runtime, en/ru catalogues and a check against inline strings (TRA-379) (#535) (e0ec6cc)
  • app: read Settings, the config schema and the Guard panels from the catalogue (TRA-383) (#541) (8b9072d)
  • app: read the exploration tabs from the string catalogue (TRA-385) (#545) (84ec15b)
  • app: read the overview and activity tabs from the catalogue (TRA-384) (#543) (79f2953)
  • app: read the workspace, sidebar, app shell and UI primitives from the catalogue (TRA-387) (#568) (7d92325)
  • app: translate the application menu, the tray and the main-process dialog (TRA-386) (#539) (1c7e737)
  • server: progressive tool disclosure — minimal default + load_tools (TRA-402) (#553) (4cccd8a), closes #519

Bug Fixes

  • app: bound the sidebar material against --surface in both appearances (TRA-369) (#529) (c9b2ede)
  • app: drive the app without taking the screen (TRA-403) (#554) (66ed81b)
  • app: every unpackaged build runs as an accessory app (TRA-407) (#559) (c1588c1)
  • app: give Insights' report picker a narrow form so every report stays reachable (#534) (051716f)
  • app: group the app menu by what an item does, and take the theme pill's proportions from the reference (TRA-376) (#538) (2331b60)
  • app: guard setActivationPolicy on darwin, give dev:electron the opt-out (#567) (5acf89e)
  • app: honour TRACE_MCP_AGENT_RUN as well (TRA-403) (#557) (3418e32)
  • app: one state for a slow daemon, and numbers that go stale instead of blank (#550) (b16c320)
  • app: report a stale npm root only when MCP clients run it (#537) (0d6f924)
  • app: the native tab bar is a second top band, not a replacement (TRA-399) (#552) (29da930)
  • config: index every registered language by default (TRA-400) (#549) (1d5be08)
  • daemon: enforce the loaded-project cap in steady state, not just at boot (#572) (345ef7e)
  • daemon: stop the health watchdog from killing a busy daemon (TRA-421) (#573) (551d656)
  • docs: install surfaces advertised the 99% peak as the token average (TRA-393) (#542) (9adf592)
  • docs: name the seven tools retired in v2.0.0, and hint them at call time (TRA-412) (#566) (50531b5)
  • docs: photograph the window, and refuse a frame without its chrome (TRA-390) (#544) (7882ea1)
  • indexer: register the VHDL language plugin, publish a capability matrix (#547) (255f425)
  • logger: serialize Errors logged under the error key (#571) (08df073)
  • registry: stop persisting one-shot agent-run checkouts (#548) (84f81a4)
  • site: give the landing page the accessibility layer the docs already have (TRA-408) (#561) (a1cc98b)
  • site: show one appearance of the app screenshot, not both (TRA-390) (#546) (6ebbbd5)
  • update: stop re-downloading the version already installed (#556) (dd40f40)

Performance

  • app: stop shipping react-i18next in app.asar, measure startup on the renderer's own clock (TRA-398) (#551) (19efc6a)

Documentation

  • add ops/distribution.md, the external listings ledger (#570) (d48318b)
  • correct stale tool-surface claims and unhardcode homepage counts (#569) (ecb114d)
  • correct the sidebar material's backdrop, with the shot matrix (TRA-404) (#555) (75e7081)
  • measure the sidebar material without hijacking the desktop (TRA-404) (#558) (48f1c16)
  • reclassify GA4 telemetry credentials as public by design (#532) (9cdccf9)
  • rewrite the landing page and README framing in a plain voice (TRA-418) (#574) (9af6469)
  • site: put the documentation pages in the Nothing design system (#540) (b4b87c7)
  • stop citing npm downloads — the count is mirror-inflated (TRA-413) (#564) (fd29351)
  • two more surfaces sold a peak token number as the average (TRA-393) (#562) (1bc3876)

CI/CD

  • codeql: exclude js/path-injection, encoding the TRA-301 decision (TRA-381) (#533) (85f0dbb)
  • drop nosemgrep-suppressed findings from the Semgrep SARIF (TRA-411) (#563) (3fd91ab)
  • fail on invisible Unicode in prose and AI provenance marks (#565) (8416082)
  • run cross-platform tests on refactoring path changes (#530) (aa24222)

3.2.0 (2026-08-29)

Features

  • app: bring the Graph Explorer overlay layer onto the design system (TRA-349) (#505) (6c635bd)
  • app: collapse the sidebar footer into one row that opens an app menu (TRA-363) (#516) (2a94e45)
  • app: one top band — the surface's toolbar shares the line with the sidebar toggle (TRA-354) (#518) (e194fdb)
  • app: Theme is one menu row with an inline switcher (TRA-363) (#522) (cdf6193)
  • app: update Windows through electron-updater instead of the macOS zip path (TRA-360) (#513) (b8352f5)
  • parser: migrate to the web-tree-sitter 0.26 API (TRA-330) (#498) (4e9b45c)

Bug Fixes

  • api: return SQLite indexed_at as ISO-8601 UTC (#520) (1f7ec66)
  • app: a glyph names the action — drop sparkles and speech bubbles (TRA-363) (#525) (b4331cf)
  • app: correct TRA-355's contrast claim and repoint its guard at a live element (#508) (61da73e)
  • app: follow the app's Appearance in the native layer, and floor the sidebar material in light (TRA-369) (#524) (37e7eba)
  • app: put the traffic lights on the top band's centre line (TRA-370) (#521) (8ead88c)
  • app: report global npm roots the update never touched (TRA-364) (#515) (0ae6e61)
  • app: say the daemon is unreachable instead of "Failed to fetch" (TRA-356) (#507) (564ad48)
  • app: stop a locally built .app from hijacking updates, and never call a stuck bundle "up to date" (TRA-357) (#510) (d4f6e27)
  • app: stop the shared toolbar clipping its controls off-window (#509) (e299f34)
  • daemon: build each MCP session from a freshly loaded config (TRA-373) (#526) (3498657)
  • refactoring: apply_move now rewrites ESM .js import specifiers (TRA-374) (#527) (756d840)
  • refactoring: normalize path separators before collapsing barrel imports (#528) (bef1e22)
  • tools: make compact_schemas cover all 141 tools and stop hiding required params (TRA-346) (#500) (70787a7)

Documentation

  • fix the framework/language counts on the install surfaces (TRA-361) (#512) (639dc9d)
  • re-measure the advertised tool surface and correct the comparison (TRA-372) (#523) (d41ed16)
  • readme: deep-link in-body doc references to trace-mcp.com pages (#502) (221e941)
  • regenerate every screenshot from one seeded state (TRA-366) (#517) (2783acf)
  • seo: per-competitor /vs/ pages, visible dates, token-usage guide (TRA-351) (#504) (4c2fb1b)

Tests

  • update: prove the .app bundle actually moves on npm install (TRA-359) (#511) (ec4a1d5)

CI/CD

  • publish server.json to the official MCP Registry on release (#503) (88c1beb)
  • release: do not publish to npm before the app artifacts exist (TRA-362) (#514) (b4066b3)

3.1.1 (2026-08-29)

Bug Fixes

  • app: abort the model-list fetch on unmount (#493) (2164908)
  • app: make quick open readable — paths and ⌘-hints were 1.88:1 (TRA-344) (#496) (0483234)
  • guard: arm the coach grace period at registration, expire it in the hook (TRA-341) (#492) (23bbf49)
  • scan_security: kill the false positives whose guard sits above the sink (#497) (1e67b71)
  • tools: actually strip param descriptions at minimal/none verbosity (TRA-345) (#499) (aba9e20)

Documentation

  • move language and framework counts into counts.yml (TRA-275) (#495) (37d1b47)

3.1.0 (2026-08-29)

Features

  • app: give the guard a UI on Project Overview (TRA-334) (#490) (fdb4498)

Bug Fixes

  • security: drop shells and symlink-following from local spawn/temp paths (TRA-337) (#489) (eeb01d3)

3.0.0 (2026-08-29)

⚠ BREAKING CHANGES

  • Node 20 and 21 are no longer supported; Node >=22 is required.

Features

  • raise the Node floor to 22 and re-ground the dependabot ignores (#482) (742565f)

Bug Fixes

  • app: close the last hit-target gaps found in the TRA-284 final walk (#488) (5788340)
  • daemon: auto-deregister stale one-shot agent-run workdirs (TRA-335) (#487) (205905c)
  • verify: read embedding_meta as the KV table it actually is (#485) (dae8004)

Refactoring

  • app: retire the legacy palette — one token layer, no ghosts (TRA-315) (#484) (9e52c1a)

2.3.0 (2026-08-29)

Features

  • app: migrate Notebook to the macOS 26 layer (TRA-310) (#473) (04a5b28)

Bug Fixes

  • app: keep the Ask toolbar in the no-provider setup state (TRA-312) (#475) (e1f9a5e)
  • app: make the workspace survive the 640x420 minimum window (#480) (5e64c51)
  • registry: scope index-DB sharing to sequential use (TRA-304) (#477) (663cdc6)
  • registry: stop the mtime cache serving a stale registry (TRA-326) (#479) (c6cce05)

Documentation

  • design: title design PRs with a real Conventional Commits type (#474) (3237a8f)
  • require the repo git identity for agent commits so license/cla resolves (#478) (a2fc45c)

Chores

  • ci: record why each dependabot ignore exists (TRA-328) (#481) (cc9600a)

2.2.0 (2026-08-29)

Features

  • app: application menu, keyboard shortcuts and the text-selection fix (TRA-297) (#471) (c2320d3)
  • app: put the sidebar footer on the row system, add Light/Dark/Auto (TRA-305) (#464) (266f53f)
  • app: rebuild Ask on the macOS 26 layer (TRA-312) (#472) (7ab309d)
  • app: rebuild Graph Explorer chrome and Insights on the macOS 26 layer (TRA-296) (#468) (7df5742)
  • app: rebuild MCP clients, Settings and the onboarding sheet (TRA-295) (#469) (407d4e1)
  • app: rebuild Project Overview on the macOS 26 layer (TRA-293) (#463) (b995779)
  • app: rebuild the workspace dashboard and project table on the macOS 26 layer (TRA-292) (#461) (9b4bc0b)

Bug Fixes

  • app: density pass — sidebar footer height, doubled pane inset, off-grid control padding (TRA-306) (#467) (b1b5fbc)
  • app: distinguish a project the daemon forgot from one never indexed (#465) (ab59ed6)

Documentation

  • write DESIGN.md, the design system this revision converged on (TRA-307) (#466) (3ccfacf)

2.1.0 (2026-08-28)

Features

  • app: native vibrancy sidebar + hiddenInset window chrome (TRA-291) (#453) (f914b2e)
  • app: rewrite the Lattice control primitives on a 20/24/28 capsule scale (TRA-290) (#456) (1b51c52)
  • app: single macOS 26 token layer, type scale and 4pt geometry (#458) (7cb93e3)

Bug Fixes

  • ci: give the three full-index jobs real timeout headroom (TRA-298) (#460) (f007258)
  • daemon: require --allow-remote for a non-loopback bind (TRA-301) (#459) (42f4f6b)
  • registry: stable git-remote identity so repeat checkouts reuse one index (TRA-38) (#450) (6148369)
  • security: replace existsSync-then-read/write TOCTOU with safe helpers (TRA-256) (#452) (0ef5fc2)

2.0.3 (2026-08-28)

Bug Fixes

  • ci: restore RELEASE_PLEASE_TOKEN, dropped by the #438 squash-merge (TRA-171) (#448) (40b8e15)
  • daemon: ignore dangerous project hints instead of failing MCP startup (TRA-286) (#449) (da0bd12)

Performance

  • app: add a fixed workload fixture for the three unmeasured desktop metrics (TRA-258) (#446) (fd378da)
  • daemon: cap eager project loading at startup (TRA-278) (#445) (8989741)

Chores

  • telemetry: make active installs the adoption metric of record (#438) (618df41)

2.0.2 (2026-08-28)

Bug Fixes

  • ci: use RELEASE_PLEASE_TOKEN so release PR checks fire automatically (TRA-171) (64dc725)
  • docs: refresh stale sitemap lastmod and run the guard in CI (TRA-282) (#444) (8c42271)
  • update: recover an app bundle swap interrupted by a reboot (TRA-280) (#442) (16c3a7f)

2.0.1 (2026-08-28)

Bug Fixes

  • app: freeze Project and Actions columns in the workspace table (TRA-265) (#429) (3cde321)
  • daemon: bound post-update forced reindex attempts (TRA-274) (#439) (a9669a4)
  • docs: our own surfaces said 85 framework integrations, the registry has 87 (TRA-272) (#440) (30d4de7)
  • docs: reconcile the README language count and guard every occurrence (TRA-272) (#437) (cbd2aa5)

Tests

  • docs: count MCP tools recursively, not with a top-level glob (TRA-268) (#433) (38751d0)

CI/CD

  • authenticate release-please with RELEASE_PLEASE_TOKEN (TRA-171) (#436) (7b0fd3b)

2.0.0 (2026-08-28)

⚠ BREAKING CHANGES

  • seven MCP tools are removed. Each was a deprecated alias for a superset tool that already covered it:
Retired tool (1.x)Replacement (2.0)
pin_symbol { symbol_id }pin { symbol_id }
pin_file { file_path }pin { file_path }
search_with_mode { query, mode }search { query, retriever: mode }
get_dead_exports { file_pattern }get_dead_code { file_pattern, mode: "exports_only" }
get_untested_exports { file_pattern }get_untested_symbols { file_pattern, scope: "exports_only" }
get_session_resume { max_sessions }get_wake_up { scope: "resume", max_sessions }
get_project_memo { include_history, limit }get_wake_up { scope: "project", include_history, history_limit }

Every call is expressible in the replacement without loss of behaviour or response shape. Full notes: Migrating from 1.x.

Two rarely-used search parameters were also removed: fusion_weights (per-channel weights now come from ~/.trace-mcp/tuning.jsonc, written by tune_weights) and fusion_debug.

Features

  • retire the 7 deprecated consolidation aliases, cut the search schema (TRA-240) (#415) (9459d4c)

Bug Fixes

  • app: don't render a failed metrics fetch as real zeros (TRA-264) (#428) (7216174)
  • app: make Compact denser, sort it like Table, keep the leading / in paths (#430) (b577b9a)
  • app: make the guard onboarding dialog dismissable and quiet on first launch (#423) (9fb47f9)
  • daemon: honour the tool preset on the daemon-backed path (TRA-250) (#422) (bf7e3d7)
  • daemon: record why a silent exit happened (TRA-267) (#432) (0c7b944)
  • docs: emit og:image on every docs page (#418) (c000b28)
  • docs: link every doc page from the shared footer nav (#419) (717e463)
  • docs: refresh sitemap lastmod from git, link docs from README and homepage body (#426) (20df40b)

Performance

  • app: stop shipping node_modules in the artifact, add a perf baseline harness (TRA-257) (#425) (fc47c10)

Documentation

  • comparisons: deep-dive pass on the two largest peers + measured tool-surface cost (#416) (4355601)
  • fix stale language/framework/tool counts in CLAUDE.md and skills (TRA-243) (#420) (4de6258)
  • fix the MCP registry manifest and preset sizes, guard both (TRA-259) (#427) (3467d3f)
  • single source of truth for the MCP tool count (TRA-263) (#431) (a9939d3)

Tests

  • cli: cover openInBrowser's platform branches and error-swallow (TRA-247) (#417) (fcdf086)

CI/CD

  • security: scope CodeQL/Semgrep to shipped code and make Semgrep a real gate (#424) (df8e241)

1.51.1 (2026-08-28)

Bug Fixes

  • guard: add Windows system directories to the dangerous-root guard (TRA-236) (#411) (33b5f1c)
  • hooks: cut clock spawns in reindex hook, make stats-write flake diagnosable (#412) (74ce12b)

Performance

  • tools: stop paying full prose for deprecated consolidation aliases, guard schema size (TRA-239) (#414) (1dcb962)

1.51.0 (2026-08-28)

Features

  • plugins: add click and marshmallow Python framework plugins (#409) (6cca4a8)

Bug Fixes

  • app: don't render KPI zeros before metrics load; use color tokens (#400) (c1e51d9)
  • app: normalize daemon project_status progress payload (#401) (deddbba)
  • indexer: converge coverage after major on-disk change (TRA-231) (#406) (f3bf334)
  • mcp: strip redundant $schema keyword from tools/list responses (#398) (4f5482a)
  • topology: route subproject registration through the dangerous-root guard (TRA-232) (#405) (03096b3)

Documentation

  • tools: cross-link overlapping impact and risk tools (#408) (ef54002)

Tests

  • tools: extend schema-budget guard to conditionally-registered tools (#407) (b1a725f)
  • topology: gate POSIX-only dangerous-root fixtures off Windows (#410) (2b9ba1f)

Chores

  • deps: document commander v15 ignore in dependabot.yml (#402) (b3dca9c)

1.50.0 (2026-08-27)

Features

  • get_wake_up: add scope param to unify with get_session_resume / get_project_memo (TRA-206) (#395) (35d72df)

Bug Fixes

  • install-app: verify SHA-256 before extracting or executing release assets (TRA-219) (#397) (3fe0614)

1.49.0 (2026-08-27)

Features

  • check_edit_safe: add depth param to unify with assess_change_risk / get_change_impact (TRA-197) (#392) (425a0c1)
  • get_dead_code: add exports_only mode, alias get_dead_exports (TRA-199) (#393) (290f7dc)
  • get_untested_symbols: add scope param, alias get_untested_exports (TRA-203) (#394) (ef80540)
  • pins: add unified pin tool, alias pin_file/pin_symbol (TRA-196) (#391) (5035195)
  • search: add retriever param to unify with search_with_mode (TRA-200) (#388) (2192dd3)

1.48.5 (2026-08-27)

Bug Fixes

  • point app auto-update at trace-mcp releases, not deleted trace-mcp-app-dist (#386) (6c14f18)

Documentation

  • fix remaining stale comments about the deleted app-dist repo (#387) (b47b0ad)
  • update roadmap — TRA-186 shipped, tool-consolidation scoping is next (#384) (8007125)

1.48.4 (2026-08-27)

Performance

  • mcp: trim per-param describe() text, add param-description budget guard (TRA-186) (#380) (73942ec)

1.48.3 (2026-08-27)

Performance

  • mcp: trim heaviest tool descriptions to cut schema-load token tax (TRA-186) (#377) (b2f3a09)

1.48.2 (2026-08-27)

Bug Fixes

  • app: apply staged update on any quit, not just explicit Restart (#376) (b817ef9)
  • daemon: re-check npm registry periodically, not just at startup (#372) (475cb69)
  • deep-glob fallback masked by unrelated global include pattern (TRA-184) (#374) (803f7c3)
  • registry: reject /private/tmp as a project root (TRA-185) (#373) (168e311)

Documentation

  • refresh product roadmap — 2 items shipped, add tool-schema tax (TRA-188) (#375) (5bf51d9)

CI/CD

  • switch release-PR auto-approve to a schedule trigger (TRA-171) (#370) (2411bb2)

1.48.1 (2026-08-27)

Bug Fixes

  • unify language/framework/tool counts across marketing docs (#369) (4e34e97)

Documentation

  • fix duplicate H1, untargeted titles, unscoped tables, dead-end internal links (TRA-173) (#368) (61436ea)
  • site: close AI-search (GEO) gaps — FAQPage schema, TechArticle dates, llms-full.txt (TRA-175) (#367) (ac1f543)

CI/CD

  • auto-approve release-please PR workflow runs (TRA-171) (#365) (8007391)

1.48.0 (2026-08-27)

Features

  • add detail_level to get_feature_context / get_task_context (GH #334) (#353) (9c30a2f)
  • ci: SARIF upload for quality gates + security scan (TRA-127) (#349) (a4c520f)
  • config: add tools.default_detail_level global verbosity default (TRA-168) (#364) (a78a9cd)
  • mcp: add list_projects + call_project_tool cross-project relay (TRA-93) (#357) (e1cde20)

Bug Fixes

  • app: migrate status dots to Lattice tokens, delete duplicate StatusDot (#352) (a3045eb)
  • app: replace emoji glyphs + hardcoded colors with Lattice Icon/Badge (#351) (f6268ac)
  • doctor: don't silently drop coverage when --fix removes overlap containers (#338) (744cbf4)
  • hooks: catch recursive/pathless grep-cat in trace-mcp-guard (#361) (408a85c)
  • init: stop writing alwaysLoad:true, flag it as stale instead (TRA-142) (#355) (18bb652)
  • release: enforce Conventional Commit PR titles (TRA-104) (#335) (933b9b1)
  • replace insecure /tmp literal paths in test fixtures with /nonexistent (CodeQL js/insecure-temporary-file #247) (#358) (4e0035f)
  • resolve CodeQL js/redos and js/insecure-temporary-file alerts in source-reader.ts (#356) (6939be2)
  • resolve mocked project roots via path.resolve in call_project_tool tests (#360) (a5f57ee)
  • site: self-host fonts, fix heading order, contrast, a11y name mismatch (#347) (b783e21)
  • test: resolve mocked project paths via path.resolve on Windows (TRA-151) (#359) (5410897)

Performance

  • memory: batch git commit-lookup in decision staleness verification (#348) (7652ef0)

Documentation

  • add product roadmap (TRA-124) (#343) (b203e3f)
  • deep-dive the two flagged 60K+-star entrants (Graphify, Headroom) (#362) (32d997d)
  • document solo-maintainer review model (#346) (6f149ef)
  • refresh competitor star counts (verified via GitHub API) (#344) (c660d44)
  • refresh competitor stars, add repo-context-mcp entrant, add profiling tracker (TRA-162) (#363) (3d474fa)
  • security: document code-scanning alert triage policy (#350) (50c6bd6)
  • site: link docs pages internally, fix sitemap, add llms.txt (#345) (82b4262)

1.47.1 (2026-08-16)

Bug Fixes

  • analytics: surface _warnings when session data source is unreachable (TRA-76) (#319) (74b49f1)
  • deps: patch Dependabot alerts reintroduced by packages/app restore (#309) (a1e13be)
  • watcher: apply .gitignore filtering to file-watcher events (TRA-85) (#327) (32dee04)

Chores

  • add .gitattributes forcing LF line endings (#326) (e19f512)

1.47.0 (2026-08-09)

Features

  • app: port the Lattice design system foundation from Codechats, restyle the sidebar shell (#281) (07948cc)
  • init: add --scope project|global for MCP config target (#282) (#284) (51be60d)
  • plugin: add Codex CLI plugin, document one-step install in README (#278) (8c17ce0)
  • telemetry: anonymous opt-out active-install ping (GA4 Measurement Protocol) (#280) (493152b)

Bug Fixes

  • config: scaffold preset:standard in default global config (TRA-67) (#305) (2c5a1bf)
  • guard: distinguish stdio vs http heartbeat, treat 0 sessions as dead (#301) (167dc01)
  • memory: drop bare "over" from tech_choice mining pattern (TRA-34) (#276) (a3b3c3e)
  • memory: scope mined-session count to project, not global (#303) (c5f0754)
  • memory: scope session discovery to the target project (TRA-48) (#293) (18fde5e)
  • memory: stop CLI mine defaulting stricter than the tuned reject floor (#272) (08bb295)
  • plugin: bump .codex-plugin manifest versions to match package.json (1.46.2) (#295) (13ecf04)
  • registry: doctor --fix-interactive handles registry issues too (#291) (f10efa5)
  • registry: stamp lastIndexed on daemon-driven and CLI index runs (TRA-59) (#302) (f100366)
  • topology: reject and self-heal filesystem-root subproject repo_root (#273) (#275) (c595ccd)

Documentation

  • surface benchmark command and clarify synthetic estimate vs real savings (#283) (581d458), closes #277

Chores

  • deps: bump undici and postcss overrides to close 6 Dependabot alerts (#300) (353a3ce)
  • deps: ignore better-sqlite3 major bumps (13.x prebuilds segfault) (#296) (3974066)

1.46.2 (2026-07-29)

Bug Fixes

  • init: doctor false-positives on CLAUDE.md files that reject a competing tool (#266) (54b47dc)
  • memory: reject narration noise in mined decisions (title_narration) (#268) (42ba04f), closes #17
  • registry: doctor --fix/--dry-run clean up stale entries and overlaps (#267) (513a177)

1.46.1 (2026-07-27)

Bug Fixes

  • auto-index unindexed files on get_outline NOT_FOUND miss (#260) (0e4a807)
  • config: index .cs files at arbitrary .NET project roots (#242) (ed2cdc1)
  • daemon: retry transient transport errors in ProxyBackend.send (#257) (22453de)
  • init: hide PowerShell console window in Windows launcher shim (5ddd61a)
  • quality: get_changed_symbols base-branch auto-detection for non-main/master repos (#258) (1393644)
  • tools: default preset to standard (~50 tools), not full (~170) (#259) (1c39322)

Chores

  • ci: group github-actions dependabot updates (#250) (c745589)
  • deps: bump postcss to close Dependabot alert #65 (#261) (cb18080)
  • deps: patch 7 open Dependabot alerts via pnpm overrides (#256) (4994510)

1.46.0 (2026-07-07)

Features

  • init: add KiloCode, Cline, Antigravity, Kimi MCP client auto-configuration (ed20612), closes #76

Bug Fixes

  • daemon: kill the restart war — session parent-death + SIGTERM bounded exit, /health "starting" during any indexing (8dbea96), closes #236 #237

1.45.3 (2026-07-06)

Bug Fixes

  • init: run Windows hooks through hidden PowerShell wrappers (no console flashing) (aa2ce31), closes #230

1.45.2 (2026-07-06)

Bug Fixes

  • memory: tighten mined-decision quality gate (code spans, dangling tails, table remnants) (1933076), closes #233

1.45.1 (2026-07-06)

Bug Fixes

  • memory: reject truncated fragments in session decision mining (78accf0), closes #231

1.45.0 (2026-07-04)

Features

  • daemon: idle project unload, per-connection SQLite memory caps, ancestor watcher restart (a63fb66)

Bug Fixes

  • ai: auto-detect Ollama embedding dimension + surface embed_repo failures (68249bc), closes #223
  • config: preserve user-added keys when rewriting a project config section (bfb5b93)
  • daemon: close topology.db handle in runSubprojectAutoSync (fd leak) (27b2418)
  • dashboard: deep-merge PUT /api/settings and preserve JSONC comments (7510769), closes #221
  • indexer: electron & filament edges were silently dropped — rewrite + tests (3/3) (fb84beb)
  • indexer: import TSNode locally in language helpers (keep re-export) (8a6ee59)
  • indexer: import TSNode locally in language helpers instead of dead re-export (dba6233)
  • indexer: stop following directory symlinks during file discovery (c6bda46), closes #218
  • init: accept string content in withPs1Bom + align hooks test with BOM write path (03a77ab)
  • init: write .ps1 launcher/hook artifacts with a UTF-8 BOM + ASCII-only templates (66ba15c), closes #224
  • tests: type the unknown config section before member access in jsonc-merge test (7872942)
  • types: restore tsc gate (1/3) — core plugin-api types match runtime (524bf06)
  • types: restore tsc gate (2/3) — mechanical/drift/noise across 38 files (33e9ed1)

Performance

  • daemon: cache registry reads + dedup consultation markers on the hot path (bdce2a2)

Refactoring

  • indexer: extract extractAndPersist from IndexingPipeline (137 -> 115 cyclomatic) (7fd7b36)
  • memory-scheduler: extract shared types into a dependency-free leaf module to break the resource-ops cycle (93f983d)
  • memory: extract MemorySchedulerResourceOps from MemoryScheduler (f528d00)

Documentation

  • taint-analysis: reword example comment to avoid self-triggering the SQL-injection scanner (cd68c36)

Chores

  • quality-gates: calibrate thresholds from today's cleanup + scanner review (7e17144)

CI/CD

  • add tsc --noEmit typecheck gate to prevent type rot (5cd4a03)

1.44.0 (2026-07-02)

Features

  • analysis: add get_file_health_timeline (complexity+coupling+churn merge) (84a889d)
  • analysis: add get_graph_timeline (simplified commit-sampling tier) (ee30168)
  • analytics: track semantic-degraded searches + near-duplicate rephrased queries (a3becf2)
  • cfg: model loop back-edges, loop-exit edges, and try/catch merge nodes (8b58c13)
  • daemon: serve registered subprojects read-mostly (no watcher, ephemeral) (208be4c)
  • daemon: subproject-aware session binding (#209) (bb96ecf)
  • eval: health-metric calibration harness + honest triage language (caae2c9)
  • iac: K8s Resource nodes, multi-doc, Kustomize modules, compose build links (391d03e)
  • iac: resolve Kustomize/compose path-string imports to real manifest nodes (4da5e48)
  • memory: decision staleness verification (Task 3) (dce53ea)
  • memory: hybrid retrieval for decisions + tracked benchmark (Task 9) (05cb7fb)
  • memory: progressive disclosure of decisions (Task 12) (1222cef)
  • memory: search-time heat decay + auto-supersession (Task 11) (6bcf60b)
  • quality: SARIF 2.1.0 output for scan_security, detect_antipatterns, check_quality_gates (37a0047)
  • quality: type-aware taint pruning to cut false positives (62a2a6a)
  • refactor: re-enable extract_function with AST free-variable analysis (296a2b8)
  • refactor: rebuild apply_codemod on ast-grep AST engine (c3e823c)
  • scip: SCIP ingestion with scip_resolved edge tier (3b5a970)
  • taint: array-destructuring source + lock-in multi-hop/coercion regressions (106eb5c)
  • tools: register get_federation_impact, get_file_health_timeline, get_graph_timeline (1ebf5bc)

Bug Fixes

  • cache: scope pagerank + search caches per-DB (WeakMap), not by db.name (24c42ec)
  • cfg: emit post-nested-block statement as its own node (13ee9c1)
  • cfg: stop mis-classifying do-prefixed identifiers as do-while loops (3f7a8e0)
  • codemod: a pattern with zero matches is success, not an error (6d1bc99)
  • codemod: lazy-load @ast-grep/napi so a missing native binding degrades instead of crashing the server (643e7d5)
  • daemon: FK-recovery hard-resets index tables instead of looping (848623d)
  • extract-function: stop misclassifying shadowed/multi-return slices, make confidence reflect it (4175a41)
  • hcl: persist + resolve Terraform module source imports edge (970a144)
  • indexer: keep symbols_fts in sync on incremental reindex (6807b0f)
  • indexer: scope indexing to most-specific registered project (#209) (32e2930)
  • memory: break decision-store circular import via shared decision-types (5892529)
  • memory: decision retrieval bench script was broken and measuring stale data (e6259b4)
  • memory: fail open when decision verification throws internally (3850eb9)
  • registry: match extensionless language files by basename (cfa018b)
  • revert 6 dead-code false positives from get_dead_code confidence-1.0 batch (0a18f42)
  • sarif: emit the canonical OASIS $schema URL, not a dead 404 (511ef78)
  • security: eliminate 3x command injection in install-app.ts (ff9eca6)
  • security: eliminate command injection in ask --repo git clone (b052f9a)
  • security: validate table identifier before DDL in Vec0Index (CWE-89) (6285f0b)
  • session: tighten unbatched-call hint, broaden tracked tool set (fbccd6e)
  • taint: line-aware type pruning to prevent hidden string-injection (edb6815)
  • taint: propagate taint through string concat and template literals (05194ee)
  • types: narrow SearchResult | FlatSearchResult before _meta/_near_misses access (76ef9ce)
  • types: null-guard decisionStore inside nested closures in memory.ts (ac98c3a)
  • types: remove invalid type assertion in updateCallSites (739295b)
  • types: replace zod v3 ZodEffects with v4 ZodPipe/ZodTransform (22c5294)
  • types: widen tsconfig rootDir to repo root to fix TS6059 (f526ba3)

Performance

  • ai: optional sqlite-vec ANN index for vector search (256305f)
  • analysis: batch per-period churn queries in getGraphTimeline into one git call (a3f846b)
  • analysis: cross-call cache for buildFileGraph + edge bottlenecks (5f43b89)
  • analytics: replace tool_calls JOIN sessions with IN-subquery filter (f76afa6)
  • complexity: strip strings/comments once per symbol, not twice (106dc58)
  • context: hoist repeated graph/file loads in context assembly (42d5d33)
  • daemon: grace-TTL release of idle project stores + idle heartbeat backoff (9a3a3f4)
  • db: add hot-path indexes idx_symbols_parent/exported, idx_edges_resolved (schema v30) (cc49d47)
  • indexer: bulk-create symbol nodes per file batch (2N->1 statements) (dbba80b)
  • indexer: evict per-batch file content cache to bound in-process RSS (405f3ae)
  • memory: batch decision-verification blob reads via git cat-file --batch (a079eac)
  • memory: dedupe getStats() on the wake-up hot path (02972d7)
  • memory: memoize git subprocess spawns in decision verification (28ba56c)
  • scoring: avoid expensive filtered COUNT in PageRank cache-hit check (7d0e751)
  • topology: memoize endpoint-path normalization in linkClientCallsToEndpoints (cd3a756)
  • topology: O(N^2)->O(N) cross-service edges; fix FK-safe repo removal (c0140da)

Refactoring

  • api: split ask-sessions-routes dispatcher into per-route handlers (a166ca7)
  • api: split memory-routes dispatcher into per-route handlers (60bafa9)
  • eval: extract main() helpers in calibrate-health-metrics (F -> D) (fe62553)
  • indexer: extract FileCollector from IndexingPipeline.collectFiles (9fc7bb2)
  • indexer: extract RenameDetector from IndexingPipeline.detectRenames (2c72d9a)
  • lsp: extract ensureFileOpen/enrichSymbol from enrichLanguage (cyclomatic 11 -> 6) (5337939)
  • lsp: extract logging/drain helpers from flushInternal (cyclomatic 10 -> 5) (17a158b)
  • lsp: extract resolveServers helpers in config.ts (cyclomatic 19 -> 1) (693a22d)
  • memory: extract MemoOperations from DecisionStore god-class (1ce07d2)
  • memory: extract MutationOperations (write-path) from DecisionStore (5af82ad)
  • memory: extract QueryOperations (read-path) from DecisionStore (478f91b)
  • memory: extract ReviewOperations from DecisionStore (c88242f)
  • memory: extract SchedulerState + Consolidation ops from DecisionStore (b68847f)
  • memory: extract SessionOperations from DecisionStore (7eca034)
  • python: decompose PythonLanguagePlugin.extractClass into helpers (class cyclomatic 153 to 66) (3562333)
  • server: decompose installToolGate into tool-gate-helpers (cyclomatic 154 to 26) (634078e)
  • subproject: extract contract resolution and source-service lookup in manager (4f0a28e)
  • subproject: extract rename detection out of diffSchemas (1e1feb5)
  • subproject: extract URL resolution and dedupe line-counting in scanner (61268b5)
  • subproject: split per-repo search logic out of subprojectSearch (1690413)
  • tools: extract get_context_bundle + get_feature_context into navigation/context-tools.ts (b64478f)
  • tools: extract get_task_context into navigation/task-context-tools.ts (89a2f4f)
  • tools: extract point-lookup tools into navigation/lookup-tools.ts (b79a318)
  • tools: extract search + suggest_queries into navigation/search-tools.ts (ddc7cf8)
  • tools: hoist memo helpers out of registerMemoryTools closure (b2cd23b)
  • tools: reduce registerNavigationTools to thin orchestrator (cyclomatic 183 -> 1) (bc292c7)
  • topology: decompose TopologyStore god-class into per-entity modules (125 -> 49) (f2b3221)

Documentation

  • fix CLAUDE.md/AGENTS.md drift (dead path, false-positive tool refs, oversized section) (40a1b90)
  • reflect shipped gap-closures + adversarial validation findings (4ae193b)
  • refresh competitor comparison (June 2026) + new entrants (cc5c332)

Tests

  • ai: add AnthropicProvider unit tests (b3152a8)
  • ai: add ask-shared.ts unit tests (resolveProvider, gatherContext, factories) (35b1838)
  • ai: add GeminiProvider unit tests (4827f32)
  • ai: add OnnxProvider unit tests (842501d)
  • ai: add OpenAIProvider unit tests (e6fbe6a)
  • api: characterize ask-sessions-routes HTTP contract before split (0c6afe3)
  • cli: add behavioral coverage for clients and check commands (cdf04e8)
  • cli: add behavioral coverage for consent, bundles, status commands (41fc3d6)
  • cli: add behavioral coverage for preflight, prune, remove commands (78d8b87)
  • codemod: add CI smoke test for @ast-grep/napi native binding resolution (a7980ab)
  • eval: widen MRR baseline tolerance to dataset granularity (3479053)
  • iac: adversarial hardening for K8s/Kustomize/compose edge cases (a0682a6)
  • lsp: add unit tests for LspBridge orchestrator (8f9482f)
  • lsp: add unit tests for LspClient JSON-RPC transport (0617a15)
  • lsp: add unit tests for LspEnrichmentPass (392386c)
  • lsp: add unit tests for LspServerManager lifecycle (9666574)
  • lsp: add unit tests for symbol <-> LSP position mappers (30e89ba)
  • memory: adversarial supersession non-triggers (Task 11) (e3ace69)
  • memory: end-to-end heat-decay ranking with real timestamps (Task 11) (cdc3e15)
  • memory: end-to-end staleness scenarios (file deletion, in-place edit) (6dce0c8)
  • memory: progressive-disclosure error handling + content-leak hardening (Task 12) (5c8f198)
  • memory: query_decisions hybrid retrieval wiring at the tool-handler level (Task 9) (54d2a8a)
  • refactor: fix extract_function preview fixture to a genuine single-return case (cc799cc)
  • refactor: fix legacy zero-match assertion missed by the targeted re-run (4268172)
  • subproject: add behavioral coverage for subproject-helpers.ts (5462d6a)

Chores

  • ai: remove 5 unused retrieval-mode result interfaces (541b9fb)
  • deps: bump hono 4.12.27 + js-yaml 4.3.0 via pnpm.overrides (security) (9d26f76)
  • deps: declare vite >=8.0.16 override (fs.deny bypass + launch-editor NTLMv2 advisories) (f348a80)
  • deps: override esbuild >=0.28.1 (fixes dev-server arbitrary file read on Windows) (51f1446)
  • deps: override undici >=7.28.0 (fixes SOCKS5 proxy pool cross-origin + TLS bypass advisories) (14bcdd5)
  • deps: tighten protobufjs override to >=8.6.0 (fixes unknown-field memory amplification + property-shadowing advisories) (d44aaba)
  • lsp: remove TextDocumentPositionParams — orphaned by prior removal (3472c41)
  • plugin: sync manifest versions to 1.43.4 (956902b)
  • release: 1.43.4 (4998247)
  • remove 5 verified-dead leaf exports (f8066ac)
  • remove confirmed-dead exports from fresh dead-code sweep (a862c06)
  • remove dead extractCashierConfig cascade + WorkspaceResolver (b2e9375)
  • remove verified dead code (4 symbols, confirmed via search_text) (dbcff51)
  • ruby: remove confirmed-dead filePathToModule and isAllCaps helpers (cc9b90e)

CI/CD

  • add informational-only quality-gates report job (a1b0f26)

1.43.3 (2026-06-27)

Bug Fixes

  • daemon: seed initialize frame into swapped-in proxy backends (#209) (90eee30)

1.43.2 (2026-06-25)

Bug Fixes

  • daemon: guard POST /api/projects against bare-container roots (#209) (1e2b8e0)
  • daemon: read-only local fallback — stop per-session full re-index (#209) (8c28b65)

CI/CD

  • scorecard: tolerate transient publish-results timeout (#209) (d2f2a81)
  • windows: drop node_modules cache on cross-platform job to fix realpath EPERM (#209) (3f9a5ad)

1.43.1 (2026-06-16)

Bug Fixes

  • daemon: raise auto-spawn timeout 5s->20s to stop premature local fallback (#209) (6b3a43e)
  • indexer: skip postprocess on unchanged full reindex (#209) (e108d4b)

1.43.0 (2026-06-15)

Features

  • ai: harden summarizer against prompt injection + configurable request body (3f1f1dc)
  • hooks: opt-in strict enforcement tier for the navigation guard (0c1ceec)
  • indexer: first-class Astro (.astro) language support (25716b0)
  • indexer: refine sensitive-file detection (basename + secret-store dirs) (8cc831d)
  • lsp: wire C# into LSP enrichment (csharp-ls auto-detect) (2c80906)
  • release: publish provenance + get_symbol git-HEAD verification (9a01450)
  • tools: add check_edit_safe edit-safety preflight (3539b0b)

Bug Fixes

  • daemon: bounded reinit-retry covers 'Session expired' session loss (#209) (3c23576)
  • daemon: don't auto-register a bare parent dir that only contains projects (#209) (f7e228f)
  • daemon: keep /health responsive during warm-up; log shutdown reason (4da4beb)
  • daemon: proxy transparently re-initializes after daemon restart (#209) (1d8d791)
  • daemon: rotate daemon.log from inside the running daemon (#209) (fa4f93a)
  • deps: regenerate pnpm-lock.yaml after dependabot group merges (3ab0ece)
  • server: process-wide safety net so one stray error doesn't drop the session (bdc6b33)
  • types: resolve 3 navigation type errors incl. a latent freshness bug (29b7bb6)
  • watcher: stop indexing runtime churn; harden initial indexing; rotate daemon.log (a603bde)
  • windows: green the nightly cross-platform job (f441b1d)

Performance

  • indexer: defer full edge resolution to a coalesced reconcile; flag overlapping roots (76f2f1c)
  • local-backend: seed session DBs from the shared index; sweep SIGKILL orphans (fb033ec)

1.42.0 (2026-06-08)

Features

  • init: preflight checks + verify/doctor hints for first-run (#124) (7502b73)

Bug Fixes

  • daemon: respect explicit opt-out so removed daemon stays gone (#202) (1aca174)
  • quality: exclude .env* files from code-smell scanning (3be2c25)
  • registry: doctor reports registry/DB integrity, prune removes stale rows (#168) (b6550ce)
  • topology: make subproject client-call scan async to unblock the event loop (e9316ab), closes #198

Documentation

  • config: add stdio vs HTTP setup guide for per-repo and team use (ba80138)
  • project-model: document one-project-per-session model + serve-http log (#199) (14bb2ca)

1.41.3 (2026-06-01)

Bug Fixes

  • fastapi: compose cross-file include_router(prefix=...) mount prefixes (1287418)

1.41.2 (2026-06-01)

Bug Fixes

  • config: index Python source under app/ and flat layouts by default (08cd008)
  • fastapi: compose APIRouter(prefix=...) into route URIs (7c5ab83)
  • fastapi: resolve Depends(dep) to a symbol-level edge in pass 2 (aa471b2)
  • impact: bound get_change_impact output for high-fan-in symbols (e49a743)
  • indexer: discover nested subproject files per detected workspace (b9e4731)
  • init: comprehensive default config for non-framework / container roots (7e40276)
  • laravel: compose group prefixes via a recursive route walk (c97f7c4)
  • laravel: extract closure and inline-chained routes (dd3c5dd)
  • model: populate get_model_context for Python SQLModel/Pydantic models (ecc17fb)
  • monorepo: detect implicit workspaces under a non-workspace root manifest (8bd3339)
  • python: resolve Celery task.delay()/.apply_async() to the task function (81fbcbc)
  • python: resolve type annotations to symbol-level references edges (04ff4a6)
  • topology: apply Laravel /api prefix for standalone-indexed services too (fbd9f39)
  • topology: don't register Laravel nova-components as separate services (e305715)
  • topology: exclude intra-repo calls from the cross-project graph (60b1d8a)
  • topology: exclude Vue Router page routes from cross-service endpoints (ddb9736)
  • topology: scan Nuxt $api plugin clients and dynamic API paths (2810515)
  • topology: serve Laravel routes/api.php endpoints under /api (38eae10)
  • topology: skip backend declaration/view/admin files in client scan (92193a9)

Tests

  • eval: skip eval-cli smoke runs when the global index is transiently unavailable (38fb1d7)
  • isolation: redirect global home to a temp dir so tests can't pollute ~/.trace-mcp (9809296)
  • topology: cover /api prefix for repo-relative routes/api.php (06a40b0)

1.41.1 (2026-05-29)

⚠ BREAKING CHANGES

  • app: remove desktop app from core repo (phase E)

Tests

  • remove orphaned app tests from core (source moved to app repo) (b910850)

Chores

  • app: remove desktop app from core repo (phase E) (f3b4b0e)
  • release as 1.41.1 (462369e)

1.41.0 (2026-05-29)

Features

  • app: Activity P2 — keyboard nav, baseline deltas, sparkline zoom, file deep-links (a0de7b7)
  • install: fetch desktop app from dedicated public dist repo (phase C) (c1bbf4d)

Bug Fixes

  • app: add ErrorBoundary so one tab crash no longer blanks the whole window (90961d8)
  • app: stop Activity feed crashing react-dom via nested <button> (38d893f)

Refactoring

  • install: make app distribution repo configurable (split prep, phase A) (6bee11b)

Tests

  • exclude packages/app from core test runner (app moved to own repo) (da28bdc)

1.40.0 (2026-05-28)

Features

  • app: advanced Activity tab — Tool/AI sub-tabs, search, filters, sessions (17f4d11)
  • lsp: background enricher for incremental LSP edge upgrades (a74b6c1)

Bug Fixes

  • app: exclude test files from renderer typecheck (77e38d7)
  • cli: install menu bar app under --yes / --json / --dry-run (6384b7c)
  • indexer,analysis: suppress phantom SCCs from type-only imports & projected edges (62e88d7)
  • intelligence: 14 correctness/UX/storage fixes across the trace-mcp surface (79963a1)
  • updater: locate installed .app by bundle id instead of guessing ~/Applications (#179) (06b8e04)

Performance

  • indexer: default incremental indexFiles to postprocess=minimal (0576a0a)
  • indexer: gate watcher reindexes through dedup + emit watcher telemetry (b3e1352)

Refactoring

  • break 2 small import cycles via shared-module extraction (7bb8d00)
  • break 7 small import cycles + fix latent DTS issues exposed (86d26ca)

Documentation

  • landing: drop Benchmark section, fix install steps, fix copy button (a72cf27)

Chores

  • deps: bump qs and protobufjs to patched versions (270f73d)

Build

1.39.4 (2026-05-25)

Bug Fixes

  • app: stop in-app updater from looping on npm-only outcomes (#173) (ae0b9ef)
  • db: use ON CONFLICT DO UPDATE in insertSymbol to keep parent_id FKs valid (fd63f52)
  • env: unify .env secrecy model + provenance gate for tool-managed files (#172) (8572741)

Documentation

  • toon: standardize TOON description wording and document allowlist (4a3a46f)

CI/CD

  • add pr-comment workflow that posts impact-report from CI artifact (bdc24b9)

1.39.3 (2026-05-24)

Bug Fixes

  • app: keep guard mode popover above sibling project rows (f537eef)
  • daemon: self-heal stale registry + actionable MCP errors (#168) (8094400)

Documentation

  • align contributor setup with pnpm packageManager (#156) (d8afe9b)

1.39.2 (2026-05-18)

Features

  • memory: extend incremental cursor to provider (Hermes) mining (7f4231a)
  • memory: per-service wake-up scoping + scheduler_state table (4def231)
  • memory: persist scheduler state across daemon restarts + prune memo auto-trigger map (fecd2d9)

Bug Fixes

  • daemon,app: break post-update restart loop (4583ab8)

Chores

1.39.1 (2026-05-18)

Features

  • daemon: background memory scheduler (P1.3) — auto mine + cluster + memo (8eda0ba)
  • memory: auto-regenerate memo on write + auto-tune weights in scheduler (f4c471d)
  • memory: close P1.1/P1.2/P2.3/P2.4 close-out TODOs (decoration + retention + cursor knob) (b4b0665)
  • memory: confidence-weight learning from review feedback (P2.5) (4d4b5b1)
  • memory: export_decisions tool + CLI + optional audit log (e20ae6f)

Bug Fixes

  • install: plist v3 — both generators use launcher shim + post-kickstart health probe (f7e5073)

Chores

  • errors: silence tsup "err/ok never used" warning via type-only import (94242ba)

1.39.0 (2026-05-18)

Features

  • ai: auto-rebuild embedding index on provider/model mismatch (427ec4e)
  • ai: wire P0.1 auto-rebuild into embed_repo, pipeline, verify_index (30f516b)
  • memory: add LLM-driven extraction strategy to mine_sessions (3a44a47)
  • memory: hard recall timeout for wake_up / query_decisions / feature_context (d6115b8)
  • memory: incremental cursor for session mining (28c9d3c)
  • memory: LLM-driven semantic dedup via consolidate_decisions tool (fd50305)
  • memory: project memo (L3 orientation digest) — synthesis + tools + wake-up integration (1ac7e5e)
  • memory: wire decision clusters MCP tools + wake-up topics (bad337b)
  • wake_up: split response into stable+dynamic regions for prompt-cache friendliness (926aaa0)

Bug Fixes

  • app: Electron auto-update also refreshes the npm CLI (f73055b)
  • ci: apply-pending-update strips inherited NO_POSTINSTALL + README count (1607a03)
  • config: allow "_warnings" in tools.meta_fields enum (b9990e4)
  • hooks,evidence,gate: P3 meta cleanup — coach allowlist, verdict split, visible clamps (9ed8a2a)
  • install: postinstall enables + bootstraps plist on first install (b2b2113)
  • memory: defensive access to memory.recall config in tool handlers (c38b9e4)
  • navigation,memory,analysis: P2 UX/correctness pass on intel surface (475c285)
  • quality,refactoring,analysis: P1 false-positive + silent-empty pass (53e55b7)
  • refactoring: P0 safety + correctness pass on apply/plan tools (005fd64)
  • test: embed-repo fake VectorStore must mirror to symbol_embeddings + re-enable in CI (5cb9ffb)

Chores

  • gitignore: ignore .claw/, daemon*.log, run-benchmark.ts (developer-local debris) (2fc9779)

1.38.0 (2026-05-17)

Features

  • daemon: memory diagnostics endpoint + AI cancellation + multisink resilience + LocalBackend re-entry guard (e8f4116)

Bug Fixes

  • ai: commit missing src/ai/abort.ts referenced by anthropic/gemini providers (49922e4)
  • app: launcher-shim binary resolution instead of PATH-only which (db52e74)
  • ci: postinstall test inherits workflow opt-out env + verbose reporter (dc42b46)
  • daemon: preserve error.message + .codeName when logging failures (edaa124)
  • indexer: cap extract-worker crash loop with backoff + dedup (fad5bf2)
  • indexer: release tree-sitter Tree WASM heap via tree.delete() in every parse path (0a85793)
  • install: self-healing postinstall writes launcher.env + plist (3761619)
  • logger: atomic-rename rotation that survives multi-GB log files (b4d1499)
  • test: updater.test.ts must also clear TRACE_MCP_NO_AUTO_UPDATE in CI (20c5683)
  • test: updater.test.ts must bypass isDevCheckout like rollback suite (d4cc672)
  • updater: atomic backup + rollback for ENOTEMPTY retry path (38115e7)

Documentation

  • decision-memory: document live-capture, review queue, and privacy filter (aa02099)

Tests

  • tools: behavioural coverage for dead-exports, untested-exports, and decision-graph tools (ebb888c)
  • tools: behavioural coverage for misc + framework-aware tools (61e94a4)
  • tools: behavioural coverage for planning, intent, and batch tools (88682ba)

CI/CD

  • bisect: also exclude src/telemetry/tests/** — suspect OtlpSink (5823b76)
  • bump cache key to v2 to invalidate poisoned node_modules (4b6be53)
  • diag: add [FILE END] marker to surface the actually-hung file (39bf4e7)
  • diag: file-start reporter to identify CI hang culprit (c6c0c3a)
  • drop --ignore-scripts from build install so native bindings compile (28e4a76)
  • drop sharding for 1.38.0 release — reliable single-job test run (6366c58)
  • exclude embed-repo behavioural test (pinpointed hang via FILE END diag) (1c4ac23)
  • exclude fixture + xml-plugin test files (1.38 release unblocker) (7d00584)
  • exclude integration + daemon test dirs (bisect for CI hang) (d9b529b)
  • exclude tests/perf/** from per-commit shards (bbc45e0)
  • exclude toon-drift + debounce-abort tests — bisection landed (50cc141)
  • shard tests + share build artifact + safety-net timeouts (<3 min target) (92fdd11)

1.37.0 (2026-05-15)

Features

  • tools: toon output format for tabular MCP responses (30-60% fewer tokens) (2e359ba)

Bug Fixes

  • analysis: restore findDuplicateSymbols helper that check_duplication relied on (8d49139)
  • benchmark: honest synthetic-estimator labelling + tokenizer calibration + multi-sample variance (279f619)
  • daemon: cap remaining unbounded long-lived caches and stores (f7b7044)
  • daemon: plug FileWatcher re-entry leak + pass_cache TTL + progress-throttle pruning (cc4f155)
  • daemon: restore /mcp routing for stdio clients + scope teardown to removed projects (4a708a2)
  • db: add v11 domain tables to fresh-DB DDL (12e4e05)
  • db: mirror remaining v11+ migration tables in fresh-DB DDL + parity guard (c0c052d)
  • intent: add missing domains JOINs in getCrossDomainDependencies (b39b5b3)
  • pipeline: bound per-project resource accumulation across project lifecycle (61fcd70)
  • scoring: drop stale-prone in-process cache from ranking_pins lookups (d5de560)
  • telemetry: bound OTLP/Langfuse sink memory under unreachable export endpoint (20397a4)
  • test: bump bundles searchBundles limit-case timeout to 30s (06e0df5)
  • tools: invert source/target check in get_cross_workspace_impact (5597781)
  • topology: apply contractType filter to endpoints in get_api_contract (db91b91)
  • topology: replace stale fr.* alias with sp.* in client-call queries (f304139)

Tests

  • tools: behavioural coverage for api-contract and service tools (f8c8872)
  • tools: behavioural coverage for compare and suggest tools (61b07cf)
  • tools: behavioural coverage for context and complexity tools (8334270)
  • tools: behavioural coverage for corpus and packaging tools (c23eb2d)
  • tools: behavioural coverage for cross-domain and edge tools (7557689)
  • tools: behavioural coverage for decision lifecycle tools (fd102ae)
  • tools: behavioural coverage for graph-traversal and analysis tools (1ca1b1a)
  • tools: behavioural coverage for graph/relationship tools (ac22e25)
  • tools: behavioural coverage for health and risk tools (acfb835)
  • tools: behavioural coverage for history and coupling tools (30b46fa)
  • tools: behavioural coverage for index, embedding, and perf tools (330a20c)
  • tools: behavioural coverage for ownership and tech-debt tools (0ce20be)
  • tools: behavioural coverage for quality and security tools (9987aed)
  • tools: behavioural coverage for quality/coverage tools (d6d6d26)
  • tools: behavioural coverage for refactoring tools (347d107)
  • tools: behavioural coverage for security and refactor tools (68d6171)
  • tools: behavioural coverage for session and analytics tools (fdc0288)
  • tools: behavioural coverage for session and analytics tools (a1d87ba)
  • tools: behavioural coverage for snapshot and maintenance tools (eb949d7)
  • tools: behavioural coverage for subproject and api-surface tools (83c3300)
  • tools: behavioural coverage for trend and visualization tools (2fcae49)
  • tools: behavioural coverage for workspace and architecture tools (8496a18)
  • tools: behavioural test coverage for search/get_outline/find_usages/get_change_impact/pin/query_decisions (2379ed1)
  • tools: skip discover_claude_sessions fixture on Windows (6ea757e)

1.36.1 (2026-05-14)

Bug Fixes

  • daemon: auto-recover from FK-violating stale data on initial index (ea8b7a6)
  • daemon: require explicit ?project= when multiple projects registered (58e25a2)
  • indexer: density-based binary detection in isBinaryBuffer (df7b3d8)
  • retrieval: search_with_mode passes both text and query fields (6abaea5)
  • test: bump cli-smoke DB-schema test timeout to 30s for Windows runners (539ae09)
  • test: skip eval-run smoke cases when project is not indexed (039aced)
  • test: widen XML perf guard threshold from 500ms to 1500ms (ddb5d84)

Documentation

  • release 1.36.0 consistency fixes (a604678)
  • tools: align check_claudemd_drift return shape with auditConfig (af2f7e4)

Tests

  • db: pin ranking_pins/pass_cache in fresh-DB schema guard (10b8e82)
  • integration: smoke-test eval CLI list/run/baseline (ab5bebf)
  • smoke: MCP-tools end-to-end smoke script for new session tools (3a362d8)

1.36.0 (2026-05-13)

Features

  • app: insights tab surfacing drift, pagerank, and risk hotspots (b080e2d)
  • app: notebook scratchpad tab for ad-hoc tool queries (7eedb15)
  • daemon: pipeline-lifecycle SSE events + Electron consumer (dcff9f3)
  • eval: code-intelligence benchmark harness with CLI subcommand (64bca2a)
  • memory: remember_decision MCP tool for live agent writes (11fd07c)
  • pipeline: composable Task DAG with idempotency keys (c33a4ba)
  • pipeline: persisted task-cache via SQLite pass_cache table (266bbfd)
  • presets: decision-memory quartet on minimal + standard (f384672)
  • quality: CLAUDE.md drift detection + check_claudemd_drift tool (faf5d07)
  • retrieval: BaseRetriever protocol foundation with 2 adapters (d0d9f0c)
  • retrieval: emit routing telemetry from feeling_lucky retriever (e79b5bf)
  • retrieval: graph_completion retriever — vector hit + 1-hop expansion (3fcaab1)
  • retrieval: named search-mode taxonomy + search_with_mode MCP tool (a8250e1)
  • scoring: ranking pins — user-supplied importance weights for PageRank (704d66c)
  • telemetry: observability bridge with OTLP and Langfuse sinks (bae0fb2)

Bug Fixes

  • ci: normalize CRLF in DaemonEvent union guardrail for Windows runners (71815ce)
  • ci: unbreak notebook test under frozen-lockfile + register project before eval indexing (7522bc8)
  • telemetry: wire observability bridge into server bootstrap + ship local OTLP recipe (e03d75b)

Performance

  • indexer: Phase 4+5+7 — incremental edges, cold-start, telemetry (8a1ed45)

Refactoring

  • indexer: migrate 3 pipeline passes onto Task DAG (c4a6afb)
  • retrieval: migrate search MCP tool onto BaseRetriever (61b9663)
  • retrieval: migrate search_text, search_bundles, search_sessions onto BaseRetriever (8da5ab9)

Tests

  • daemon: pipeline-lifecycle SSE integration test + drift firewall (0976c38)
  • quality: cover dead_skill_ref and dead_command_ref drift categories (e46d0a8)

CI/CD

  • eval: baseline-regression check + GitHub workflow (d902af6)

1.35.1 (2026-05-11)

Bug Fixes

  • daemon: normalize reindex paths to POSIX so Windows tests + cross-path dedup work (7f61983)

Performance

  • indexer: daemon-first reindex, AI-call coalescing, shared/warm worker pool, content-hash gate (dfd8e4f)

1.35.0 (2026-05-10)

Features

  • app: four new tabs — Activity, Memory, Ask v2, Dashboard (acdd9a5)
  • app: four tabs v2 — stats, write actions, slash-commands, real metrics (42857d1)
  • memory: lifecycle hooks, branch-aware decisions, stats modal, filter bar, recall harness (62d010a)
  • memory: tiered retrieval modes + decision confidence/review queue (eb58bc0)

Bug Fixes

  • server: keep stdin in Buffer mode — setEncoding crashes MCP SDK (bbfb7bb)

1.34.2 (2026-05-10)

Bug Fixes

  • ci: pin npm publish back to npx npm@11 — pnpm provenance flow broken (a052a62)

1.34.1 (2026-05-10)

Bug Fixes

  • release: sync Claude Code plugin manifests with package.json on bump (404c4bd)

1.34.0 (2026-05-10)

Features

  • ai: classified provider errors + retry helper with exp backoff (9d0f513)
  • ai: consent gate for outbound LLM provider traffic (6ec8630)
  • ai: detect local LLM endpoints (Ollama / LM Studio / llama.cpp) (be6075e)
  • ai: one-shot stderr warning before cloud-bound embeddings (2753856)
  • ai: per-provider quota / auth circuit-breaker (c82fea1)
  • ai: stamp embedding provider on the index, refuse cross-provider mix (1ee2a11)
  • ai: tier-router helper + tier-separated default models (d0e2848)
  • analysis: rank cross-community edges by surprise score (9c184f5)
  • communities: seed Leiden PRNG so community IDs are deterministic (8dff326)
  • communities: split low-cohesion mega-clusters in a second Leiden pass (3fa7078)
  • config: add TRACE_MCP_DATA_DIR + TRACE_MCP_REPO_ROOT env overrides (f326a81)
  • daemon: add stdio handshake watchdog (f0d82ea)
  • daemon: proxy-backend routes worktree paths to canonical indexed repo (2b22c11)
  • db: verify_index + repair_index MCP tools (f66fe32)
  • dead-code: drop framework entry points from the candidate set (25a7825)
  • dead-code: seed reachability with package.json#exports entries (da7c69d)
  • find_usages: drop text_matched edges into ambiguously-named targets (1407af2)
  • graph: add float edge confidence on top of resolution_tier (92d7190)
  • hooks: guard v0.9 — block bare directory walks + .md doc-tour hint (45a9be2)
  • impact,refs: surface resolution_tier on find_usages and get_change_impact (4eff222)
  • indexer: add postprocess level knob (full / minimal / none) (cab7e90)
  • indexer: detect file renames by content hash and skip re-extraction (46ca974)
  • indexer: force-include files declared as package.json entry points (83cada2)
  • indexer: per-target PID-guard for reindex / embed_repo (656efe4)
  • indexer: warn when a full reindex shrinks the graph by more than half (eb43ee9)
  • insights: add generate_insights_report MCP tool (50a4820)
  • memory: canonicalise decision file_path to repo-relative on store + query (8d4cdfd)
  • memory: CorpusBuilder — materialise corpora via packContext (5e34f59)
  • memory: CorpusStore — persistent code-context corpora on disk (6425e26)
  • memory: privacy filter for mine_sessions strips internal payloads (1134509)
  • memory: worktree adoption — mine_sessions files decisions under parent (9d9b836)
  • perf: cooperative yield from heavy CPU loops to keep stdio responsive (6f40b78)
  • plugin-api: support async extractNodes in framework plugins (1b6095e)
  • plugin: add Claude Code plugin manifest for one-step install (b1f3719)
  • plugins: add class-validator, passport, react-table; expand NestJS WS (50c17ec)
  • plugins: add Kafka producer/consumer indexer (Spring, kafkajs, Python) (6c80def)
  • plugins: index .luau (Roblox Lua) and .qmd (Quarto) files (ccc9c2d)
  • plugins: index extensionless scripts via #! shebang fallback (39abbfd)
  • registry: add git-worktree probe primitives (a7d489c)
  • registry: worktree-aware project resolution (9f4bda3)
  • security: add SSRF guard utility for outbound fetches (c8204c5)
  • security: add wall-clock budget to searchText regex iteration (b651b90)
  • security: extend git env hardening to predictive + impact paths (848c23a)
  • security: harden git env in workspace-spawned commands (124bdd0)
  • server: expose project state through six MCP resources (59b4267)
  • server: sanitize MCP tool output against prompt injection (4331183)
  • server: UTF-8 + stdout-guard hardening for the MCP stdio transport (2fa4a4d)
  • session: Codex CLI session provider for mine_sessions / discover (207152d)
  • shared: centralised path accessors + invariant test (3a32cc8)
  • spring: enrich @Autowired/constructor metadata with call-site hints (469534e)
  • ssrf-guard: add allowPrivateNetworks opt-in for local LLM endpoints (46ac4d3)
  • subproject: add a remote repo as a subproject in one shot via git_url (dd440bc)
  • tools: add detail_level=minimal knob on search/get_outline/find_usages (b5af6ef)
  • tools: add get_minimal_context — single-call orientation entrypoint (b02a2a1)
  • tools: add get_suggested_questions for ranked review checklists (c6090c3)
  • tools: add named graph snapshots + diff for tracking evolution (22d6e4b)
  • tools: add traverse_graph BFS walker with token budget (7485574)
  • tools: coerce empty-string MCP args to undefined for filter fields (0357e7c)
  • tools: export the dependency graph as GraphML / Cypher / Obsidian (6c72ff1)
  • tools: Knowledge Agent MCP surface — build/list/query/delete corpus (3401e9d)
  • topology: cross-project topic tunnels via entity registry (7360aee)
  • utils: atomicWriteJson helper + apply at all state-file write sites (470b83f)
  • viz: community-aggregation helper for large-graph visualisation (0c36fb3)
  • vscode-extension: on-save reindex extension (45d53a1)

Bug Fixes

  • ai: classify caller-driven aborts in withRetry as kind=aborted (c01a854)
  • app: declare @types/node directly so tsc -p tsconfig.main.json works under pnpm (49e5502)
  • config: atomic write for global JSONC config mutations (d22be14)
  • daemon: atomic write for PID file + atomic stale-lock takeover (5c0f5ea)
  • daemon: identity-token PID-reuse guard for daemon lifecycle (e948a22)
  • db: bound WAL growth and add periodic checkpoint to long-lived stores (68b4157)
  • db: centralise symbols_fts DDL so repair-fts cannot drift from schema (89a1bea)
  • dead-code: never flag symbols that have any incoming call/ref edge (a3fc0e0)
  • git-worktree: use fs.realpathSync.native for Win32 8.3-shortname normalisation (b3d5f41)
  • indexer: normalize relTarget separators when resolving import edges (fc28bfb)
  • indexer: parse tsconfig.json as JSONC to recover path aliases (3ac3cd9)
  • indexer: serialize register_edit and reindex through the same lock (918921f)
  • indexer: suppress shrinkWarning + execFileSync for git rev-parse (5f0cbf1)
  • navigation: explicit degradation signal for semantic search without AI (6bbeb53)
  • pin zod to 4.3.6 via pnpm.overrides (4.4.x breaks dist/cli.js) (4cf12c7)
  • refactoring: normalize result paths to forward slashes for cross-platform consistency (848f668)
  • resolver: parse tsconfig.json as JSONC, not strict JSON (5cadb07)
  • security: chmod 0700 on ~/.trace-mcp and 0600 on local SQLite stores (0c0fac2)
  • security: keep hook source lookup inside the trace-mcp install tree (32bcda7)
  • security: validate git refs and replace shell-mode execSync with execFileSync (3b08ed0)
  • security: validate git_ref before passing to git --branch in subproject_add_repo (e197184)
  • security: wire SSRF guard into AI provider fetches and git-clone path (b7fb294)
  • ssrf-guard: import LookupAddress from node:dns instead of node:dns/promises (8f1e184)

Documentation

  • bump headline figures to 99% and refresh hero copy (43d12e0)
  • confidence: clarify trigger contract + add SQL-level regression tests (f4a85bd)
  • readme: add CI status badge (33169e4)
  • update contributor instructions for pnpm (3a4344a)

Tests

  • ci: align test-side realpath with production native binding (782097b)
  • ci: fix 7 baseline Windows-only failures (path separators + 8.3 names) (82ab7eb)
  • cover remaining Windows-runner failures from cross-platform CI (086aedd)
  • cover the long-tail Windows-runner failures from cross-platform CI (6075495)
  • docs: regression test for numeric README claims + sync stale numbers (1b18d46)
  • impact,refs: cover resolution_tier surfacing (4915eb1)
  • markdown: include .qmd in supportedExtensions assertion (a38c18a)
  • perf: de-flake batched-inserts benchmark across CI runners (c9f8988)
  • perf: re-deflake batched-inserts benchmark — loosen to regression guard (d524b1e)
  • perf: skip batched-inserts benchmark on Windows runner (a434dcf)
  • security: cover hook-source path-traversal validators (d414327)
  • security: make path expectations Windows-safe (61e3345)

Chores

  • app: migrate packages/app from npm to pnpm (3d75a19)
  • migrate root package manager from npm to pnpm (d36486c)
  • security: drop unused restrictHomeDirPerms helper (4b5b827)
  • wip: version-stamp init helper + daemon session change (cd45cde)

CI/CD

  • also run on push to master (c2382ca)
  • switch CI install path to pnpm + add cross-platform test matrix (6bc2f7a)

1.33.0 (2026-04-30)

Features

  • app: Sprint 1B — per-project guard mode toggle on the project list (20c1fd4)
  • app: Sprint 2 — onboarding, coach default, version contract, uninstall (39b262f)
  • guard: add manual bypass + auto-degradation for unresponsive MCP (4709803)
  • guard: Sprint 1A — rich status sentinel + hook v0.8 (modes + stall detection) (c857cab)
  • guard: v0.9 — doc-tour hint for .md reads in source dirs + deny ls on source paths (465dd50)
  • plugins: add Anthropic (Python + npm) and react-router coverage (104c47a)
  • retrieval: output-token efficiency phases 1-5 (3120c6a)

Bug Fixes

  • app: open Request links in default browser via shell.openExternal (dad18cf)
  • app: show "Restart to install" after npm-install update (ed82585)
  • guard: close retry-bypass loophole, add heartbeat fallback (9741210)

Documentation

  • landing: tighten hero CTA, add trust line, reword metrics (decdf45)

Chores

  • guard: cross-platform hook resolution + Sprint 2 cleanups (937621a)

1.32.7 (2026-04-29)

Features

  • app: MCP Clients screen — show "Update" when on-disk entry drifted (eab5423)
  • init: generic per-client config status + trace-mcp clients status (ecee7e7)

Bug Fixes

  • daemon: keep registered projects on graceful shutdown (fb40795)
  • landing: tighten hero, lift red CTA above the fold, move metrics to proof strip (6255652)
  • mcp: keep trace-mcp tools eager in Claude Code via alwaysLoad (1e739ce)

Chores

1.32.6 (2026-04-29)

Bug Fixes

  • app: augment PATH + prefer existing node version for in-app updates (5452d11)

1.32.5 (2026-04-28)

Bug Fixes

  • daemon: auto-register project on first MCP connect (ac112c6)

1.32.4 (2026-04-28)

Bug Fixes

  • cli: import detectGuardHook + detectProject + missing types in init (e293a78)

1.32.3 (2026-04-28)

Bug Fixes

  • cli: import detectMcpClients in init command (cd4871f)
  • install: drop simple-git-hooks from postinstall (c3286d7)

1.32.2 (2026-04-28)

Bug Fixes

  • app: coalesce remaining res.statusCode → number ?? 0 (#116) (3482f8f)

1.32.1 (2026-04-28)

Bug Fixes

  • app: drop duplicate resolveNpmBin/Root + tighten statusCode types (#115) (627ec43)

Chores

  • landing: bump 'up to 97%' to 'up to 99%' in remaining copy (0fc5534)

1.32.0 (2026-04-28)

Features

  • docs: full SEO meta, favicon set from electron tray icon, PWA manifest (7217e11)
  • homepage: mobile above-the-fold CTA, trust badges, red primary CTA (8b6a897)
  • init: add AMP, Warp, Factory Droid MCP clients (#111) (9235afb)
  • recomputation narrative + knowledge-graph markdown indexing (#112) (b68f61f)

Bug Fixes

  • homepage: eliminate horizontal scroll on mobile (c97eab0)
  • landing: collapse hero to single column on mobile (af7bb71)
  • landing: mobile hero — make 40–50% the lead metric with a value-prop label (589393f)
  • landing: mobile hero — promote 99% as the single hero metric (3a6475a)
  • landing: mobile overflow on use cases grid and install terminal (bb588cd)
  • landing: split 'up to' off the giant Doto numeral on mobile (fbce556)
  • merge: drop duplicate imports + restore missing path import (#113) (d06e42d)

Documentation

  • homepage: restructure around "code intelligence layer for AI agents" positioning (a99118d)
  • landing: drop pilot CTAs, send users straight to install/repo (6c44b7c)
  • positioning: reframe as optimization layer for LLM apps, honest token numbers (3b552c3)
  • readme: add Star History chart (614cf32)

Chores

  • ci: hold off on electron major bumps (861c75a)
  • ci: hold off on vite + plugin-react major bumps in app (02cafac)
  • ci: hold off on web-tree-sitter minor/major bumps (45b303f)
  • ci: ignore major bumps for @types/node (20702a3)
  • ci: include chore/ci/build in release-please changelog (135e1ce)
  • deps: bump typescript to 6.0.3 (root + app) (#103) (836d4cf)
  • deps: bump zod from 3.24 to 4.3.6 (#105) (3e774ac)
  • security: bump electron to 41.3.0, drop stale pnpm-lock (#109) (4b45f87)
  • tooling: introduce Biome as formatter (root) (#110) (7149fa5)

CI/CD

  • release: sign Electron release artifacts with SLSA provenance (#108) (1ac88ec)
  • security: add CodeQL, Semgrep, OSSF Scorecard, Dependabot (f252ce2)
  • security: pin all GitHub Actions by SHA, add top-level read perms (71253c0)

1.31.0 (2026-04-24)

Features

  • init: Hermes Agent as a supported MCP client (a8a19ef)
  • session-providers: Hermes Agent session provider + SessionProvider interface (b44edbc)

Bug Fixes

  • updater: skip auto-update in dev checkouts (a439fb6)

Refactoring

  • init: extract shared md-block helper from claude-md.ts (869f42f)

Documentation

  • benchmark: update with v1.30 results (92.8% reduction) (15ea976)

1.30.0 (2026-04-23)

Features

  • ai: add Vertex AI and Voyage providers, retrieval task hint (c566738)
  • analysis: symbol-level bottlenecks + Stress Test hotspots UI (1ea7b7a)
  • plugins: add aws-s3 / supabase / sortable, Laravel sub-plugins, expanded coverage (9586790)

Bug Fixes

  • code-smells: skip markdown and other non-code files (1199783)
  • darwin: prime amfid for prebuilt native modules (f78e838)

Refactoring

  • plugin-api: add PluginRegistry.createWithDefaults factory (e8964ac)

Documentation

  • plan: session-providers implementation plan (f6b4d0a)

1.29.0 (2026-04-22)

Features

  • analysis: edge bottlenecks + app Quality tab + bottleneck graph overlay (872d535)
  • plugins: add ioredis, jose, nodemailer, redis-py, gunicorn, uvicorn plugins (522c43c)
  • plugins: expand php-ecosystem coverage to 12 more packages (d87e621)
  • quality: add debug-artifact smell, size/complexity antipatterns, AST clone detector (c05ac2b)
  • server: add tools.agent_behavior config for discipline rules (8984118)
  • subproject: cross-service endpoint literal scan + Nuxt/httpx/aiohttp/urllib (21537e0)

Bug Fixes

  • ai: stamp embedding model+dim and reindex on mismatch (2f2d923)
  • app: harden pending-update lifecycle (cd998d3)
  • env-indexer: strip */.env patterns from fast-glob ignore list (d057ffe)
  • hooks: exempt .env.example/.env.sample templates from guard (217e9ec)

Documentation

  • add Max-tier agent behavior, app gallery, and refreshed comparisons (10f29b7)

1.28.0 (2026-04-21)

Features

  • plugins: add Python ecosystem integration plugins (741b092)

Bug Fixes

  • indexer: resolve asset imports and TS re-exports across the graph (6f76025)

Performance

  • app: custom FPS overlay + disable halo to lift graph FPS (3fa4038)
  • app: re-enable GPU compositing for graph explorer (6633456)
  • app: upgrade cosmos.gl to 3.0 beta and rework label placement (601e069)

1.27.0 (2026-04-20)

Features

  • app: open selected graph node in installed IDE (4ca5e22)

Bug Fixes

  • app: robust Update button with scratch cleanup, --force, and visible errors (9028793)
  • build: bundle deps via createRequire to survive spaced install paths (65e9f3f)
  • postinstall: match new release asset naming (-arm64-mac.zip / -mac.zip) (27200ba)
  • updater: pre-clean scratch dirs and back off on repeated failures (b7a647c)

1.26.0 (2026-04-20)

Features

  • ai: per-capability gates and empty-string config hygiene (ad7f5e8)
  • app: Ollama control panel in Settings (2e5d374)
  • app: tinted edge colors and camera-interaction lock in graph explorer (7ca42db)
  • init: stable launcher shim for MCP registration (1b6eb25)

Bug Fixes

  • app: capture streaming buffer before setState in AskTab (558ebc7)
  • daemon: launchd bootstrap/kickstart + startup health wait (c78115a)
  • db: idempotent file upsert via ON CONFLICT (1440d9f)
  • init: drop stale {{tool_name}} template and clean up legacy hooks (250d586)

Documentation

  • add dark-mode graph screenshot and refresh app images (e3ab628)

Tests

  • launcher: accept either probe failure on CI (d83d14c)

1.25.0 (2026-04-18)

Features

  • app: graph explorer expansion and renderer UI polish (c763318)
  • app: hardened staged auto-update with SHA-256 + Gatekeeper (757061a)
  • daemon: unified lifecycle, idle auto-exit, and subdir→parent routing (317a792)
  • indexer: isolate workspaces in framework and file-projection edges (1021f5b)
  • viz: derive community labels from dominant path prefix (b676c17)

Performance

  • indexer: parallel file extraction via worker pool (a8f886d)

Documentation

  • README refresh, desktop app section, comparisons page (a725773)

1.24.0 (2026-04-17)

Features

  • add landing page for trace-mcp.com (a515c6c)
  • ai: track AI request activity + rename ollama default model (259afe4)
  • app: GPU-accelerated graph explorer (cosmos.gl) (3ce00e2)
  • blade: extract script src asset references (e250acc)
  • daemon: unified stdio session with proxy⇄full auto-switching (52d5392)
  • indexer: phantom externals + file-level projection + TS call/type edges (69ce68e)
  • js-viz (Chart.js/vue-chartjs/marked) + php-ecosystem (symfony-dom-crawler/google-apiclient/laravel-ai) plugins (cb61078)
  • landing: add ASK/GET examples, cross-language edge diagram, FAQ, use cases (a5418c5)
  • laravel: medialibrary + eloquent-sortable + composer Package Discovery (35cb8b8)
  • nextjs: file-based entry point edges for App/Pages Router + metadata (deca9b4)
  • Nuxt 3/4 entry points, custom prefix parsing, improved detection (a475856)
  • nuxt: middleware/layout/plugin/route auto-registration edges (8401327)
  • PHP call graph resolver — symbol-level calls/heritage edges (653818f)
  • PHP property and constant access edge resolution (8f4f66f)
  • PHP type-aware call resolution + class references (f114291)
  • scan Blade templates for PHP function calls + workspace-aware resolution (928fec1)
  • structural member_of edges + class-fallback for unresolved methods (6ff4e88)
  • Vue dynamic component references via TS/JS/Vue content scanning (fcb8112)
  • vue: Laravel Nova + Blade component entry points, SSR marker (33e5f55)

Bug Fixes

  • db: schema v20 backfills seed edge types on existing DBs (a1a5e6f)
  • eliminate client call scanner false positives (7248443)
  • init: detect running Claude Desktop to avoid config overwrite (6d02023)
  • landing: dynamic version from npm registry + terminal whitespace (1b0911f)
  • landing: improve readability — body text uses primary, headings beefed up (0470041)
  • make dir argument optional in index command, default to cwd (cd7ee1e)
  • self-first endpoint matching for client calls (227d59d)
  • strict project_group isolation — ungrouped services no longer leak (5d828ee)
  • workspace assignment on fast path + broader default include patterns (65d7433)
  • workspace naming, parent DB route fallback, and client_calls FK migration (42517e0)

Refactoring

  • community labels show dominant dir, pack-context models/feature-scope use FTS (a9d089e)
  • redesign landing page in Nothing design system (4f4bda1)

1.23.1 (2026-04-15)

Bug Fixes

  • app: remove unused trace-mcp runtime dependency (7ac57c7)

1.23.0 (2026-04-15)

Features

  • add Anthropic, Gemini, and OpenAI-compatible AI providers (960eb13)
  • add PHP import edge resolver for use statement resolution (836d10a)
  • add service group management UI and API (4646230)
  • app: add model-select and multiselect controls for AI settings (25bb2bf)

Bug Fixes

  • add workspace isolation to PHP import resolver (5c8d9cf)
  • isolate cross-service endpoint matching by project_group (0630908)
  • prevent topology contract duplication, false endpoints, and stale edges (79f2ad1)

Tests

  • add tests for topology fixes and PHP import resolver (11a4ddb)

1.22.0 (2026-04-15)

Features

  • add MCP ToolAnnotations to all tools for Glama TDQS scoring (5be916b)
  • add security context export for MCP server analysis (7b685c4)
  • add stdio proxy mode and lifecycle management (722579e)
  • redesign AskTab with provider setup CTA and settings deep-linking (d55226e)

Bug Fixes

  • add pre-flight check in GraphExplorer to prevent raw error display (eb1e06b)
  • match LICENSE text to SPDX Elastic-2.0 canonical template (717951d)
  • move frameRequested declaration before first use in visualize (ee86d7b)
  • remove extra text from LICENSE for exact SPDX template match (6b0a6e0)
  • split license into standard ELv2 + ethical addendum (0a9ccd3)
  • unset ELECTRON_RUN_AS_NODE in electron dev script (1c2c21c)
  • use valid SPDX license identifier for Elastic-2.0 (11e128b)

Documentation

  • add usage guidelines and output format to all tool descriptions (2b544a5)

1.21.2 (2026-04-14)

Bug Fixes

  • ci: pass --repo to gh commands in release notes step (8b1b9a1)

1.21.1 (2026-04-14)

Bug Fixes

  • sync lock file and make serve the default command (0e2dd5a)

1.21.0 (2026-04-14)

Features

  • ai: add streaming inference and ask command with code context (d96fe86)
  • analytics: expand known-packages catalog with deprecation tracking (538e479)
  • app: add Windows platform support with custom tab bar and installer (5ff2bda)
  • app: extract daemon-lifecycle module and auto-start daemon from tray (a255a6e)
  • lang: add 10 new language plugins (Ada, Apex, D, Nim, Pascal, PL/SQL, PowerShell, Solidity, Tcl, VHDL) (42dca87)
  • lang: enhance regex-base with scope tracking, doc comments, and multi-line signatures (1c6b6ae)
  • lang: improve regex-based plugins for Clojure, COBOL, Common Lisp, and 7 others (354023b)
  • rename "federation" to "subproject" across entire codebase (a8ec5ab)
  • server: add compact_schemas option to reduce tool schema token overhead (b9f98ac)

[Unreleased]

Breaking Changes

  • rename: "federation" → "subproject" — The concept formerly called "federation" is now "subproject". A subproject is any working repository that is part of your project's ecosystem: microservices, frontends, backends, shared libraries, CLI tools, etc. This affects:
    • CLI: trace-mcp federationtrace-mcp subproject (alias sub)
    • MCP tools: get_federation_graphget_subproject_graph, get_federation_impactget_subproject_impact, federation_add_reposubproject_add_repo, federation_syncsubproject_sync, get_federation_clientsget_subproject_clients, visualize_federationvisualize_subproject_topology
    • Config: topology.auto_federationtopology.auto_discover
    • REST API: /api/projects/federation/api/projects/subprojects
    • DB table: federated_repossubprojects (auto-migrated)
    • Source directory: src/federation/src/subproject/

1.20.1 (2026-04-13)

Bug Fixes

  • resolve SQLite migration crashes and daemon PATH for launchd (33ea80a)

1.20.0 (2026-04-13)

Features

  • add Class Hierarchy Analysis (CHA) for polymorphic call resolution (#55) (7b193ca)

Bug Fixes

  • align get_tests_for with graph test_covers edges (#56) (1cfde2e)
  • exclude CLI entry points from get_dead_exports false positives (#53) (3abf971)
  • resolve method calls on parameter-annotated instances (#54) (46c3cbe)

1.19.0 (2026-04-12)

Features

  • add decision memory system for cross-session knowledge (292a824)
  • add Filament and Electron framework plugins (dbf16fa)
  • add move, change-signature, and plan-refactoring tools (5e2f4ae)
  • add technology coverage, service management, and UI improvements (56817aa)
  • scope federations to projects with auto-discovery (ca430c6)

Bug Fixes

  • update tool registrations and fix visualize test assertions (6d59011)

Documentation

  • update documentation for refactoring tools and decision memory (423675d)

1.18.0 (2026-04-12)

Features

  • pin app to macOS Dock after install (85b2b63)

Bug Fixes

  • include assets and icon in electron-builder package files (ace9a85)

1.17.0 (2026-04-12)

Features

  • default to max enforcement level, add install-app CLI command with retry (f156305)

Bug Fixes

  • handle nullable topoStore in visualize tool (e955361)

1.16.1 (2026-04-12)

Bug Fixes

  • package.json (4497e51)
  • resolve TypeScript errors in visualize modules (10f846f)

1.16.0 (2026-04-12)

Features

  • add CORS headers to HTTP server for Electron renderer (9a39031)

Bug Fixes

  • exclude vendor dirs from graph visualization and clear state on error (73e46ef)
  • simplify artifact upload glob and remove redundant arch from yml (01a2660)

1.15.2 (2026-04-12)

Bug Fixes

  • correct electron-builder artifact glob for macOS zip upload (1c92616)

1.15.1 (2026-04-12)

Bug Fixes

  • consolidate electron-builder config to prevent asar packaging failure (02dfb8f)

1.15.0 (2026-04-12)

Features

  • add --granularity, --symbol-kinds, --hide-isolated flags to CLI visualize (ec71946)
  • async DB + pytest integration plugins (48e0ab9)
  • clean topology data (federation, services) on project removal (9fffa26)
  • daemon mode — multi-project serve-http with REST API, SSE events, and stdio daemon awareness (9900500)
  • Electron app — auto-updater, GPU crash recovery, file browser, federation panel (95b6c79)
  • Electron app — redesigned icons, settings UI overhaul, clients tab, graph explorer improvements (9232066)
  • federated graph visualization, session landmarks, daemon client naming (c88a257)
  • get_untested_symbols tool + per-symbol test reach in change impact (7cb554c)
  • graph visualization — light/dark theming, minimap, BFS highlight depth (2f3bbc0)
  • implicit workspace detection + per-workspace framework plugin activation (6129f59)
  • LSP enrichment — 4-tier edge resolution confidence, schema v19, SQLite batch chunking (acf0ec4)
  • menu bar app — Electron tray app, installer, init wizard integration, CI release workflow (63bda06)
  • Next.js plugin — optional catch-all routes, 2-level intercepting routes, route segment config, use client/cache directives (8b39280)
  • Next.js plugin — src/ prefix support, new file conventions (forbidden, unauthorized, metadata, instrumentation, proxy) (e623fd1)
  • ONNX local embeddings + Signal Fusion search — zero-config semantic search with multi-channel WRR ranking (b0ce8e3)
  • post-update migrations — auto-migrate hooks, config, CLAUDE.md, and reindex after version change (aba1f9c)
  • Python language support — edge resolvers, CFG patterns, visibility, docstrings (23953ed)
  • symbol-level graph, isolated-node filter, monorepo federation fix (8f3e55b)
  • workspace-aware module resolution + config exclude normalization (0376ae1)

Bug Fixes

  • replace dynamic await import() with static http import in postinstall-app.mjs (67330b9)
  • set renders_component edge type category to 'nuxt' in NuxtPlugin (967c613)
  • visualize_graph file mode now seeds by symbol nodes, collapses to file edges (e36e321)

Performance

  • eliminate redundant queries in graph visualization (b4d7dfa)

Refactoring

  • extract setupProject, add REST API endpoints, consolidate CI (3b6c23f)
  • extract shared resolveSymbolInput utility, improve tool robustness (3fa2e0c)

Documentation

  • update README, CLAUDE.md, configuration, and MCP instructions for LSP, ONNX, Signal Fusion, untested symbols (5ed61af)

1.14.1 (2026-04-09)

Refactoring

  • Improve project root detection logic (03ba367)

1.14.0 (2026-04-09)

Features

  • add workspace/monorepo fallback with deep glob patterns when root has no direct source files (c62d89c)

Bug Fixes

  • use result.isErr() instead of result.ok for neverthrow Result check (62edec8)

1.13.0 (2026-04-09)

Features

  • add auto-updater with configurable check interval (b26c851)
  • add budget defaults, improve analytics and tool-gate (ea48038)
  • add confidence levels and methodology disclosure to analytical tools (dc6a9d8)
  • add discover_claude_sessions for multi-project federation (4bde3fe)
  • add git worktree support, visualize CLI command, and auto-update serve flow (de755c3)
  • add pack-context strategies (core_first, compact) and budget reporting (e539609)
  • add plan_turn opening-move router with insertion-point suggestions (9ee62bf)
  • add semantic search modes, LRU result cache, and embed_repo tool (b4002c2)
  • add skills directory with trace-mcp usage guides (ef37023)
  • enrich empty-result evidence with isolation verdict and relation tool suggestions (726e6a8)
  • refactor Dart plugin and improve CSS/JSON/YAML/Python/Kotlin language plugins (e19c338)
  • refactor federation manager into focused modules (1d29a02)
  • upgrade hooks to v0.6.0 with per-session repeat-read dedup (8675b60)

Bug Fixes

  • remove DENY_MARKER cycle from guard hook, write initial state on first deny (1f96374)
  • swap stat order in file_mtime to prevent multi-line output on Linux (c5f6416)

Refactoring

  • remove file-watcher module (dfe1e0d)

Documentation

  • update README with new tools and feature highlights (7106537)

1.12.0 (2026-04-07)

Features

  • add configurable file logging with rotation (3215186)
  • add decorator/annotation extraction and filtering (c0f6646)
  • add Laravel Horizon, Cashier, Scout, and Socialite plugins (24089c0)
  • add Tailwind CSS integration plugin (bbbb2bb)
  • expand project root markers, add progress tables, improve evidence (d6c77db)

Documentation

  • update README comparison table for accuracy (aff2dd6)

1.11.0 (2026-04-07)

Features

  • add recursive multi-project technology coverage detection (606d753)

Refactoring

  • Improve project root detection logic (38d31e6)

1.10.0 (2026-04-07)

Features

  • add CI project-aware reports with domain, ownership, and deployment analysis (54a2efa)

Refactoring

  • extract federation manager helper methods (e3739a2)
  • extract indexer pipeline and file-persister helper methods (e064db3)

Tests

  • add topology DB and contract parser tests (c791bcc)

1.9.0 (2026-04-07)

Features

  • add advanced .traceignore (2f2e5b5)
  • add federation schema diffing, contract versioning, and federated search (e43e590)
  • add Junie, JetBrains AI Assistant, and Codex MCP client support (c25aa38)
  • add server PID tracking, improved status output, and tweakcc integration (a7ec015)
  • migrate 16 language plugins from regex to tree-sitter (3616b2d)

Refactoring

  • extract Laravel edge resolvers into sub-modules (ca88696)

Documentation

  • strengthen apply_codemod enforcement rule in CLAUDE.md (bd4e571)
  • update benchmarks to 11 categories and refresh tool counts to 120+ (e2aa5cb)

Tests

  • add server tool-gate, explored-tracker, and consultation-markers tests (703ef1b)

1.8.0 (2026-04-07)

Features

  • add JSONC-safe config read/write with migration support (7ee246b)

Performance

  • optimize context bundle token efficiency (53a5d38)

1.7.0 (2026-04-07)

Features

  • add benchmark scenarios for find_usages, context_bundle, type_hierarchy, tests_for (d2a85d5)
  • add indexing progress tracking with CLI status/remove commands (ca1b539)
  • block Agent(Explore) subagents in guard hook v0.5.0 (8796857)
  • seed JSONC config template with all parameters on first run (5cb13fb)
  • support async extractSymbols in LanguagePlugin interface (3a92d9e)

Bug Fixes

  • align benchmark SQL with normalized edge_types table (2c7e472)
  • correct TypeScript typing in hook entry filter callback (47b4159)
  • update prompt templates to match current API response shapes (9e8cea2)

Documentation

  • add tweakcc system prompt routing guide (a5633c8)
  • expand CLAUDE.md with Agent anti-pattern table and Read-before-Edit optimization (7e4f930)

1.6.1 (2026-04-06)

Bug Fixes

  • deduplicate trigram batch by symbolId to prevent INSERT OR REPLACE conflicts (2fd4dfa)
  • skip missing child directories in multi-root workspace builds (270f114)
  • wrap CLI upgrade operations in try/catch for graceful error handling (a481bb5)

1.6.0 (2026-04-06)

Features

  • add apply_codemod tool for bulk regex find-and-replace (eeed93b)
  • add multi-root project support (858fc7f)

Refactoring

  • migrate from native tree-sitter to web-tree-sitter WASM (3544f0b)

1.5.4 (2026-04-06)

Refactoring

  • Update hook finding logic (7f5f4e5)

1.5.3 (2026-04-06)

Bug Fixes

  • ci: use npx npm@11 for publish instead of global npm upgrade (4d82eb7)

1.5.2 (2026-04-06)

Bug Fixes

  • ci: move TSUP_TARGET to job-level env and install latest npm for OIDC (b671be6)

1.5.1 (2026-04-06)

Bug Fixes

  • ci: set node22 tsup target for npm OIDC publish compatibility (ebb45f7)

1.5.0 (2026-04-06)

Features

  • add .traceignore support and shared ignore-pattern parser (0eae92d)
  • add AI concurrency config, expand known packages, simplify CI (0025c57)
  • add consultation markers, explored tracker, and guard hook v0.4.0 (eb87a86)
  • add duplication checking guidance to tools and instructions (53779fd)
  • add memory leak detector and inter-procedural taint analysis (aa752fd)
  • add session dedup, resume, and adaptive token budget (628a6bc)
  • add session snapshot, precompact hook, and worktree hooks (fd0a0f2)
  • enhance init with competing tool cleanup and error handling (4f6aa4a)

Bug Fixes

  • ci: improve risk scoring and split code/non-code file sections (2325f82)
  • ci: use last release tag as base for impact report (e9d12bf)
  • improve dead export detection accuracy (e4d8728)
  • store original export names in import specifiers across all languages (4d92110)

Refactoring

  • extract pipeline file persistence and edge resolution (cf91a9f)
  • extract server tool registration into modular register files (80baf81)
  • extract shared test utilities into tests/test-utils.ts (13938c4)
  • extract Store into repository pattern (0f43ee2)
  • narrow export visibility and minor cleanups across codebase (fc79331)
  • remove dead code and narrow export visibility (ff2c930)
  • reorganize source tree into domain subdirectories (279f583)

Documentation

  • add token reduction stat to README tagline (00dc91f)
  • update README with comparison tables, benchmarks, and .traceignore (4b8d84a)

Tests

  • add tests for init, runtime, tools, and AI pipeline (9219e2d)
  • expand conflict-detector coverage with fixture-based tests (8db3009)

1.4.1 (2026-04-05)

Bug Fixes

  • ci: upgrade to Node 24 and conditionally upgrade npm (d0484df)

1.4.0 (2026-04-05)

Features

  • add token optimization guidance to server instructions and hints (7487bfc)

1.3.1 (2026-04-05)

Bug Fixes

  • ci: restore npm upgrade for Trusted Publishing OIDC support (d4e1d92)

1.3.0 (2026-04-05)

Features

  • add 10 integration plugins (mcp-sdk, raw-sql, commander, tree-sitter, etc.) (a89feef)
  • enriched change impact with risk scoring, breaking changes, and diff-aware mode (511b474)
  • reduce tool calls and token waste across 7 optimizations (24ff690)
  • safer conflict resolution — comment-out instead of delete, scope to selected clients (8308564)
  • scan .github/workflows in project context discovery (3411e8a)
  • token efficiency improvements + .env security guard (1b22425)
  • Windows support for guard and reindex hooks (edaaaf5)

Bug Fixes

  • ci: bump Node from 20 to 22 to fix tsup DTS build (1ceb6d5)

1.2.2 (2026-04-05)

Bug Fixes

  • ci: auto-trigger CI on release-please PR branches (caa4edf)

1.2.1 (2026-04-05)

Bug Fixes

  • merge import specifiers on conflict instead of silently dropping (cd02674)
  • restore parseError used by 20 language/integration plugins (579c1fa)

1.2.0 (2026-04-05)

Features

  • add analytics system with benchmarks and session tracking (8a6650c)
  • add bundle management, file watcher, and health check CLI (220bc9c)
  • add claw-code MCP client support (0559ba8)
  • add quality gates, taint analysis, and evidence tools (23bf3a2)
  • integrate new features into server, CLI, and config (fbaf1d7)

Bug Fixes

  • ci: support impact reports for release-please auto-PRs (1bd53ac)

Performance Improvements

  • optimize indexer with concurrent extraction and FTS5 batch mode (c19273f)

1.1.0 (2026-04-05)

Features

  • add code smells scanner, consolidate imports, improve tool routing docs (9a2b66e)

1.0.11 (2026-04-05)

Bug Fixes

  • deps: suppress tree-sitter peer dependency warnings (0c5b030)
  • server: remove duplicate plan_batch_change tool registration (0e1143d)

1.0.10 (2026-04-05)

Bug Fixes

  • db: add missing workspace/is_cross_ws columns in migration v9 (8b263bd)

1.0.9 (2026-04-05)

Bug Fixes

  • ci: upgrade npm for Trusted Publishing OIDC support (requires >=10.9.2) (21069cc)

1.0.8 (2026-04-05)

Bug Fixes

  • ci: restore registry-url for npm OIDC auth (c2c66aa)

1.0.7 (2026-04-05)

Bug Fixes

  • ci: remove registry-url to let npm use OIDC for Trusted Publishing (a361917)

1.0.6 (2026-04-05)

Bug Fixes

  • ci: use npm Trusted Publishing (OIDC) instead of NPM_TOKEN (fe83e53)

1.0.5 (2026-04-05)

Bug Fixes

  • ci: sync package-lock.json with fastest-levenshtein dependency (638e87a)

1.0.4 (2026-04-05)

Bug Fixes

  • ci: add .npmrc with legacy-peer-deps for tree-sitter conflicts (bcf5c78)

1.0.3 (2026-04-05)

Bug Fixes

  • ci: chain publish job to release-please via outputs (09c0be3)

1.0.2 (2026-04-05)

Bug Fixes

  • ci: trigger publish on GitHub Release instead of tag push (90dfb5d)

1.0.1 (2026-04-05)

Bug Fixes

  • fix allowList key casing in .clabot for cla-assistant (6ca67a9)

1.0.0 (2026-04-05)

⚠ BREAKING CHANGES

  • get_task_context replaces manual chaining of search → get_symbol → get_context_bundle as the recommended workflow for AI agents starting work on a task. Server instructions updated to route agents to this tool first.

Features

  • add 23 new analysis tools — control flow, dataflow, SBOM, security, co-changes, history (0ba05dc)
  • add 24 new language plugins and improve existing parsers (c527bdd)
  • add get_task_context — graph-aware context engine for AI agents (fb7594f)
  • CI/PR change impact reports — blast radius, risk scores, test gaps (b88a2bf)
  • doctor command, conflict detection, init improvements (ef57785)
  • enhance existing tools — call-graph, components, events, flow, introspect, model (e68c344)
  • federation system — cross-repo graph linking and fuzzy search (54e0008)
  • PostToolUse auto-reindex hook + index-file command (dd31cc9)
  • runtime improvements, session tracking, savings telemetry, prompt system (44e7cdf)

0.1.1 (2026-04-04)

Features

  • 11 self-development MCP tools + TypeScript heritage graph + ESM import resolution (01b34d4)
  • 15 new analysis tools — graph, git, complexity, dead code, rename safety (0e39503)
  • 34 new language plugins + version feature detection (631f938)
  • 5 new MCP tools + search async upgrade (e93c247)
  • add monorepo support, external plugins, E2E tests (3e08490)
  • add NestJS, Next.js, Express framework plugins (2d45fca)
  • add optional AI semantic search (Ollama + vector store) (6088a0c)
  • ai: OpenAI embedding provider (a880ad7)
  • call graph tests, hybrid search tests, seed edge types fix, PageRank cache fix (6364f79)
  • core infra — TS heritage extraction, store introspection, watcher debounce (44247f8)
  • DB schema v12, BM25 tuning, pipeline batching, binary/gitignore filtering (7f203b9)
  • expand MCP server — 30+ new tool registrations, improved descriptions (5c4778d)
  • file watcher + hot-reload indexing in CLI (6037836)
  • Gin, Echo, Angular, Svelte integration plugins (e7fb8f8)
  • global config, project registry, CLI init/add/upgrade commands (dbfc4cf)
  • Laravel sub-plugins, new tools, Expo Router, integration tests (6c10709)
  • laravel: Filament v3 plugin — resources, panels, widgets, relation managers (8ecece4)
  • laravel: Livewire v2/v3 plugin integration (dde7fb0)
  • Mongoose, Sequelize, React Native plugins + 4 new tools (8571d81)
  • Nova, Expo Router, find_references + integration tests (88a741c)
  • organize integration plugins into category subdirectories (6e3e42f)
  • perf optimizations, Java extends fix, new plugins (Go/Kotlin/Rails/Zod) (c07ed57)
  • predictive intelligence, intent classification, runtime tracing, topology (0a9f9d9)
  • Prisma, TypeORM, Drizzle, GraphQL plugins + ORM e2e tests (8e94a0a)
  • Python ecosystem — Django, Flask, FastAPI, Celery, DRF, Pydantic, SQLAlchemy (acdcaf2)
  • reorganize plugin system — versioned languages, categorized integrations (c7d60c6)
  • security hardening, batch DB ops, dependency graph, dead export detection (6eda537)
  • Spring/Rails plugins, platform-specific RN edges, expanded dynamic tool registration (96d543b)
  • testing framework plugin + edge types for test coverage analysis (36271b9)
  • tRPC, Fastify, Socket.io, Zustand, React plugins + Django registration + fixes (5988e93)
  • wire EmbeddingPipeline into CLI serve command (4ecaa40)
  • zustand/redux state tool, security utils, dead-exports/references/hierarchy tests (a3c0f5f)

Bug Fixes

  • add missing handler/metadata fields to RouteRow and null-check file_id (4d942bf)
  • align n8n plugin tests with current implementation (cda3915)
  • Inertia edge resolution + integration tests exposing real bugs (c6fc041)
  • Kotlin heritage regex + Go/n8n/tRPC improvements (a649977)
  • ORM-specific edge type resolution in pipeline (62c7905)

0.1.0 — 2026-04-04

Added

  • Core engine — TypeScript AST parser, dependency graph builder, SQLite-backed symbol store
  • MCP server with 15+ tools: search, get_symbol, get_call_graph, get_change_impact, find_usages, get_feature_context, get_tests_for, get_project_map, and more
  • CLI with index, serve, and watch commands
  • File watcher — hot-reload indexing with debounce

Language plugins

  • TypeScript/JavaScript — heritage extraction, ESM import resolution
  • Python — Django, Flask, FastAPI, Celery, DRF, Pydantic, SQLAlchemy
  • Go — version-aware feature detection
  • Java — extends/implements extraction, Spring Boot plugin
  • Kotlin — heritage regex, version features
  • Ruby — Rails plugin, version features
  • CSS — version feature detection

Framework & integration plugins

  • Laravel — Livewire v2/v3, Filament v3, Nova, Blade, Inertia, sub-plugins
  • Vue / Nuxt — component graph, Inertia edge resolution
  • React / React Native — platform-specific edges, Expo Router
  • Next.js / Express / NestJS / Fastify — route & middleware extraction
  • tRPC / GraphQL / Socket.io — API edge types
  • Prisma / TypeORM / Drizzle / Mongoose / Sequelize — ORM-specific edges
  • Zustand / Redux — state management tool
  • Zod — schema validation edges
  • n8n — workflow plugin (25 tests)
  • Testing frameworks — edge types for test coverage analysis

Infrastructure

  • AI semantic search — Ollama + OpenAI embedding providers, vector store
  • Security hardening — input validation, security utils
  • Batch DB operations — optimized SQLite writes
  • Monorepo support — workspace detection, cross-package edges
  • External plugin system — dynamic tool registration
  • Plugin reorganization — versioned languages, categorized integrations

Fixed

  • Inertia edge resolution in integration tests
  • Bootstrap routing path normalization
  • ORM-specific edge type resolution in pipeline
  • Kotlin heritage regex parsing
  • Go/n8n/tRPC integration improvements
  • Missing handler/metadata fields in RouteRow + null-check file_id
  • n8n plugin test alignment with implementation
  • Seed edge types fix, PageRank cache fix

Changed

  • Pipeline performance optimizations
  • Deterministic watcher tests
  • Search upgraded to async