@ruso-0/nreki 10.14.1 → 10.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,38 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to NREKI will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## [10.15.0] — 2026-04-24
|
|
6
|
+
|
|
7
|
+
### Fast Path Navigator + Semantic Grep
|
|
8
|
+
|
|
9
|
+
Major navigation upgrade: findDefinition and findReferences now have a SQLite fast path that replaces the O(N) full-disk walk. New fast_grep action provides AST-aware substring search that returns topological coordinates (file + symbol + line + context) instead of raw grep output.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **fast_grep action** (`nreki_navigate action:"fast_grep"`): exact substring search over AST chunks using SQLite INSTR. Returns each hit with the file path, containing AST symbol, exact line number, and line context. Multi-line queries supported — preview shows first line of the query, not the chunk. Designed to replace native grep for agent workflows where topological awareness matters.
|
|
14
|
+
- **NrekiDB.getChunksBySymbolExact()**: SQLite lookup by symbol_name with optional COLLATE NOCASE fallback. Backed by new `idx_chunks_symbol_name` index.
|
|
15
|
+
- **NrekiDB.fastGrep()**: SQLite INSTR-based substring search. Unlike LIKE, INSTR does not interpret wildcards (% and _), making it safe for arbitrary query text.
|
|
16
|
+
- **stripCommentsAndStringsPreservingGeometry() helper**: neutralizes string/comment content in source files while preserving line/column geometry. Strings are zeroed FIRST, then comments — order matters to avoid "//" inside URL strings breaking the string regex.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **ast-navigator findDefinition and findReferences** gain an optional `engine` parameter. When provided, SQLite fast path resolves candidate chunks/files in O(log N) instead of walking the project. When omitted, original slow-path behavior is preserved exactly — all existing tests pass unchanged.
|
|
21
|
+
- **findReferences regex**: replaced fragile inline character class with `escapeRegExp()` from utils/imports.js. The old pattern had ambiguous behavior for `[` characters.
|
|
22
|
+
- **findReferences AST-light filter**: string literals and comments are now zeroed (preserving geometry) before the symbol regex runs. Eliminates false positives from matches inside strings or comments — e.g., a URL containing the symbol name no longer produces a reference hit.
|
|
23
|
+
|
|
24
|
+
### Notes
|
|
25
|
+
|
|
26
|
+
- Backward compatibility: 833/833 tests from v10.14.x baseline pass unchanged. 845/845 total with 12 new tests covering the fast path and fast_grep.
|
|
27
|
+
- Performance (measured on NREKI codebase, `src/` only, 19 iterations per symbol, warm-up discarded):
|
|
28
|
+
- **findDefinition**: slow path re-reads and re-parses all project files per call (~660ms on NREKI). Fast path hits the SQLite index directly (~0.2ms). Speedup: 2000–5000x. The large factor reflects that the slow path was I/O + parse-dominated; the fast path eliminates both.
|
|
29
|
+
- **findReferences**: slow path walks all project files (~90ms on NREKI). Fast path restricts reads to SQLite-indicated candidates but still reads + regex-scans those files. Speedup: 6–19x depending on symbol commonality. Less dramatic because I/O is still proportional to matches.
|
|
30
|
+
- Raw data: `scripts/benchmark-v10-15-0.json`. Reproducible with `npx tsx scripts/benchmark-v10-15-0.ts`.
|
|
31
|
+
- fast_grep limit: minimum 3 chars per query, default 50 results, max 100.
|
|
32
|
+
|
|
33
|
+
### Acknowledgments
|
|
34
|
+
|
|
35
|
+
Cross-audit triangular: Claude verified the dormant NrekiDB infrastructure and designed the backward-compatible signature preservation; Pipipi Furia identified the O(N) disk walk, proposed the SQLite fast-path architecture, and caught the UX failure for multi-line fast_grep output; Antigravity executed the four-phase protocol with one abort-and-retry cycle (test fix) and rollback discipline throughout.
|
|
36
|
+
|
|
5
37
|
## [10.14.0] — 2026-04-22
|
|
6
38
|
|
|
7
39
|
### Multi-Patch Transactional batch_edit + Enforcer Hotfixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ruso-0/nreki",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.15.0",
|
|
4
4
|
"description": "MCP plugin that validates AI agent edits in RAM before they touch disk. Spectral clustering, architecture diffs, bridge detection, dead code oracle, and cross-file semantic checks for TypeScript, Go (gopls), and Python (pyright). Zero cloud dependencies.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|