v0.1.19 — precision pass + codegraph benchmark
Fixed
-
Rust extractor precision raised from 67% → 99.8% recall via 4 additive
queries.scmpatterns (dogfood-found 2026-06-04 by indexing the Mycelium
repo against itself and comparing per-file symbol counts vs ground truth):trait T { fn x(); }trait method signatures are now captured
(previously onlytrait Twas indexed;T::xwas silently dropped —
e.g.FileReindexer::reindexwas invisible while everyimpl FileReindexer for Xmethod was present).trait T { fn x() {...} }trait default-method bodies captured.- Module-level
static FOO: ...items captured (previously onlyconst
— e.g.static PACK_REGISTRY: OnceLock<...>was missing). - Associated
pub constitems insideimplblocks captured (e.g.
impl NodeId { pub const NULL: Self = ...; }). - Functions/structs/consts inside nested
modblocks (notably
#[cfg(test)] mod tests { fn ... }) now captured at every position
in the body, not only at head/tail.
Verified on the Mycelium repo: 70 of 80 Rust files now match ground-truth
symbol counts exactly (was 44 of 80). Total recall 99.8% (2664 / 2668).
5 RED-first regression tests incrates/mycelium-core/src/extractor/tests.rs.Head-to-head vs
codegraph0.9.8 on the same repo: Mycelium index time
0.32 s vs codegraph 0.93 s (3× faster); Mycelium 70 of 80 files at exact
ground-truth match vs codegraph 1 of 80 (codegraph over-counts symbols
by 19.7% — different granularity).
Docs
- ADR-0008: redb as default storage backend (Phase 3 flip decision record). Documents the rationale for switching from
InMemoryBackendtoRedbBackendas the production default in v0.1.17, prerequisites met (equivalence tests, crash-safety, warm SLA). - ADR numbering fix: renamed
docs/adr/0008-redb-storage-engine.md→docs/adr/0009-redb-storage-engine.md(ADR-0009) to resolve the 0007/0008 slot collision; updated cross-references inrfc-0100-execution-plan.md,rfcs/0104-charter-warm-cold-sla-split.md, anddocs/adr/0008-redb-as-default-backend.md.