Releases: aimasteracc/mycelium
v0.2.0 — The Three-Surface Release
Draft — staged with prebuilt binaries while npm publishing is finalized. Published once
@aimasteraccnpm packages are live.
Highlights
- npm / bun install — no Rust toolchain required (RFC-0110).
npm i -g @aimasteracc/myceliumresolves and execs the matching prebuilt binary (esbuild/biome optionalDependencies model).cargo install mycelium-rcig-cliremains for Rust users. - CLI ↔ MCP output parity, 7/7 graph-list tools (RFC-0109).
get-callees/get-callers/get-dead-symbols/get-isolated-symbols/get-all-symbols--format jsonnow emit objects byte-identical to their MCP twins. (BREAKING: was bare arrays.) - Adaptive output budget (RFC-0102). Per-call
--budget/ MCPbudgetknob (auto|small|medium|large|disabled) + nestedbudget {}response object.
See CHANGELOG.md for full notes.
Install
# npm / bun (no Rust required)
npm i -g @aimasteracc/mycelium
# or Rust
cargo install mycelium-rcig-cliPrebuilt binaries
Direct download (no package manager). Verify with SHA256SUMS.
| Platform | Asset |
|---|---|
| macOS Apple Silicon | mycelium-aarch64-apple-darwin.tar.gz |
| macOS Intel | mycelium-x86_64-apple-darwin.tar.gz |
| Linux x86_64 | mycelium-x86_64-unknown-linux-gnu.tar.gz |
| Linux ARM64 | mycelium-aarch64-unknown-linux-gnu.tar.gz |
| Windows x64 | mycelium-x86_64-pc-windows-msvc.zip |
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.
v0.1.18 — reactive-completion roadmap complete
反应式完成路线图 — 全部 ship 完了
watch → RFC-0105 ✅
push → RFC-0106 ✅
subscribe → RFC-0107 ✅ (this release)
salsa → RFC-0108 ✅ (this release)
Added
RFC-0107 SUBSCRIBE — mycelium/subscriptionDelta scoped per-batch delta notifications
Agents register an Interest (Files / Symbols / Hyphae Selector) and receive only the slice of each batch that matches them. Three new MCP tools:
mycelium_subscribemycelium_unsubscribe(idempotent)mycelium_subscription_status
CLI face: mycelium watch --subscribe '<SPEC>' where SPEC is files:<globs> / symbols:<globs> / selector:<hyphae>.
Frozen-v1 wire shape per RFC-0107 §4. TTL + per-client cap + selector cap + dead-peer GC. (ii-strict) Selector removal semantics — no phantom removals.
RFC-0108 Salsa Phase 2 — mycelium/queryResultChanged reactive query subscriptions
Agents subscribe to a query result and receive a notification only when the value actually changes — Salsa-style backdated equality via BLAKE3-128 hash of canonical-JSON.
5 query kinds: selector / callers / callees / impact / context. Hybrid result shape: summary{added,removed} for set-shaped, new_result only for tree-shaped. 2 s default quiet-period; 200 ms eval-budget pause.
Additively bolted onto RFC-0107's subscription store — Interest::Query { query, min_interval_seconds } variant.
Fixed
- RFC-0107 SUBSCRIBE P1 safety: replace
RwLock::blocking_read()withtry_read()in async watch paths. Watch loop no longer panics on subscribe-contention. - Rust extractor now captures
Type::method()andcrate::mod::func()call sites (dogfood-found correctness bug — every scoped-path call site was silently dropped including allWatchEngine::*,Arc::clone, etc.).
Install
cargo install mycelium-rcig-cli
# or
npm install -g @mycelium/cli
# or
pip install mycelium-rcigQuality gate
- 1095 tests passing across 5 OS matrices
- Line coverage 90.15% (Charter §5.6 SLA)
- clippy
-D warnings+ rustfmt + security all clean
Note on ceremony recovery
v0.1.17 was published to crates.io / npm / PyPI but the git-side ceremony (main merge + tag) was incomplete due to a release.yml workflow_dispatch bug. v0.1.18 ceremony folds v0.1.17 → main and includes a retro-tag for v0.1.17 at the published commit.
v0.1.17 — retro-tag (crates.io published 2026-06-03)
Retro-tag for v0.1.17 at the published commit. crates.io / npm / PyPI were published at this commit (workflow run 26867945825) but git-side ceremony was incomplete due to release.yml workflow_dispatch bug. Subsequent v0.1.18 ceremony folds v0.1.17 → main; see v0.1.18 release notes for full content.
Highlights shipped at this version:
- redb as the default storage backend (RFC-0100 Phase 3 flip)
- RFC-0101 mycelium_context tool
- RFC-0102 adaptive output budget
- RFC-0105 shared WatchEngine (core + CLI watch)
- RFC-0106 mycelium/graphChanged push notifications
v0.1.16
v0.1.16
Added
- RFC-0100 Phase 1+2: redb storage backend + atomic edge writes + crash safety tests
- MCP server routing instructions (Issue #366)
- Incremental persistence journal (Issue #343)
- Memory budget / bounded store (Issue #344)
- Release ceremony script (Issue #375)
- RFC drafts: 0101 (context tool), 0102 (output budgets), 0103 (cross-file refs)
Changed
Fixed
- Windows CI: measure_rss test now platform-aware
v0.1.15
What's Changed
- chore(pm): PM dispatch 2026-05-30 — release/v0.1.12 cut (PR #321) by @aimasteracc in #322
- chore(pm): PM dispatch 2026-05-30 — v0.1.12 ceremony PRs + v0.1.13 kickoff by @aimasteracc in #325
- chore(release): back-merge release/v0.1.12 into develop (ceremony step 4/4) by @aimasteracc in #323
- chore(pm): PM dispatch 2026-05-30 — PR #323 merged; RFC-0093 Phase 2; security CLEAN by @aimasteracc in #327
- refactor(mcp): RFC-0093 Phase 2 — export success_str from error module by @aimasteracc in #326
- feat(core): RFC-0096 Phase 2 — TypeScript import type → TypeImports + fix TS resolver bug by @aimasteracc in #331
- chore(release): back-merge release/v0.1.13 into develop (ceremony step 4/4) by @aimasteracc in #333
- chore(pm): PM dispatch 2026-05-31 — v0.1.13 COMPLETE; v0.1.14 in progress; PRD v0.2 corrections by @aimasteracc in #334
- ci(rfc0090): promote skill-parity to required Quality Gate (Charter §5.13) by @aimasteracc in #335
- docs: v0.1.14 dogfood report — 8/8 core CLI commands green by @aimasteracc in #337
- docs(hive): vision-vs-reality report + Model Tiering section by @aimasteracc in #339
- docs: scale-gap analysis — index pipeline not ready for 100K+ files by @aimasteracc in #341
- feat: R1 parallel indexing — Store::merge + parallel index_path (#342) by @aimasteracc in #345
- chore(pm): PM dispatch 2026-05-31 — PRs #335+#337 merged; PR #338 rebased; 5/6 v0.1.14 criteria done by @aimasteracc in #340
- docs(rfc-0093): Phase 3 — CHANGELOG BREAKING entry + RFC marked Implemented by @aimasteracc in #346
- chore(pm): PM dispatch 2026-05-31 — v0.1.14 DONE; scale-gap R1/R2/R3 P1 by @aimasteracc in #347
- chore(release): back-merge release/v0.1.14 → develop (ceremony step 4/4) by @aimasteracc in #349
- feat(cli): R1 parallel indexing — index_path_parallel (#342, step 2/2) by @aimasteracc in #351
- chore(pm): PM dispatch 2026-05-31 — release/v0.1.14 cut; PRs #348+#349 opened by @aimasteracc in #350
- chore(pm): PM dispatch 2026-05-31 — PR #352 opened; release/v0.1.14 conflicts resolved; security CLEAN by @aimasteracc in #354
- chore(pm): v0.1.14 SHIPPED — ceremony 4/4 complete by @aimasteracc in #355
- docs(rfc): RFC-0098 Incremental Persistence (Draft — founder + ADR sign-off needed) by @aimasteracc in #353
- perf(core): Store::heap_size_estimate() + RSS memory-curve tests (R3 #344) by @aimasteracc in #356
- chore(pm): PM dispatch 2026-05-31 — PR #353 merged; PM state corrected; R3 PR #356 pending by @aimasteracc in #357
Full Changelog: v0.1.12...v0.1.15
v0.1.14
What's Changed
- chore(pm): PM dispatch 2026-05-30 — release/v0.1.12 cut (PR #321) by @aimasteracc in #322
- chore(pm): PM dispatch 2026-05-30 — v0.1.12 ceremony PRs + v0.1.13 kickoff by @aimasteracc in #325
- chore(release): back-merge release/v0.1.12 into develop (ceremony step 4/4) by @aimasteracc in #323
- chore(pm): PM dispatch 2026-05-30 — PR #323 merged; RFC-0093 Phase 2; security CLEAN by @aimasteracc in #327
- refactor(mcp): RFC-0093 Phase 2 — export success_str from error module by @aimasteracc in #326
- feat(core): RFC-0096 Phase 2 — TypeScript import type → TypeImports + fix TS resolver bug by @aimasteracc in #331
- chore(release): back-merge release/v0.1.13 into develop (ceremony step 4/4) by @aimasteracc in #333
- chore(pm): PM dispatch 2026-05-31 — v0.1.13 COMPLETE; v0.1.14 in progress; PRD v0.2 corrections by @aimasteracc in #334
- ci(rfc0090): promote skill-parity to required Quality Gate (Charter §5.13) by @aimasteracc in #335
- docs: v0.1.14 dogfood report — 8/8 core CLI commands green by @aimasteracc in #337
- docs(hive): vision-vs-reality report + Model Tiering section by @aimasteracc in #339
- docs: scale-gap analysis — index pipeline not ready for 100K+ files by @aimasteracc in #341
- feat: R1 parallel indexing — Store::merge + parallel index_path (#342) by @aimasteracc in #345
- chore(pm): PM dispatch 2026-05-31 — PRs #335+#337 merged; PR #338 rebased; 5/6 v0.1.14 criteria done by @aimasteracc in #340
- docs(rfc-0093): Phase 3 — CHANGELOG BREAKING entry + RFC marked Implemented by @aimasteracc in #346
- chore(pm): PM dispatch 2026-05-31 — v0.1.14 DONE; scale-gap R1/R2/R3 P1 by @aimasteracc in #347
Full Changelog: v0.1.12...v0.1.14
v0.1.13
What's Changed
- chore(pm): PM dispatch 2026-05-30 — release/v0.1.12 cut (PR #321) by @aimasteracc in #322
- chore(pm): PM dispatch 2026-05-30 — v0.1.12 ceremony PRs + v0.1.13 kickoff by @aimasteracc in #325
- chore(release): back-merge release/v0.1.12 into develop (ceremony step 4/4) by @aimasteracc in #323
- chore(pm): PM dispatch 2026-05-30 — PR #323 merged; RFC-0093 Phase 2; security CLEAN by @aimasteracc in #327
- refactor(mcp): RFC-0093 Phase 2 — export success_str from error module by @aimasteracc in #326
Full Changelog: v0.1.12...v0.1.13
v0.1.12
What's Changed
- chore(release): backmerge v0.1.3 + memory log by @aimasteracc in #165
- docs(skills): RFC-0090 Phase 2.3 — Skill coverage complete (89/89) by @aimasteracc in #166
- chore(pm): v0.1.4 sprint kickoff — PM state refresh by @aimasteracc in #167
- perf(core): symbol_nodes() + parent-map BFS, close #153 by @aimasteracc in #168
- ci(parity): RFC-0090 Phase 1 — Three-Surface parity checker + workflow by @aimasteracc in #170
- chore(pm): 2026-05-29 dispatch — #153+parity merged, state refreshed by @aimasteracc in #171
- feat(cli): parity backfill batch 1 — 3 high-frequency CLI subcommands by @aimasteracc in #172
- chore(pm): v0.1.4 sprint complete — state refresh + v0.1.5 kickoff by @aimasteracc in #174
- feat(cli): parity backfill batch 2 — basic-queries category 10/10 complete by @aimasteracc in #175
- feat(cli): parity batch 3 — complete call-graph category (7 commands) by @aimasteracc in #177
- feat(cli): parity batch 4 — complete import-graph category (3 commands) by @aimasteracc in #178
- feat(cli): parity batch 5 — complete inheritance category (8 commands) by @aimasteracc in #179
- feat(cli): parity batch 6 — complete reachability (12 commands) by @aimasteracc in #182
- feat(cli): parity batch 7 — complete centrality (14 commands), 55/89 (62%) by @aimasteracc in #183
- feat(hyphae): jQuery-inspired selector extensions (RFC-0091) by @aimasteracc in #184
- feat(cli): parity batch 8 — complete graph-structure (14), 69/89 (78%) by @aimasteracc in #185
- feat(cli): parity batch 9 — complete batch-ops (4), 73/89 (82%) by @aimasteracc in #186
- feat(cli): parity batch 10 FINAL — 100% Three-Surface compliance by @aimasteracc in #187
- docs(changelog): backfill batch 10 Unreleased entry by @aimasteracc in #188
- meta(memory): decisions log — batch 10 FINAL by @aimasteracc in #189
- chore(pm): v0.1.5 complete — state refresh, RFC-0090 Implemented, INDEX flush by @aimasteracc in #190
- chore(sync): post-release v0.1.4 → develop (gitflow back-merge) by @aimasteracc in #195
- chore(pm): record v0.1.4 ship + next-up release/v0.1.5 by @aimasteracc in #197
- docs(readme): bump version badges to v0.1.4 by @aimasteracc in #196
- feat(e2e): Charter §5.10 dogfood test (Mycelium indexes itself) by @aimasteracc in #194
- meta(memory): sequential release path + PR #176 unblock by @aimasteracc in #192
- chore(pm): PM dispatch 2026-05-30 — v0.1.5 CI fix + issue #200 triage by @aimasteracc in #201
- chore(sync): post-release v0.1.5 → develop (gitflow back-merge) by @aimasteracc in #203
- meta(memory): 8 CI anti-patterns + 3 lessons from v0.1.5 saga by @aimasteracc in #202
- fix(python): resolve relative imports to actual file paths (#204) by @aimasteracc in #207
- ci(parity): promote check_skill_parity.py to --strict by @aimasteracc in #208
- chore(sync): post-release v0.1.6 → develop (gitflow back-merge) [SUPERSEDED by #213] by @aimasteracc in #215
- docs(rfc): RFC-0092 cross-language alias resolution (draft) by @aimasteracc in #216
- fix(python): alias-table dispatch (#205, RFC-0092 Phase 1) by @aimasteracc in #217
- chore(sync): post-release v0.1.7 → develop (gitflow back-merge) by @aimasteracc in #222
- meta(memory): resolve merge conflict in decisions.jsonl by @aimasteracc in #218
- fix(python): resolve self/cls method calls to enclosing class (#220) by @aimasteracc in #223
- docs(rfc): RFC-0093 MCP error model (draft) by @aimasteracc in #224
- docs(rfc): RFC-0094 token-efficient text output (draft) by @aimasteracc in #225
- docs(rfc): RFC-0095 runtime language pack loading (draft) by @aimasteracc in #226
- chore(sync): post-release v0.1.8 → develop (gitflow back-merge) by @aimasteracc in #230
- fix(python): attribute-assignment alias pattern (#229) by @aimasteracc in #231
- docs(rfc): RFC-0096 type-only import edge kind (draft) by @aimasteracc in #232
- docs(charter): release-gate rule — green CI required before release admin-merge by @aimasteracc in #233
- docs(charter): post-release sync rule — four-step ceremony by @aimasteracc in #235
- chore(sync): post-release v0.1.9 → develop (gitflow back-merge) by @aimasteracc in #236
- fix(python): skip imports inside if TYPE_CHECKING blocks (#227) by @aimasteracc in #237
- fix(python): fallback query for nested attribute calls (RFC-0092 regression) by @aimasteracc in #238
- chore(sync): post-release v0.1.10 → develop (gitflow back-merge) by @aimasteracc in #240
- feat(mcp): RFC-0094 Phase 1 — Formatter trait + Text/JSON/MsgpackHex impls by @aimasteracc in #241
- chore(pm): refresh PM state v0.1.6→v0.1.10 + decisions.jsonl entry by @aimasteracc in #242
- feat(mcp): RFC-0093 Phase 1 — application-level error model helpers by @aimasteracc in #243
- feat(mcp): RFC-0094 Phase 2 PoC — output_format per-request for basic-queries by @aimasteracc in #244
- test(mcp): cross-tool MCP response contract tests (issue #211) by @aimasteracc in #249
- feat(extractor): Python Extends edges + callback dead-code fix (issues #245, #247) by @aimasteracc in #250
- feat(store): add include_inherited to get-descendants (issue #248) by @aimasteracc in #254
- feat(store): add include_virtual to get-callers for virtual dispatch (issue #246) by @aimasteracc in #255
- chore(pm): PM state refresh — v0.1.11 sprint + #245-248 triage by @aimasteracc in #252
- chore(pm): add MCP is_error P2 item + rmcp 1.7 arch note to PM state by @aimasteracc in #258
- feat(mcp): RFC-0094 Phase 3 — output_format on all remaining 83 query tools by @aimasteracc in #259
- test(core): Charter §2 SLA — 100K-node heavy-graph benchmark row by @aimasteracc in #262
- fix(packs): sync stale Python pack queries + pack-parity CI gate (issue #260) by @aimasteracc in #263
- fix(extractor): regression guard for cross-file Extends resolution (issue #261) by @aimasteracc in #264
- chore(pm): correct PM state — #245-248 all closed, sprint criteria updated by @aimasteracc in #256
- chore(pm): v0.1.11 sprint complete — update PM state + memory by @aimasteracc in #265
- feat(mcp): issue #206 S1 — set is_error on all 90 MCP tool handlers by @aimasteracc in #266
- fix(packs): remove depth-2+ chain call fallback — issue #214 Pattern 3 by @aimasteracc in #270
- chore(pm): v0.1.12 kickoff — #266+#270 merged, #267/#268 triaged, release/v0.1.11 unblocked by @aimasteracc in #271
- fix(extractor): resolve cross-file Extends via alias table — issues #267/#268 by @aimasteracc in #272
- docs(mcp): document output_format per transport — RFC-0094 §206 S2 by @aimasteracc in #274
- docs(call-graph): document autouse conftest fixture limitation — issue #269 by @aimasteracc in #273
- feat(extractor): RFC-0092 Phase 2 — TypeScript/JS alias resolution by @aimasteracc in #277
- chore(pm): update PM state — v0.1.11 release open, v0.1.12 priorities corrected by @aimasteracc in #276
- feat(extractor): RFC-00...
v0.1.11 — Python cross-file Extends, MCP is_error, token-efficient output
v0.1.11 — Python cross-file Extends, MCP is_error, token-efficient output
Highlights
- Python inheritance edges —
get-callers --include-virtual,get-descendants --include-inherited, cross-file Extends resolution (Issues #245–248, #267–268) - MCP
is_errorsweep — all 90 tool handlers now setis_error: Some(true/false)per rmcp 1.7 (Issue #206 S1) - Token-efficient output —
output_format: text/jsonper transport, RFC-0094 Phase 2+3, 73% token savings in text mode (Issue #206 S2) - RFC-0095 runtime packs — drop-in community packs via
MYCELIUM_PACKS_DIR/--packs-dirwithout recompile - RFC-0092 alias resolution — TypeScript, JavaScript, and Python
import X as Y; X.method()now resolve to real definitions - Charter §2 SLA — 100K-node graph indexed in <30s; 6 SLA tests in CI
- Issue #214 Pattern 3 — depth-2+ attribute chains no longer produce 1,472 false callers
- Issue #214 Pattern 2 —
from .mod import Xnow correctly resolves to symbol, not spurious file path
Install
cargo install mycelium-rcig-cli
pip install mycelium-rcig
npm install -g @mycelium-rcig/nodeFull changelog
See CHANGELOG.md for the complete list of changes.