All notable changes to SocratiCode are documented here. This project uses Conventional Commits and Semantic Versioning.
1.8.5 (2026-05-05)
- graph: allow Go resolution for projects with golang.org/* module paths (8c26ed8)
- graph: resolve Go imports via go.mod module path (c156da1)
- graph: resolve Python sibling-flat imports in service-style monorepos (8921690)
- add note about MCP governance and JanuScope (bf36c0c)
1.8.4 (2026-05-04)
1.8.3 (2026-05-04)
1.8.2 (2026-05-04)
- cover JVM annotation and Scala callable edge cases (6a76ad4)
- extract JVM symbol names from declarations (019eba0)
- cover JVM annotations with parameters (1dbc1eb)
1.8.1 (2026-05-04)
- docs: replace broken Marketplace badges and surface listings in main README (8d6cb86)
1.8.0 (2026-05-03)
- extension: add VS Code and Open VSX extension (bbc6819)
- extension: harden review-flagged paths (562a946)
- extension: tighten graphPanel path and line-number bounds (c2d012f)
- extension: add Discord badge and hosted-edition pointer (9a197b3)
- extension: editor-neutral marketplace README with hero, badges and benchmarks (345c728)
- surface VS Code / Open VSX extension and Cursor Marketplace (d9459f8)
1.7.2 (2026-04-28)
- docker: include api-key header in external Qdrant readiness probe (812fcd8)
- docker: require HTTPS for QDRANT_API_KEY; deflake no-key test (7cdf21a)
1.7.1 (2026-04-27)
- graph: make C# namespace resolution deterministic (fc249fd)
- graph: resolve C# using directives via namespace scan (closes #33) (0aaf3f1)
- graph: tighten C# namespace regex; capture nested declarations (ea69a72), closes #34
1.7.0 (2026-04-27)
- impact: add symbol-level call graph and Impact Analysis tools (c356c42)
- impact: close gaps from review — Phase F API, scale + integration tests, language coverage (2d686a2)
- impact: wire Phase F into watcher; fix prototype-key crash; add real scale test (4e41b46)
- visualize: add interactive HTML graph explorer; British-English doc sweep (50d8853)
- visualize: symbol view as focus graph; UX polish & stats consistency (e4da769)
- visualize: use function replacers so vendored assets containing $& survive intact (081606f)
- add workflow examples to Context Artifacts section (2ad7b3d)
- readme: surface impact analysis & portability; fix Claude Code install (9d11397)
- Impact Analysis & symbol-level call graph. Four new MCP tools that go one level deeper than the file-import graph by tracking which functions call which:
codebase_impact— return the blast radius for a file or symbol (every file that transitively calls into it). Use BEFORE refactoring, renaming, or deleting code.codebase_flow— trace forward execution flow from an entry point. With no args, returns auto-detected entry points (orphan files, conventional names likemain(), framework routes likeapp.get(...), tests).codebase_symbol— 360° view of one symbol: definition, callers, callees with confidence levels.codebase_symbols— list symbols in a file or search by name across the project.
- Sharded Qdrant storage for the symbol graph: 27 name shards keyed by first lowercased character, 256 reverse-call file shards keyed by SHA1 first byte. Designed to scale to 100k+ files / 1M+ symbols with bounded memory via an LRU per-file payload cache.
- 18-language symbol & call extraction: TypeScript / JavaScript / TSX, Python, Go, Rust, Java, Kotlin, Scala, C#, C, C++, Ruby, PHP, Swift, Bash + a regex fallback for Dart/Lua/Svelte/Vue.
- Symbol graph builds automatically alongside the file-import graph during
codebase_indexandcodebase_graph_build.codebase_graph_statusnow reports symbol graph stats (files / symbols / edges / unresolved%). - Symbol graph removed automatically when
codebase_graph_removeis called.
- Java/Kotlin/Swift/Scala symbol extraction silently failed. ast-grep throws "Invalid Kind" for grammars where a queried node kind doesn't exist (e.g.
object_declarationis Kotlin-only, not Java). The outer try/catch inextractSymbolsAndCallsswallowed the error and returned only the<module>symbol, so 17 of 20 supported languages could regress without any test failure. Fixed via asafeFindAll(node, kind)wrapper applied to all 36 call sites inservices/graph-symbols.ts. Added 14 per-language regression tests covering Rust, Java/Kotlin/Scala, C#, C/C++, Ruby, PHP, Swift, Bash, and the regex fallback path. - Symbol graph crashed on prototype-key collisions (e.g. a method named
constructor,toString, orhasOwnProperty). The shard maps usedshard[name]bracket access on a plain{}, which returnedObject.prototype.constructor(a function) and threwexisting.push is not a functionduring persistence. Fixed by guarding all shard reads withObject.hasOwninservices/code-graph.tsandservices/symbol-graph-incremental.ts. Added a regression test intests/integration/symbol-graph-incremental.test.ts. tests/unit/logger.test.tswas order-dependent on the shell environment.currentLevelwas frozen at module load, soSOCRATICODE_LOG_LEVEL=debugin the developer shell broke the "does not emit debug at info level" assertion.services/logger.tsnow exposessetLogLevel/getLogLevel, and the test pins the level inbeforeEach/ restores inafterEach.
- Interactive HTML graph viewer —
codebase_graph_visualizenow accepts amodeparameter. Default"mermaid"keeps the existing text-diagram behaviour; new"interactive"mode generates a self-contained HTML page (vendored Cytoscape.js + Dagre — no CDN, works offline) and opens it in the user's default browser via theopennpm package. The page includes:- File view (every source file as a node, imports as edges, language colour-coded, circular deps highlighted in red)
- Symbol view toggle (functions / classes / methods as nodes, call edges between them — available when the symbol graph fits under the embed caps of 20k symbols / 60k call edges; above that the file view remains and a banner directs users to
codebase_impactfor symbol-level queries) - Sidebar with imports / dependents / per-file symbols (first 30 shown, link to
codebase_symbolsfor the rest) + action buttons for blast radius and call flow - Right-click a node → highlight its blast radius (reverse-transitive closure)
- Live search, six Cytoscape layouts (Dagre / force / concentric / breadth-first / grid / circle), PNG export, hover tooltips
open: falseparameter skips auto-launch — just returns the file path (useful in headless environments)
openadded as a runtime dependency for cross-platform browser launching (macOS, Linux, Windows).- Vendored Cytoscape.js 3.30.2 + Dagre 0.8.5 + cytoscape-dagre 2.5.0 under
src/assets/(copied todist/assets/on build). Total ≈ 650 KB; inlined into the HTML at generation time — zero network dependency at view time.
- Per-file incremental symbol-graph updates wired into the watcher /
codebase_update(Phase F). When aSymbolGraphMetaalready exists for the project AND ≤ 50 files changed,services/indexer.tsnow callsrebuildGraph(path, { skipSymbolGraph: true })plusupdateChangedFilesSymbolGraph(...), which patches only the affected name shards (≤ 27) and reverse-call shards (≤ 256). Above the threshold or on first index it falls back to a full rebuild. End-to-end measurement on a 1000-file synthetic repo: full rebuild 6.55 s, single-file Phase F update 197 ms (≈33×). SeeDEVELOPER.md§ "Real-world benchmark numbers" andtests/integration/symbol-graph-scale.test.ts.
1.6.1 (2026-04-17)
- add Zed support, per-IDE instruction paths, and strengthen graph triggers (270d402)
1.6.0 (2026-04-16)
- support global config fallback and configurable batch size (9d04c44)
- resolve relative paths for global config fallback and strict batch size validation (49b5b35)
- add CodeRabbit review expectations to PR template and contributing guide (afd2da2)
- add Discord community, Cloud section, and tool portability to README (a8b069a)
1.5.0 (2026-04-13)
- multi-platform plugin support (Cursor, Codex, Gemini CLI, VS Code) (529d1b2)
- correct spelling of "visualize" in GEMINI.md and update Codex installation instructions in README.md (b2333b5)
- consolidate README (61060d5)
- consolidate README — add feature comparison table and streamline sections (efec8dd)
1.4.1 (2026-04-12)
1.4.0 (2026-04-12)
- branch-aware collection naming via SOCRATICODE_BRANCH_AWARE (3a4139d), closes #19
- linked projects support via .socraticode.json and SOCRATICODE_LINKED_PROJECTS (61e868c), closes #20
- multi-collection search with client-side RRF fusion and deduplication (ad8db7f), closes #20 #19 #19 #20
- address CodeRabbit review feedback on tests (f09f417)
- address remaining CodeRabbit production code issues (f745d59)
- linked projects use base hash without branch suffix (fc3c298)
- provide git identity for temp repo commits in CI (ad2e3b9)
- resolve JVM imports in multi-module Maven/Gradle projects (5a734eb)
- update path handling and type imports in indexer and query tools (096f59d)
- use self-contained temp git repos in branch-aware tests (ffa8e95)
- add cross-project and branch-aware highlights to intro and Why SocratiCode (24faa10)
- add cross-project search and branch-aware indexing documentation (76e3ff5)
- add OpenCode setup instructions to README (0896164), closes #18
- add includeLinked and searchMultipleCollections tests (bf93e4a)
1.3.2 (2026-03-26)
1.3.1 (2026-03-24)
- add prepublishOnly script to ensure dist/ is rebuilt before publish (2f5b410)
1.3.0 (2026-03-19)
- add stylus to CSS resolution cases and getAstGrepLang mapping (f80eec4)
1.2.0 (2026-03-18)
- add env support for controlling indexing of dotfiles (7265247)
- add Svelte and Vue import parsing to dependency graph (4c2bd0c)
- auto-infer port from QDRANT_URL for reverse proxy support (507d823)
- add npx cache update instructions for MCP-only install (4cd113b)
- add Svelte/Vue to code graph language list (7b72cf0)
1.1.3 (2026-03-16)
- use relative paths for index keys to support shared worktree indexes (505fbd7)
- add auto-update instructions for Claude Code plugin (b26038a)
1.1.2 (2026-03-16)
- correct hooks.json format, remove explicit hooks path, and improve install docs (db69a2d)
1.1.1 (2026-03-16)
- correct Claude Code plugin install commands and add marketplace.json (157b353)
1.1.0 (2026-03-15)
- add Claude Code plugin with skills, agent, and MCP bundling (31e5d74)
- add SOCRATICODE_PROJECT_ID env var for shared indexes across directories (fadfd8a)
- add Claude Code worktree auto-detection to git worktrees section (d7c32d1)
- add git worktrees section to README (3cad30a)
- add multi-agent collaboration as a featured capability (72c7ce0)
1.0.1 (2026-03-04)
- add mcpName and read version dynamically from package.json (88c0e8f)