diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fe08f4..f6461e6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,29 @@ ## [1.4.1](https://github.com/PatrickSys/codebase-context/compare/v1.4.0...v1.4.1) (2026-01-29) - ### Bug Fixes -* **lint:** disable no-explicit-any rule for AST manipulation code ([41547da](https://github.com/PatrickSys/codebase-context/commit/41547da2aa5529dce3d539c296d5e9d79df379fe)) +- **lint:** disable no-explicit-any rule for AST manipulation code ([41547da](https://github.com/PatrickSys/codebase-context/commit/41547da2aa5529dce3d539c296d5e9d79df379fe)) ## [Unreleased] +### Added + +- **Preflight evidence lock**: `search_codebase` edit/refactor/migrate intents now return risk-aware preflight guidance with evidence lock scoring, impact candidates, preferred/avoid patterns, and related memories. +- **Trust-aware memory handling**: Added git-aware memory pattern support and confidence decay tests so stale or malformed evidence is surfaced as lower-confidence context instead of trusted guidance. + +### Changed + +- **Search ranking**: Removed framework-specific anchor/query promotion heuristics from core ranking flow to keep retrieval behavior generic across codebases. +- **Search transparency**: `search_codebase` now returns `searchQuality` with confidence and diagnostic signals when retrieval looks ambiguous. +- **Incremental indexing state**: Persist indexing counters to `indexing-stats.json` and restore them on no-op incremental runs to keep status reporting accurate on large codebases. +- **Docs**: Updated README performance section to reflect shipped incremental refresh mode (`incrementalOnly`). + +### Fixed + +- **No-op incremental stats drift**: Fixed under-reported `indexedFiles` and `totalChunks` after no-change incremental refreshes by preferring persisted stats over capped index snapshots. +- **Memory date validation**: Invalid memory timestamps now degrade to stale evidence rather than being surfaced as semi-trusted data. + ## [1.4.0] - 2026-01-28 ### Added diff --git a/README.md b/README.md index 6675fca..fd44269 100644 --- a/README.md +++ b/README.md @@ -103,6 +103,7 @@ Before an edit happens, the agent gets a preflight briefing: what to use, what t - Failure memories bump risk level and surface as explicit warnings - Confidence decay: memories age (90-day or 180-day half-life). Stale guidance gets flagged, not blindly trusted - Epistemic stress detection: when evidence is contradictory, stale, or too thin, the preflight card says "insufficient evidence" instead of guessing +- Search quality transparency: `search_codebase` includes `searchQuality` (`ok`/`low_confidence`, signals, confidence, next steps) so ambiguous retrieval is explicit instead of hidden ### Discovers @@ -118,13 +119,13 @@ Hybrid search (BM25 keyword 30% + vector embeddings 70%) with structured filters Tested against a real enterprise Angular codebase (~30k files): -| What was measured | Result | -| ---------------------------------- | -------------------------------------------------------- | -| Internal library detection | 336 uses of `@company/ui-toolkit` vs 3 direct PrimeNG | -| DI pattern consensus | 98% `inject()` adoption detected, constructor DI flagged | -| Test framework detection | 74% Jest, 26% Jasmine/Karma, per-module awareness | -| Wrapper discovery | `ToastEventService`, `DialogComponent` surfaced over raw | -| Golden file identification | Top 5 files scoring 4-6 modern patterns each | +| What was measured | Result | +| -------------------------- | -------------------------------------------------------- | +| Internal library detection | 336 uses of `@company/ui-toolkit` vs 3 direct PrimeNG | +| DI pattern consensus | 98% `inject()` adoption detected, constructor DI flagged | +| Test framework detection | 74% Jest, 26% Jasmine/Karma, per-module awareness | +| Wrapper discovery | `ToastEventService`, `DialogComponent` surfaced over raw | +| Golden file identification | Top 5 files scoring 4-6 modern patterns each | Without this context, AI agents default to generic patterns: raw PrimeNG imports, constructor injection, Jasmine syntax. With the second brain active, generated code matches the existing codebase on first attempt. @@ -278,7 +279,7 @@ This tool runs locally on your machine. - **Initial indexing**: First run may take several minutes (e.g., 2-5 min for 30k files) to compute embeddings. - **Subsequent queries**: Instant (milliseconds) from cache. -- **Updates**: `refresh_index` re-scans the codebase. True incremental indexing (processing only changed files) is on the roadmap. +- **Updates**: `refresh_index` supports full or incremental mode (`incrementalOnly: true`) to process only changed files. ## Links