Skip to content

feat(commands): /rune:configure renders diagnostics, not reload_pipelines#124

Merged
couragehong merged 1 commit into
feat/go-migrationfrom
couragehong/feat/configure-diagnostics-summary
May 8, 2026
Merged

feat(commands): /rune:configure renders diagnostics, not reload_pipelines#124
couragehong merged 1 commit into
feat/go-migrationfrom
couragehong/feat/configure-diagnostics-summary

Conversation

@couragehong
Copy link
Copy Markdown
Contributor

/rune:configure 하고 나면 출력되는 상태 정보를 reload_pipelines 응답에서 diagnostics 응답으로 갈아끼웁니다.
/rune:status에 runed (Embedder), model/dim 정보까지 같이 표시됩니다.

The completion summary used to render only what reload_pipelines returned, which is intentionally a thin trigger contract — state + scribe/retriever booleans + warmup probe. The struct has no embedder field, so the user-facing summary silently omitted the runed (Embedder) connection — even though boot-loop completion implicitly guarantees it is alive (boot returns bootRetry on embedder.New failure, so a state==Active reload result already implies embedder is dialled).

The "implicit guarantee" is fine for service correctness, but a user who just ran /rune:configure has no way of seeing it. They should not have to read the boot-loop source to trust that runed dialled.

Switch /rune:configure's summary to call mcp__envector__diagnostics after reload_pipelines and render the per-subsystem snapshot. This:

  • Surfaces the embedder/runed health (Model + mode + vector_dim, matching what /rune:status already shows).
  • Treats reload_pipelines as the trigger and diagnostics as the ground-truth probe — the same separation /rune:status already uses.
  • Reuses the existing DiagnosticsResult — no Go-side changes.
  • Costs one extra round-trip (diagnostics is fast: parallel probes with 5s timeouts), which is fine for a one-shot setup command.

allowed-tools widened by mcp__envector__diagnostics.

…ines

The completion summary used to render only what `reload_pipelines`
returned, which is intentionally a thin trigger contract — state +
scribe/retriever booleans + warmup probe. The struct has no embedder
field, so the user-facing summary silently omitted the runed (Embedder)
connection — even though boot-loop completion implicitly guarantees
it is alive (boot returns bootRetry on embedder.New failure, so a
state==Active reload result already implies embedder is dialled).

The "implicit guarantee" is fine for service correctness, but a user
who just ran /rune:configure has no way of seeing it. They should
not have to read the boot-loop source to trust that runed dialled.

Switch /rune:configure's summary to call mcp__envector__diagnostics
after reload_pipelines and render the per-subsystem snapshot. This:

- Surfaces the embedder/runed health (Model + mode + vector_dim,
  matching what /rune:status already shows).
- Treats reload_pipelines as the trigger and diagnostics as the
  ground-truth probe — the same separation /rune:status already uses.
- Reuses the existing DiagnosticsResult — no Go-side changes.
- Costs one extra round-trip (diagnostics is fast: parallel probes
  with 5s timeouts), which is fine for a one-shot setup command.

allowed-tools widened by `mcp__envector__diagnostics`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@couragehong couragehong self-assigned this May 8, 2026
@couragehong couragehong merged commit 1500239 into feat/go-migration May 8, 2026
1 check passed
@couragehong couragehong deleted the couragehong/feat/configure-diagnostics-summary branch May 8, 2026 00:42
couragehong added a commit that referenced this pull request May 8, 2026
The Go rune-mcp at internal/* + cmd/rune-mcp/ has reached parity (PR
#102 + #110 + #117) and end-to-end verification (#118, #122, #124),
which means the Python tree is now dead weight. Carrying both
implementations is actively misleading: a fresh contributor following
the in-repo install instructions would still land in mcp/ + agents/
and try to set up a venv that no longer ships, and parity audits keep
re-discovering the Python source instead of treating the Go side as
the source of truth.

Removed
-------

  agents/common/        12 files  (config, embedding, llm, schemas)
  agents/retriever/      4 files  (query_processor, searcher, synthesizer)
  agents/scribe/        12 files  (detector, llm_extractor, handlers, server)
  agents/tests/         16 files  (pytest suite)
  agents/__init__.py
  agents/README.md            (Python agents intro — gone with the impl)
  agents/SLACK_SETUP.md       (Slack notifier setup for Python scribe)
  mcp/                  18 files  (Python adapter + server + tests)
  requirements.txt            (root Python dependency list)
  scripts/migrate_embeddings.py (one-off Python migration helper)

  Total: 67 files, 17,815 lines.

Kept (intentional)
------------------

  agents/claude/{scribe,retriever}.md   referenced by .claude-plugin/
                                        plugin.json — agent prompts that
                                        the runtime loads
  agents/codex/scribe.md                Codex-side agent prompt
  agents/gemini/{scribe,retriever}.md   Gemini-side agent prompts
  benchmark/                            deferred (separate decision —
                                        rewrite in Go vs delete entirely)
  docs/v04/spec/python-mapping.md       parity blueprint that maps Python
                                        source to Go destinations; useful
                                        as a historical record post-deletion
  docs/migration/*.md                   migration plan + audit trail —
                                        intentional history
  scripts/bootstrap-mcp.sh and other    referenced by gemini-extension.json;
    Python-era shell scripts            removal blocked on Gemini support
                                        decision (separate PR)

Not in scope
------------

  .github/workflows/pr-tests.yml + pr-comment.yml — Python pytest CI;
    handled by PR #125 (ci-drop-python).
  README.md, CLAUDE.md, SKILL.md, AGENT_INTEGRATION.md, GEMINI.md,
    CONTRIBUTING.md — top-level docs still describe the v0.3 install
    flow; rewrite scheduled separately so this commit stays focused
    on code deletion.

Verification
------------

  go build ./...   passes
  go vet ./...     passes
  go test ./...    full suite passes (no test referenced deleted paths)
  grep across remaining .{go,md,json,sh,toml,yml,yaml} for the deleted
    paths returned zero hits — no dangling references.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant