Visitar URL original
Tags · sdsrss/code-graph-mcp · GitHub
Skip to content

Tags

Tags

v0.193.0

Toggle v0.193.0's commit message
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>

v0.192.0

Toggle v0.192.0's commit message
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>

v0.191.1

Toggle v0.191.1's commit message
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>

v0.191.0

Toggle v0.191.0's commit message
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>

v0.190.1

Toggle v0.190.1's commit message
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>

v0.190.0

Toggle v0.190.0's commit message
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>

v0.189.0

Toggle v0.189.0's commit message
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>

v0.188.0

Toggle v0.188.0's commit message
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>

v0.187.0

Toggle v0.187.0's commit message
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>

v0.186.0

Toggle v0.186.0's commit message
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>