Repository navigation
rune CLI v0.4.0
rune is FHE-encrypted shared memory for AI agents — it gives every agent on a team the collective experience of the whole organization, captured and recalled automatically over the embedding → AES encryption → enVector storage / FHE search path, with key custody and decryption delegated to Vault.
This release is a ground-up runtime change: the v0.3 Python MCP plugin is gone, replaced by a single self-installing Go binary (rune) that the agent host launches over stdio. The plugin install now drops only a small bootstrap; the real runtime is fetched and wired up on first /rune:configure, in the same session, with no manual install and no restart.
Highlights
- Single Go binary, no Python runtime.
runeships as one static binary per platform (darwin-arm64,linux-amd64,linux-arm64) with subcommands —mcp-server,install,runed,verify,version. The entire v0.3 Pythonrune-mcptree has been removed. - Self-bootstrapping plugin. The plugin entry is a bash wrapper that always exists at session start; on first MCP spawn it self-installs
rune-mcpand execs it, so the server comes online in the same session — no manual reconnect. - Supervisor mode + installer.
rune installhandles binary download, daemon setup, and audited installation; supervisor mode keeps the runtime healthy. Tarball +manifest.jsonbased releases resolve the right downstream asset per build OS. - End-to-end boot loop & lifecycle.
starting → waiting_for_vault → active ↔ dormant, with partial-readiness support, dormant-reload re-spawn, and fast-fail/rune:configuredriven by classified boot errors. - Resilient enVector connectivity. Connection recovery on failure via a gRPC interceptor, automatic reconnect, and embedder status surfaced in
diagnostics. - Ported policy / service / adapter layers. Pure domain & policy logic (novelty, rerank, query shaping) ported from Python to Go behind a strict no-I/O boundary, gated by Python-parity tests.
- Structured, redacting observability. A redacting
sloghandler is wired intorune-mcp, with recall-pipeline tracing and a dedicated log file.
Notable fixes
- MCP tool names drop the
rune_prefix for Python parity, and the MCP namespace was renamedenvector→rune. servicenow base64-encodes the enVector cipher beforeVault.DecryptScores, fixing score decryption.- Vault gRPC errors are mapped via
MapGRPCErrorwith a 256 MB message limit. rune-aware truncation keeps capture payloads UTF-8-valid for the embedder.capture_historyworks again —CaptureLog+ConfigDirare now wired inbuildDeps.- Embedder
IDLE/idle state renders as healthy in status/diagnostics instead of an error. - Delete functionality is temporarily hidden pending follow-up.
Pinned runtime
rune-mcpv0.1.0runedv0.1.0
Install
Claude Code:
> /plugin marketplace add https://github.com/CryptoLabInc/rune
> /plugin install rune
> /rune:configure
Codex CLI: $skill-installer install https://github.com/CryptoLabInc/rune.git
/rune:configure (or $rune configure on Codex) downloads the runtime, sets up the daemon, and collects your Vault credentials in a single flow.
Requirements
- A reachable Vault instance (gRPC) for key management and FHE decryption — Vault endpoint + token from your team admin
- enVector Cloud backend (credentials delivered automatically via the Vault bundle)
runedshared daemon runtime
Full Changelog: v0.3.1...v0.4.0
What's Changed
- fix: track deletion sites and decorator lines in test change detection by @heeyeon01 in #68
- feat: enhanced connection stability to enVector cloud by @esifea in #61
- ci: suppress PR comment when all tests pass (skips OK) by @couragehong in #88
- ci: add Go test job (skips when go.mod absent) by @couragehong in #89
- refactor(mcp-go): implement pure domain / policy logic without I/O side effects by @esifea in #90
- feat(go): Phase A — MCP boot (handshake + tools/list + 8 stub tools) by @couragehong in #86
- test(go): MCP tool registration + shutdown helper coverage by @couragehong in #87
- yg/phase a6 policy query tests by @couragehong in #91
- test(go): policy rerank + novelty — formula / sort / Python parity gates by @couragehong in #92
- docs(v04): align spec with shipped runed/vault/envector SDKs by @couragehong in #97
- refactor(mcp): canonical porting of policy in Go from Python by @esifea in #93
- refactor(mcp): port adapters (external I/O wrapper) by @esifea in #95
- refactor(mcp): port service business logic in Go by @esifea in #96
- docs updated by @couragehong in #105
- feat(mcp): envector-go-sdk integration by @esifea in #103
- feat: implement boot loop by @esifea in #104
- feat(runed): runed daemon gRPC client implementation by @couragehong in #101
- fix(vault): #103 follow-up — MapGRPCError + 256MB + tests by @couragehong in #106
- feat(boot): end-to-end boot loop — super-set of #104 by @couragehong in #110
- feat(mcp): replace stub handlers with service dispatch by @couragehong in #102
- fix(mcp): drop rune_ prefix from tool names (Python parity) by @couragehong in #113
- feat(plugin): v0.4 manifest — Go binary entry, version 0.4.0-dev by @couragehong in #114
- fix(mcp): wire CaptureLog + ConfigDir in buildDeps for capture history by @couragehong in #116
- fix(lifecycle): re-spawn boot loop on dormant reload by @couragehong in #117
- feat(plugin): /rune:configure rewrite for v0.4 Go binary by @couragehong in #115
- fix(service): base64-encode envector cipher before Vault.DecryptScores by @couragehong in #118
- chore(dev): add scripts/dev/v04/dev-preflight.sh by @couragehong in #120
- chore(deps): bump envector-go-sdk v0.1.0 → v0.1.1 by @couragehong in #121
- feat(observability): recall pipeline tracing + log file by @couragehong in #119
- chore(commands): rewrite /rune:* slash commands for v0.4 Go binary by @couragehong in #122
- fix(dev/preflight): resolve REPO three levels up from script location by @couragehong in #123
- feat(commands): /rune:configure renders diagnostics, not reload_pipelines by @couragehong in #124
- style: gofmt -w on Go sources by @couragehong in #127
- feat(obs): wire redacting slog handler into rune-mcp by @couragehong in #126
- chore: v04 hardening by @couragehong in #128
- docs: rewrite top-level docs for v0.4 (Go binary, no Python runtime) by @couragehong in #130
- chore(ci): gate PR Tests to main-targeting PRs only (silence v0.4 line) by @couragehong in #131
- chore: remove Python rune-mcp tree (v0.3 implementation) by @couragehong in #129
- feat(mcp): add Embedder status on diagnostics by @esifea in #134
- feat(mcp): recovering enVector connection on failure by @esifea in #132
- feat(mcp): recover connection failure with gRPC interceptor by @esifea in #135
- fix(policy): rune-aware truncation to keep payload UTF-8 valid for embedder by @couragehong in #137
- feat: add CLI installer and implement bootstrap by @esifea in #138
- fix(mcp): support partial readiness and align embedder Info cache with real state by @esifea in #139
- feat: fast-fail /rune:configure via classified boot errors by @couragehong in #136
- feat: prepare scripts for release by @esifea in #140
- refactor: extract
rune-mcpby @esifea in #141 - feat(command): update Claude command to use updated
rune-mcpby @esifea in #142 - feat(cli): add subcommands and minor refactoring by @esifea in #143
- feat(bootstrap): add audit installation by @esifea in #146
- feat(cli): add supervisor mode and enhance initial installation by @esifea in #144
- refactor: rename MCP namespace
envectortoruneby @esifea in #145 - feat: support Tarball install and release with manifest by @esifea in #147
- refactor: add release-ci safe guard and update docs for better UX by @esifea in #148
- fix(mcp): bootstrap rune-mcp on first MCP spawn (no manual reconnect) by @couragehong in #149
- refactor: remove deprecated v0.3 artifacts, fix dangling refs by @couragehong in #150
- ci: resolve downstream asset names by build OS in manifest by @jh-lee-cryptolab in #151
- chore: remove stale gemini-extension.json (v0.4 dropped contextFileName) by @couragehong in #152
- feat(status): render embedder IDLE as healthy, not an error by @couragehong in #153
- feat: bump up pinned releases by @esifea in #154
- refactor: minor updates for robustness on v0.4.0 by @esifea in #156
- feat: replace Python MCP plugin with Go runtime (v0.4.0) by @esifea in #155
- fix(ci): remove unsupported comment by @esifea in #157
- fix: temporarily hide the delete functionality by @couragehong in #159
- docs(scribe): document flat batch_capture item shape, warn against the wrapper anti-pattern by @jh-lee-cryptolab in #158
- chore: bump release pins (rune-mcp alpha.3, runed alpha.5) by @jh-lee-cryptolab in #160
- chore(pins): bump rune-mcp to v0.1.0-alpha.4 by @jh-lee-cryptolab in #161
- remove: cleanup outdated benchmark files by @couragehong in #162
- Bump .release-pins.yaml by @jh-lee-cryptolab in #163
- chore: release Claude plugin v0.4.0 by @esifea in #164
Full Changelog: v0.3.1...v0.4.0
What's Changed
- fix: track deletion sites and decorator lines in test change detection by @heeyeon01 in #68
- feat: enhanced connection stability to enVector cloud by @esifea in #61
- ci: suppress PR comment when all tests pass (skips OK) by @couragehong in #88
- ci: add Go test job (skips when go.mod absent) by @couragehong in #89
- refactor(mcp-go): implement pure domain / policy logic without I/O side effects by @esifea in #90
- feat(go): Phase A — MCP boot (handshake + tools/list + 8 stub tools) by @couragehong in #86
- test(go): MCP tool registration + shutdown helper coverage by @couragehong in #87
- yg/phase a6 policy query tests by @couragehong in #91
- test(go): policy rerank + novelty — formula / sort / Python parity gates by @couragehong in #92
- docs(v04): align spec with shipped runed/vault/envector SDKs by @couragehong in #97
- refactor(mcp): canonical porting of policy in Go from Python by @esifea in #93
- refactor(mcp): port adapters (external I/O wrapper) by @esifea in #95
- refactor(mcp): port service business logic in Go by @esifea in #96
- docs updated by @couragehong in #105
- feat(mcp): envector-go-sdk integration by @esifea in #103
- feat: implement boot loop by @esifea in #104
- feat(runed): runed daemon gRPC client implementation by @couragehong in #101
- fix(vault): #103 follow-up — MapGRPCError + 256MB + tests by @couragehong in #106
- feat(boot): end-to-end boot loop — super-set of #104 by @couragehong in #110
- feat(mcp): replace stub handlers with service dispatch by @couragehong in #102
- fix(mcp): drop rune_ prefix from tool names (Python parity) by @couragehong in #113
- feat(plugin): v0.4 manifest — Go binary entry, version 0.4.0-dev by @couragehong in #114
- fix(mcp): wire CaptureLog + ConfigDir in buildDeps for capture history by @couragehong in #116
- fix(lifecycle): re-spawn boot loop on dormant reload by @couragehong in #117
- feat(plugin): /rune:configure rewrite for v0.4 Go binary by @couragehong in #115
- fix(service): base64-encode envector cipher before Vault.DecryptScores by @couragehong in #118
- chore(dev): add scripts/dev/v04/dev-preflight.sh by @couragehong in #120
- chore(deps): bump envector-go-sdk v0.1.0 → v0.1.1 by @couragehong in #121
- feat(observability): recall pipeline tracing + log file by @couragehong in #119
- chore(commands): rewrite /rune:* slash commands for v0.4 Go binary by @couragehong in #122
- fix(dev/preflight): resolve REPO three levels up from script location by @couragehong in #123
- feat(commands): /rune:configure renders diagnostics, not reload_pipelines by @couragehong in #124
- style: gofmt -w on Go sources by @couragehong in #127
- feat(obs): wire redacting slog handler into rune-mcp by @couragehong in #126
- chore: v04 hardening by @couragehong in #128
- docs: rewrite top-level docs for v0.4 (Go binary, no Python runtime) by @couragehong in #130
- chore(ci): gate PR Tests to main-targeting PRs only (silence v0.4 line) by @couragehong in #131
- chore: remove Python rune-mcp tree (v0.3 implementation) by @couragehong in #129
- feat(mcp): add Embedder status on diagnostics by @esifea in #134
- feat(mcp): recovering enVector connection on failure by @esifea in #132
- feat(mcp): recover connection failure with gRPC interceptor by @esifea in #135
- fix(policy): rune-aware truncation to keep payload UTF-8 valid for embedder by @couragehong in #137
- feat: add CLI installer and implement bootstrap by @esifea in #138
- fix(mcp): support partial readiness and align embedder Info cache with real state by @esifea in #139
- feat: fast-fail /rune:configure via classified boot errors by @couragehong in #136
- feat: prepare scripts for release by @esifea in #140
- refactor: extract
rune-mcpby @esifea in #141 - feat(command): update Claude command to use updated
rune-mcpby @esifea in #142 - feat(cli): add subcommands and minor refactoring by @esifea in #143
- feat(bootstrap): add audit installation by @esifea in #146
- feat(cli): add supervisor mode and enhance initial installation by @esifea in #144
- refactor: rename MCP namespace
envectortoruneby @esifea in #145 - feat: support Tarball install and release with manifest by @esifea in #147
- refactor: add release-ci safe guard and update docs for better UX by @esifea in #148
- fix(mcp): bootstrap rune-mcp on first MCP spawn (no manual reconnect) by @couragehong in #149
- refactor: remove deprecated v0.3 artifacts, fix dangling refs by @couragehong in #150
- ci: resolve downstream asset names by build OS in manifest by @jh-lee-cryptolab in #151
- chore: remove stale gemini-extension.json (v0.4 dropped contextFileName) by @couragehong in #152
- feat(status): render embedder IDLE as healthy, not an error by @couragehong in #153
- feat: bump up pinned releases by @esifea in #154
- refactor: minor updates for robustness on v0.4.0 by @esifea in #156
- feat: replace Python MCP plugin with Go runtime (v0.4.0) by @esifea in #155
- fix(ci): remove unsupported comment by @esifea in #157
- fix: temporarily hide the delete functionality by @couragehong in #159
- docs(scribe): document flat batch_capture item shape, warn against the wrapper anti-pattern by @jh-lee-cryptolab in #158
- chore: bump release pins (rune-mcp alpha.3, runed alpha.5) by @jh-lee-cryptolab in #160
- chore(pins): bump rune-mcp to v0.1.0-alpha.4 by @jh-lee-cryptolab in #161
- remove: cleanup outdated benchmark files by @couragehong in #162
- Bump .release-pins.yaml by @jh-lee-cryptolab in #163
- chore: release Claude plugin v0.4.0 by @esifea in #164
- fix(bootstrap): retry transient network failures during install by @jh-lee-cryptolab in #165
Full Changelog: v0.3.1...v0.4.0
What's Changed
- fix: track deletion sites and decorator lines in test change detection by @heeyeon01 in #68
- feat: enhanced connection stability to enVector cloud by @esifea in #61
- ci: suppress PR comment when all tests pass (skips OK) by @couragehong in #88
- ci: add Go test job (skips when go.mod absent) by @couragehong in #89
- refactor(mcp-go): implement pure domain / policy logic without I/O side effects by @esifea in #90
- feat(go): Phase A — MCP boot (handshake + tools/list + 8 stub tools) by @couragehong in #86
- test(go): MCP tool registration + shutdown helper coverage by @couragehong in #87
- yg/phase a6 policy query tests by @couragehong in #91
- test(go): policy rerank + novelty — formula / sort / Python parity gates by @couragehong in #92
- docs(v04): align spec with shipped runed/vault/envector SDKs by @couragehong in #97
- refactor(mcp): canonical porting of policy in Go from Python by @esifea in #93
- refactor(mcp): port adapters (external I/O wrapper) by @esifea in #95
- refactor(mcp): port service business logic in Go by @esifea in #96
- docs updated by @couragehong in #105
- feat(mcp): envector-go-sdk integration by @esifea in #103
- feat: implement boot loop by @esifea in #104
- feat(runed): runed daemon gRPC client implementation by @couragehong in #101
- fix(vault): #103 follow-up — MapGRPCError + 256MB + tests by @couragehong in #106
- feat(boot): end-to-end boot loop — super-set of #104 by @couragehong in #110
- feat(mcp): replace stub handlers with service dispatch by @couragehong in #102
- fix(mcp): drop rune_ prefix from tool names (Python parity) by @couragehong in #113
- feat(plugin): v0.4 manifest — Go binary entry, version 0.4.0-dev by @couragehong in #114
- fix(mcp): wire CaptureLog + ConfigDir in buildDeps for capture history by @couragehong in #116
- fix(lifecycle): re-spawn boot loop on dormant reload by @couragehong in #117
- feat(plugin): /rune:configure rewrite for v0.4 Go binary by @couragehong in #115
- fix(service): base64-encode envector cipher before Vault.DecryptScores by @couragehong in #118
- chore(dev): add scripts/dev/v04/dev-preflight.sh by @couragehong in #120
- chore(deps): bump envector-go-sdk v0.1.0 → v0.1.1 by @couragehong in #121
- feat(observability): recall pipeline tracing + log file by @couragehong in #119
- chore(commands): rewrite /rune:* slash commands for v0.4 Go binary by @couragehong in #122
- fix(dev/preflight): resolve REPO three levels up from script location by @couragehong in #123
- feat(commands): /rune:configure renders diagnostics, not reload_pipelines by @couragehong in #124
- style: gofmt -w on Go sources by @couragehong in #127
- feat(obs): wire redacting slog handler into rune-mcp by @couragehong in #126
- chore: v04 hardening by @couragehong in #128
- docs: rewrite top-level docs for v0.4 (Go binary, no Python runtime) by @couragehong in #130
- chore(ci): gate PR Tests to main-targeting PRs only (silence v0.4 line) by @couragehong in #131
- chore: remove Python rune-mcp tree (v0.3 implementation) by @couragehong in #129
- feat(mcp): add Embedder status on diagnostics by @esifea in #134
- feat(mcp): recovering enVector connection on failure by @esifea in #132
- feat(mcp): recover connection failure with gRPC interceptor by @esifea in #135
- fix(policy): rune-aware truncation to keep payload UTF-8 valid for embedder by @couragehong in #137
- feat: add CLI installer and implement bootstrap by @esifea in #138
- fix(mcp): support partial readiness and align embedder Info cache with real state by @esifea in #139
- feat: fast-fail /rune:configure via classified boot errors by @couragehong in #136
- feat: prepare scripts for release by @esifea in #140
- refactor: extract
rune-mcpby @esifea in #141 - feat(command): update Claude command to use updated
rune-mcpby @esifea in #142 - feat(cli): add subcommands and minor refactoring by @esifea in #143
- feat(bootstrap): add audit installation by @esifea in #146
- feat(cli): add supervisor mode and enhance initial installation by @esifea in #144
- refactor: rename MCP namespace
envectortoruneby @esifea in #145 - feat: support Tarball install and release with manifest by @esifea in #147
- refactor: add release-ci safe guard and update docs for better UX by @esifea in #148
- fix(mcp): bootstrap rune-mcp on first MCP spawn (no manual reconnect) by @couragehong in #149
- refactor: remove deprecated v0.3 artifacts, fix dangling refs by @couragehong in #150
- ci: resolve downstream asset names by build OS in manifest by @jh-lee-cryptolab in #151
- chore: remove stale gemini-extension.json (v0.4 dropped contextFileName) by @couragehong in #152
- feat(status): render embedder IDLE as healthy, not an error by @couragehong in #153
- feat: bump up pinned releases by @esifea in #154
- refactor: minor updates for robustness on v0.4.0 by @esifea in #156
- feat: replace Python MCP plugin with Go runtime (v0.4.0) by @esifea in #155
- fix(ci): remove unsupported comment by @esifea in #157
- fix: temporarily hide the delete functionality by @couragehong in #159
- docs(scribe): document flat batch_capture item shape, warn against the wrapper anti-pattern by @jh-lee-cryptolab in #158
- chore: bump release pins (rune-mcp alpha.3, runed alpha.5) by @jh-lee-cryptolab in #160
- chore(pins): bump rune-mcp to v0.1.0-alpha.4 by @jh-lee-cryptolab in #161
- remove: cleanup outdated benchmark files by @couragehong in #162
- Bump .release-pins.yaml by @jh-lee-cryptolab in #163
- chore: release Claude plugin v0.4.0 by @esifea in #164
- fix(bootstrap): retry transient network failures during install by @jh-lee-cryptolab in #165
Full Changelog: v0.3.1...v0.4.0
What's Changed
- fix: track deletion sites and decorator lines in test change detection by @heeyeon01 in #68
- feat: enhanced connection stability to enVector cloud by @esifea in #61
- ci: suppress PR comment when all tests pass (skips OK) by @couragehong in #88
- ci: add Go test job (skips when go.mod absent) by @couragehong in #89
- refactor(mcp-go): implement pure domain / policy logic without I/O side effects by @esifea in #90
- feat(go): Phase A — MCP boot (handshake + tools/list + 8 stub tools) by @couragehong in #86
- test(go): MCP tool registration + shutdown helper coverage by @couragehong in #87
- yg/phase a6 policy query tests by @couragehong in #91
- test(go): policy rerank + novelty — formula / sort / Python parity gates by @couragehong in #92
- docs(v04): align spec with shipped runed/vault/envector SDKs by @couragehong in #97
- refactor(mcp): canonical porting of policy in Go from Python by @esifea in #93
- refactor(mcp): port adapters (external I/O wrapper) by @esifea in #95
- refactor(mcp): port service business logic in Go by @esifea in #96
- docs updated by @couragehong in #105
- feat(mcp): envector-go-sdk integration by @esifea in #103
- feat: implement boot loop by @esifea in #104
- feat(runed): runed daemon gRPC client implementation by @couragehong in #101
- fix(vault): #103 follow-up — MapGRPCError + 256MB + tests by @couragehong in #106
- feat(boot): end-to-end boot loop — super-set of #104 by @couragehong in #110
- feat(mcp): replace stub handlers with service dispatch by @couragehong in #102
- fix(mcp): drop rune_ prefix from tool names (Python parity) by @couragehong in #113
- feat(plugin): v0.4 manifest — Go binary entry, version 0.4.0-dev by @couragehong in #114
- fix(mcp): wire CaptureLog + ConfigDir in buildDeps for capture history by @couragehong in #116
- fix(lifecycle): re-spawn boot loop on dormant reload by @couragehong in #117
- feat(plugin): /rune:configure rewrite for v0.4 Go binary by @couragehong in #115
- fix(service): base64-encode envector cipher before Vault.DecryptScores by @couragehong in #118
- chore(dev): add scripts/dev/v04/dev-preflight.sh by @couragehong in #120
- chore(deps): bump envector-go-sdk v0.1.0 → v0.1.1 by @couragehong in #121
- feat(observability): recall pipeline tracing + log file by @couragehong in #119
- chore(commands): rewrite /rune:* slash commands for v0.4 Go binary by @couragehong in #122
- fix(dev/preflight): resolve REPO three levels up from script location by @couragehong in #123
- feat(commands): /rune:configure renders diagnostics, not reload_pipelines by @couragehong in #124
- style: gofmt -w on Go sources by @couragehong in #127
- feat(obs): wire redacting slog handler into rune-mcp by @couragehong in #126
- chore: v04 hardening by @couragehong in #128
- docs: rewrite top-level docs for v0.4 (Go binary, no Python runtime) by @couragehong in #130
- chore(ci): gate PR Tests to main-targeting PRs only (silence v0.4 line) by @couragehong in #131
- chore: remove Python rune-mcp tree (v0.3 implementation) by @couragehong in #129
- feat(mcp): add Embedder status on diagnostics by @esifea in #134
- feat(mcp): recovering enVector connection on failure by @esifea in #132
- feat(mcp): recover connection failure with gRPC interceptor by @esifea in #135
- fix(policy): rune-aware truncation to keep payload UTF-8 valid for embedder by @couragehong in #137
- feat: add CLI installer and implement bootstrap by @esifea in #138
- fix(mcp): support partial readiness and align embedder Info cache with real state by @esifea in #139
- feat: fast-fail /rune:configure via classified boot errors by @couragehong in #136
- feat: prepare scripts for release by @esifea in #140
- refactor: extract
rune-mcpby @esifea in #141 - feat(command): update Claude command to use updated
rune-mcpby @esifea in #142 - feat(cli): add subcommands and minor refactoring by @esifea in #143
- feat(bootstrap): add audit installation by @esifea in #146
- feat(cli): add supervisor mode and enhance initial installation by @esifea in #144
- refactor: rename MCP namespace
envectortoruneby @esifea in #145 - feat: support Tarball install and release with manifest by @esifea in #147
- refactor: add release-ci safe guard and update docs for better UX by @esifea in #148
- fix(mcp): bootstrap rune-mcp on first MCP spawn (no manual reconnect) by @couragehong in #149
- refactor: remove deprecated v0.3 artifacts, fix dangling refs by @couragehong in #150
- ci: resolve downstream asset names by build OS in manifest by @jh-lee-cryptolab in #151
- chore: remove stale gemini-extension.json (v0.4 dropped contextFileName) by @couragehong in #152
- feat(status): render embedder IDLE as healthy, not an error by @couragehong in #153
- feat: bump up pinned releases by @esifea in #154
- refactor: minor updates for robustness on v0.4.0 by @esifea in #156
- feat: replace Python MCP plugin with Go runtime (v0.4.0) by @esifea in #155
- fix(ci): remove unsupported comment by @esifea in #157
- fix: temporarily hide the delete functionality by @couragehong in #159
- docs(scribe): document flat batch_capture item shape, warn against the wrapper anti-pattern by @jh-lee-cryptolab in #158
- chore: bump release pins (rune-mcp alpha.3, runed alpha.5) by @jh-lee-cryptolab in #160
- chore(pins): bump rune-mcp to v0.1.0-alpha.4 by @jh-lee-cryptolab in #161
- remove: cleanup outdated benchmark files by @couragehong in #162
- Bump .release-pins.yaml by @jh-lee-cryptolab in #163
- chore: release Claude plugin v0.4.0 by @esifea in #164
- fix(bootstrap): retry transient network failures during install by @jh-lee-cryptolab in #165
Full Changelog: v0.3.1...v0.4.0