Skip to content

Latest commit

 

History

History
289 lines (170 loc) · 21.7 KB

File metadata and controls

289 lines (170 loc) · 21.7 KB

Changelog

All notable changes to SocratiCode are documented here. This project uses Conventional Commits and Semantic Versioning.

1.8.5 (2026-05-05)

Bug Fixes

  • 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)

Documentation

  • add note about MCP governance and JanuScope (bf36c0c)

1.8.4 (2026-05-04)

Bug Fixes

  • graph: pre-validate ast-grep grammar libraryPath to survive missing prebuilds (#44) (e6ce327)

1.8.3 (2026-05-04)

Features

  • embeddings: add LM Studio as a first-class embedding provider (#42) (332ee80)

1.8.2 (2026-05-04)

Bug Fixes

  • cover JVM annotation and Scala callable edge cases (6a76ad4)
  • extract JVM symbol names from declarations (019eba0)

Tests

  • cover JVM annotations with parameters (1dbc1eb)

1.8.1 (2026-05-04)

Bug Fixes

  • docs: replace broken Marketplace badges and surface listings in main README (8d6cb86)

1.8.0 (2026-05-03)

Features

  • extension: add VS Code and Open VSX extension (bbc6819)

Bug Fixes

  • extension: harden review-flagged paths (562a946)
  • extension: tighten graphPanel path and line-number bounds (c2d012f)

Documentation

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • visualize: use function replacers so vendored assets containing $& survive intact (081606f)

Documentation

  • add workflow examples to Context Artifacts section (2ad7b3d)
  • readme: surface impact analysis & portability; fix Claude Code install (9d11397)

Unreleased

Features

  • 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 like main(), framework routes like app.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_index and codebase_graph_build. codebase_graph_status now reports symbol graph stats (files / symbols / edges / unresolved%).
  • Symbol graph removed automatically when codebase_graph_remove is called.

Bug Fixes

  • 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_declaration is Kotlin-only, not Java). The outer try/catch in extractSymbolsAndCalls swallowed the error and returned only the <module> symbol, so 17 of 20 supported languages could regress without any test failure. Fixed via a safeFindAll(node, kind) wrapper applied to all 36 call sites in services/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, or hasOwnProperty). The shard maps used shard[name] bracket access on a plain {}, which returned Object.prototype.constructor (a function) and threw existing.push is not a function during persistence. Fixed by guarding all shard reads with Object.hasOwn in services/code-graph.ts and services/symbol-graph-incremental.ts. Added a regression test in tests/integration/symbol-graph-incremental.test.ts.
  • tests/unit/logger.test.ts was order-dependent on the shell environment. currentLevel was frozen at module load, so SOCRATICODE_LOG_LEVEL=debug in the developer shell broke the "does not emit debug at info level" assertion. services/logger.ts now exposes setLogLevel / getLogLevel, and the test pins the level in beforeEach / restores in afterEach.

Interactive Graph Explorer

  • Interactive HTML graph viewercodebase_graph_visualize now accepts a mode parameter. 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 the open npm 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_impact for symbol-level queries)
    • Sidebar with imports / dependents / per-file symbols (first 30 shown, link to codebase_symbols for 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: false parameter skips auto-launch — just returns the file path (useful in headless environments)
  • open added 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 to dist/assets/ on build). Total ≈ 650 KB; inlined into the HTML at generation time — zero network dependency at view time.

Performance

  • Per-file incremental symbol-graph updates wired into the watcher / codebase_update (Phase F). When a SymbolGraphMeta already exists for the project AND ≤ 50 files changed, services/indexer.ts now calls rebuildGraph(path, { skipSymbolGraph: true }) plus updateChangedFilesSymbolGraph(...), 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×). See DEVELOPER.md § "Real-world benchmark numbers" and tests/integration/symbol-graph-scale.test.ts.

1.6.1 (2026-04-17)

Documentation

  • add Zed support, per-IDE instruction paths, and strengthen graph triggers (270d402)

1.6.0 (2026-04-16)

Features

  • support global config fallback and configurable batch size (9d04c44)

Bug Fixes

  • resolve relative paths for global config fallback and strict batch size validation (49b5b35)

Documentation

  • 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)

Features

  • multi-platform plugin support (Cursor, Codex, Gemini CLI, VS Code) (529d1b2)

Bug Fixes

  • correct spelling of "visualize" in GEMINI.md and update Codex installation instructions in README.md (b2333b5)

Documentation

  • consolidate README (61060d5)
  • consolidate README — add feature comparison table and streamline sections (efec8dd)

1.4.1 (2026-04-12)

Bug Fixes

  • address CodeRabbit PR review feedback (00f7be1)
  • address CodeRabbit review findings (bb5e6c3)

1.4.0 (2026-04-12)

Features

  • 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

Bug Fixes

  • 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)

Documentation

  • 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

Tests

  • add includeLinked and searchMultipleCollections tests (bf93e4a)

1.3.2 (2026-03-26)

Bug Fixes

  • change SessionStart hook type from prompt to command (72e4a5f), closes #16

1.3.1 (2026-03-24)

Bug Fixes

  • add prepublishOnly script to ensure dist/ is rebuilt before publish (2f5b410)

1.3.0 (2026-03-19)

Features

  • add CSS @import tracking and path alias resolution to dependency graph (c7e160c)

Bug Fixes

  • add stylus to CSS resolution cases and getAstGrepLang mapping (f80eec4)

Documentation

  • update language support and graph docs for CSS @import and path aliases (f4c5518)

1.2.0 (2026-03-18)

Features

  • 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)

Bug Fixes

  • only call ensureOllamaReady when using Ollama provider (#8) (4d255f5), closes #7

Documentation

  • 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)

Bug Fixes

  • use relative paths for index keys to support shared worktree indexes (505fbd7)

Documentation

  • add auto-update instructions for Claude Code plugin (b26038a)

1.1.2 (2026-03-16)

Bug Fixes

  • correct hooks.json format, remove explicit hooks path, and improve install docs (db69a2d)

1.1.1 (2026-03-16)

Bug Fixes

  • correct Claude Code plugin install commands and add marketplace.json (157b353)

1.1.0 (2026-03-15)

Features

  • add Claude Code plugin with skills, agent, and MCP bundling (31e5d74)
  • add SOCRATICODE_PROJECT_ID env var for shared indexes across directories (fadfd8a)

Documentation

  • 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)

Bug Fixes

  • add mcpName and read version dynamically from package.json (88c0e8f)