Repository navigation
Tags
Tags
docs(release): 0.193.0 notes after review R2; the wait test pins CODE… …_GRAPH_INTERNAL R2 (HIGH 0 / MEDIUM 0 / LOW 2 / NIT 5) found the repair right and three sentences broader than the code: the hooks kill a query after 1.5 to 5 s, not 1.5 to 2 (the Edit, prompt and session-start hooks have room for the wait and did not lose their answers), and 25d36f6's "every hook query died" holds only for those capped at 2 s or less (cg-answer.js, stop-impact.js). The notes and the wait's doc comment now say so, name the corpus behind the 6/12/4 ms figures (flask d086db85), quote what 0.192.0's `callgraph h` printed, and list as Not covered that every plugin query, including the grep hook's rewritten command, skips the wait. The wait test inherited CODE_GRAPH_INTERNAL from the shell running it and failed with it set to 1; its queries now set 0. Passes with the variable unset and with it set to 1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs(changelog): 0.192.0 notes after pre-tag review R2 R2 (delta 3b7a38b..2877a80) closed at the review stop line: every call the repair changed binds as 3b7a38b or as 0.191.1 did (gin without its go.mod and gin at binding/: 0 pairs different from 0.191.1), so nothing is patched further and the rest is disclosed: - Go: the rule's exception is stated (a name bound or assigned through in the calling function or one around it keeps the call by name). - deps: the 6 `ambiguous` edges came from one `unsafe.String(...)` call. - Cost: the range covers all eight measured sets (3.1% to 5.3%). - io.py: 8 references into _pyio.py, 7 new (FileIO was there before). - Not covered: unmoduled files get no Go fix (gin at binding/ keeps 44 `inferred` pairs into SliceValidationError.Error); adding or removing a go.mod re-reads no file (`errors.New` kept its edge after go mod init); named results; Go's own std tree (15,122 pairs above the floor gone, 2,281 new; 7,125 files). Each new number was measured on e95f393's binary (md5 d0d808e6) or recomputed from the reviewer's indexes built by that same binary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: 0.191.1 notes after pre-tag review R1+R2 (D#775) Two blind review rounds. R1: a planted vec0 table with edited internal tables still aborts 0.191.0 and 0.191.1 alike through a sqlite-vec assert (reproduced on both release binaries, CLI and MCP) — this release fixes the two named calls only, so the headline names them and Not covered states the residual crash and an unchecked length read. The asserts stay compiled in: without them that path reads past a heap buffer instead of stopping. The 0.191.0 MCP server dies 0.08 s in during its startup background index, not on the first tool call (re-measured both versions, both arms). R2: the reproduction method must not ship — tasks/specs/ is tracked and pushed with the release, and it does not fix the crash. The method now lives only in docs/ (gitignored); this commit's spec and CHANGELOG carry none of it. The pin-back step now says to run rebuild-index --confirm in each project 0.191.1 indexed, from that project's own directory, with the MCP server stopped (it indexes whatever tree it finds outside a project, and refuses while the index is locked) — verified end to end on the release binaries. Line citations corrected (index_ops.rs:164, sqlite-vec.c:4162). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: 0.191.0 notes and spec after pre-tag review R2 (D#759) CHANGELOG: the killed-creation exception requires no WAL content (the first-checkpoint kill is refused, with its numbers), `reindex --from-snapshot` only when no snapshot is fetched, and the BUSY gap's real thresholds. Spec: R2 findings, handling and the stop line. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(release): pre-tag review R2 repairs for 0.190.1 Notes: the journal deletion is reached by whatever opens the index first (the MCP server at start, health-check, incremental-index, the query commands), by absolute or ../ names (measured: 0.190.0 deleted, 0.190.1 kept); every earlier release bundles a SQLite older than 3.54; a planted journal is still rolled back into index.db (measured growth 3,751,936 -> 8,589,934,592 bytes, both versions; D#759); the Rust 1.89 sentence is dropped (both versions build only from 1.91); the error-text bullet is scoped; 'apart from version numbers'. The journal test comment names the tests that refuse a journal staged by the fallback arm. Spec numbers corrected; build.sh saved with the differential scripts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fix(release): pre-tag review R2 repairs for 0.190.0
Tests: the CLI file-path refusal now pins exit code 1, the stderr line,
and the exact JSON per command (values too: `results: []`,
`references: []`, `by_relation: {}`, `total_references: 0`); the unit
test pins that the CLI hint names the first path.
Notes: the file-path answer holds without a file selector (with
`--file`/`file_path` it is the selector's miss, as in 0.189.0); a
heading hides the file only when no code defines the name's last part;
a new .py file answers for `py` only where `py` exists, otherwise the
call indexes it and refuses it as a file; "an indexed file". Comments in
the MCP refs/callgraph tools and the db test say what the code does.
Non-test source changes are comments only.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: 0.189.0 release notes for D#747 alone CHANGELOG 0.189.0 rewritten after D#746 was withdrawn (1c6514b) and re-measured on that build: INDEX_VERSION 139 for the kept member-call rows, edges unchanged on 13 projects, the cost table, and Not covered (D#746 again, the ambiguity mark a kept typed row can carry, the per-run cost of kept rows, D#741, the `{ f }` plus `* as T` divergence of 0.188.0). Spec and kit carry the third review and the withdrawal measurements. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
revert(resolver): withdraw the JS-family import binding from 0.188.0 … …(D#742) The second pre-tag review found a MEDIUM in the binding (reproduced): a cross-language call bound through its import, whose callee file is then edited to add a same-named node (a class method, a nested function), is restored by name onto every node of that name incrementally, while a rebuild leaves it unresolved; 0.187.0 and the same-language case agree. Both review rounds were spent; the owner chose to release without it. src/domain.rs, index_files.rs, resolve.rs and tests.rs return to 58362a0, plus the D#743 part of the round-1 repairs: a sweep of a run that parsed nothing ages no pending row (a_deletion_ages_a_pending_row_at_most_once, 2 vs 1 with aging forced), and two stale comments. INDEX_VERSION back to 138: on 13 corpora a full index has byte-identical edges and pending rows to 0.187.0's. CHANGELOG 0.188.0 rewritten and re-measured on this build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test(index): second pre-tag review repairs of 0.187.0 (D#735) LOW-2: the linear-cost test dropped its temp dirs in the detached thread after sending the answer, so a harness that exited first left ~9 MB in the temp dir per run; they are dropped before the send now. LOW-3: three wrong sweeps survived the suite (a decorated class's body, a nested class's body not counted as class bodies; classes counted as methods). The keep table gains a row for each; each mutant fails one. LOW-1, LOW-4, NIT-1, NIT-2: CHANGELOG. The mimetypes parameter holds a lambda calling `self.add_type` on its one stdlib call path; the JS/TS cost the set lookup removes (since 0.185.0: 164.4 s -> 2.2 s on a 588 KB file) gets its own section; the `global h` and class-body sentences say when they hold. NIT-3 (the 0.186.0 21 s in 57efd30's message is the insert of 6,000 x 6,001 kept targets, not the scan) is in the spec; the cost itself is pre-existing and deferred as D#745. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
revert(index): withdraw the pending-call bind; document the divergenc… …e (D#740) Fourth pre-tag review of 0.186.0 found a new divergence in ac69061's pending arm (MEDIUM, reproduced): with no `f` in the project the arm bound `f()` and dropped its pending row; when a first `f` then appears, a rebuild binds `f()` by name as well and the import-contradiction prune keeps that edge when the caller's code holds `.f(` or is truncated, while the incremental run has no row left to sweep. 40c0792 and 0.185.0 match a rebuild there. As agreed before that review, the arm and its tests are withdrawn: resolve.rs, tests.rs and the extraction fingerprint are back to e74e9c8, whose release build is byte-identical to 40c0792's. CHANGELOG is back to e74e9c8 with: - a Not covered item for the divergence the arm was for: the last other `f` going leaves the incremental run with the edge Node runs and a rebuild with none; 77 of 600 edit chains end that way (all of them), against 14 for 0.185.0 (all stale by-name import edges); - a pointer to it from the incremental bullet; - the timing table re-measured with this build, all three columns in one run on a quiet machine (load 1.0-1.7). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PreviousNext