- 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