Skip to content

v0.1.18 — reactive-completion roadmap complete

Choose a tag to compare

@aimasteracc aimasteracc released this 03 Jun 12:30
· 37 commits to main since this release
e429a22

反应式完成路线图 — 全部 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_subscribe
  • mycelium_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() with try_read() in async watch paths. Watch loop no longer panics on subscribe-contention.
  • Rust extractor now captures Type::method() and crate::mod::func() call sites (dogfood-found correctness bug — every scoped-path call site was silently dropped including all WatchEngine::*, Arc::clone, etc.).

Install

cargo install mycelium-rcig-cli
# or
npm install -g @mycelium/cli
# or
pip install mycelium-rcig

Quality 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.