2.0.0 (2026-02-11)
- Re-indexing required due to model and chunking changes
1.6.0 (2026-02-10)
- Search Quality Improvements — Weighted hybrid search with intent-aware classification
- Intent-aware query classification (EXACT_NAME, CONCEPTUAL, FLOW, CONFIG, WIRING)
- Reciprocal Rank Fusion (RRF, k=60) for robust rank-based score combination
- Hard test-file filtering (eliminates spec contamination in non-test queries)
- Import-graph proximity reranking (structural centrality boosting)
- File-level deduplication (one best chunk per file)
- Evaluation Harness — Frozen fixture set with reproducible methodology
- Embedding Upgrade — Granite model support (47M params, 8192 context)
- Chunk Optimization — 100→50 lines, overlap 10→0, merge small chunks
- Dependencies:
@xenova/transformersv2 →@huggingface/transformersv3 - Indexing: Tighter chunks (50 lines) with zero overlap
- Search: RRF fusion immune to score distribution differences
- Intent-blind search (conceptual queries now classified and routed correctly)
- Spec file contamination (test files hard-filtered from non-test query results)
- Embedding truncation (granite's 8192 context eliminates previous 512 token limit)
Re-index required after upgrade due to model and chunking changes:
- Existing
.codebase-context/indices from v1.5.x incompatible - Run
refresh_index(incrementalOnly: false)or delete.codebase-context/folder
1.5.1 (2026-02-08)
- use cosine distance for vector search scoring (b41edb7)
1.5.0 (2026-02-08)
- Preflight evidence lock:
search_codebaseedit/refactor/migrate intents now return risk-aware preflight guidance with evidence lock scoring, impact candidates, preferred/avoid patterns, and related memories. (#21) - Trust-aware memory handling: Git-aware memory pattern support and confidence decay so stale or malformed evidence is surfaced as lower-confidence context instead of trusted guidance. (#21)
- Search ranking: Removed framework-specific anchor/query promotion heuristics from core ranking flow to keep retrieval behavior generic across codebases. (#22)
- Search transparency:
search_codebasenow returnssearchQualitywith confidence and diagnostic signals when retrieval looks ambiguous. (#22) - Incremental indexing state: Persist indexing counters to
indexing-stats.jsonand restore them on no-op incremental runs to keep status reporting accurate on large codebases. (#22) - Docs: Updated README performance section to reflect shipped incremental refresh mode (
incrementalOnly).
- No-op incremental stats drift: Fixed under-reported
indexedFilesandtotalChunksafter no-change incremental refreshes by preferring persisted stats over capped index snapshots. (#22) - Memory date validation: Invalid memory timestamps now degrade to stale evidence rather than being surfaced as semi-trusted data. (#21)
1.4.1 (2026-01-29)
- lint: disable no-explicit-any rule for AST manipulation code (41547da)
- Memory System: New
rememberandget_memorytools capture team conventions, decisions, and gotchas- Types:
convention|decision|gotcha - Categories:
tooling,architecture,testing,dependencies,conventions - Storage:
.codebase-context/memory.jsonwith content-based hash IDs (commit this) - Safety:
get_memorytruncates unfiltered results to 20 most recent
- Types:
- Integration with
get_team_patterns: Appends relevant memories when category overlaps - Integration with
search_codebase: SurfacesrelatedMemoriesvia keyword match in search results
- File Structure: All MCP files now organized in
.codebase-context/folder for cleaner project root- Vector DB:
.codebase-index/→.codebase-context/index/ - Intelligence:
.codebase-intelligence.json→.codebase-context/intelligence.json - Keyword index:
.codebase-index.json→.codebase-context/index.json - Migration: Automatic on server startup (legacy JSON preserved; vector DB directory moved)
- Vector DB:
- Startup safety: Validates
ROOT_PATHbefore running migration to avoid creating directories on typo paths
Patterns show "what" (97% use inject) but not "why" (standalone compatibility). AGENTS.md can't capture every hard-won lesson. Decision memory gives AI agents access to the team's battle-tested rationale.
Design principle: Tool must be self-evident without AGENTS.md rules. "Is this about HOW (record) vs WHAT (don't record)"
Inspired by: v1.1 Pattern Momentum (temporal dimension) + memory systems research (Copilot Memory, Gemini Memory)
- Security: Resolve
pnpm auditadvisories by updatinghonoto 4.11.4 and removing the vulnerabledifftransitive dependency (replacedts-nodewithtsxforpnpm dev).
- Docs: Clarify private
internal-docs/submodule setup, addnpx --yestip, documentCODEBASE_ROOT, and listget_indexing_statustool. - Submodule: Disable automatic updates for
internal-docs(update = none).
- Dev: Remove local-only
test-context.cjshelper script.
- Embeddings: Batch embedding now uses a single Transformers.js pipeline call per batch for higher throughput.
- Dependencies: Bump
@modelcontextprotocol/sdkto 1.25.2.
- Auto-Heal Semantic Search: Detects LanceDB schema corruption (missing
vectorcolumn), triggers re-indexing, and retries search instead of silently falling back to keyword-only results.
- Workspace Detection: Monorepo support for Nx, Turborepo, Lerna, and pnpm workspaces
- New utility:
src/utils/workspace-detection.ts - Functions:
scanWorkspacePackageJsons(),detectWorkspaceType(),aggregateWorkspaceDependencies()
- New utility:
- Testing Infrastructure: Vitest smoke tests for core utilities
- Tests for workspace detection, analyzer registry, and indexer metadata
- CI/CD workflow via GitHub Actions
- Dependency Detection: Added
@nx/and@nrwl/prefix matching for build tools
- detectMetadata() bug: All registered analyzers now contribute to codebase metadata (previously only the first analyzer was called)
- Added
mergeMetadata()helper with proper array deduplication and layer merging
- Added
- Updated roadmap: v1.3 is now "Extensible Architecture Foundation"
Thanks to @aolin480 for accelerating the workspace detection roadmap and identifying the detectMetadata() limitation in their fork.
- Critical Startup Crash: Fixed immediate "Exit Code 1" silent crash on Windows by handling unhandled rejections during startup
- MCPJam Compatibility: Removed
loggingcapability (which was unimplemented) to support strict MCP clients like MCPJam - Silent Failure: Added global exception handlers to stderr to prevent silent failures in the future
- MCP Protocol Compatibility: Fixed stderr output during MCP STDIO handshake for strict clients
- All startup
console.errorcalls now guarded withCODEBASE_CONTEXT_DEBUGenv var - Zero stderr output during JSON-RPC handshake (required by Warp, OpenCode, MCPJam)
- Debug logs available via
CODEBASE_CONTEXT_DEBUG=1environment variable - Minimal implementation: 2 files changed, 46 insertions, 25 deletions
- Reported by @aolin480 in #2
- All startup
- Actionable Guidance:
get_team_patternsnow returns aguidancefield with pre-computed decisions:"USE: inject() – 97% adoption, stable""AVOID: constructor DI – 3%, declining (legacy)"
- Pattern-Aware Search:
search_codebaseresults now include:trend:Rising|Stable|Decliningfor each resultpatternWarning: Warning message for results using declining patterns
- Search Boosting: Results are re-ranked based on pattern modernity:
- +15% score boost for Rising patterns
- -10% score penalty for Declining patterns
This release addresses Search Contamination — the proven problem where AI agents copy legacy code from search results. By adding trend awareness and actionable guidance, AI agents can now prioritize modern patterns over legacy code.
- Pattern Momentum: Detect migration direction via git history. Each pattern in
get_team_patternsnow includes:newestFileDate: ISO timestamp of the most recent file using this patterntrend:Rising(≤60 days),Stable, orDeclining(≥180 days)
- This solves the "3% Problem" — AI can now distinguish between legacy patterns being phased out vs. new patterns being adopted
- New
src/utils/git-dates.ts: Extracts file commit dates via singlegit logcommand - Updated
PatternDetectorto track temporal data per pattern - Graceful fallback for non-git repositories
- Added
typescriptas runtime dependency (required by@typescript-eslint/typescript-estree)
Initial release.
- Semantic search: Hybrid search combining semantic similarity with keyword matching
- Pattern detection: Detects team patterns (DI, signals, standalone) with usage frequencies
- Golden Files: Surfaces files that demonstrate all team patterns together
- Internal library discovery: Tracks usage counts per library, detects wrappers
- Testing framework detection: Detects Jest, Jasmine, Vitest, Cypress, Playwright from actual code
- Angular analyzer: Components, services, guards, interceptors, pipes, directives
- Generic analyzer: Fallback for non-Angular files (32 file extensions supported)
- Local embeddings: Transformers.js + BGE model, no API keys required
- LanceDB vector storage: Fast, local vector database
- Framework-agnostic core with pluggable analyzers
- Angular as first specialized analyzer (React/Vue extensible)
- tsconfig paths extraction for internal vs external import detection