Skip to content

feat(ru-fork): MCP server management (catalog, bindings, overlay engine)#10

Merged
ru-code-dev merged 1 commit into
ru-codefrom
feat/mcp
Jun 15, 2026
Merged

feat(ru-fork): MCP server management (catalog, bindings, overlay engine)#10
ru-code-dev merged 1 commit into
ru-codefrom
feat/mcp

Conversation

@ru-code-dev

Copy link
Copy Markdown
Owner

Event-sourced management of MCP servers for qwen sessions: a catalog of server templates (command/args/headers with ${VAR} holes) bound per project, projected to SQLite, and handed to qwen via a per-project settings overlay.

Core

  • packages/mcp-core: config resolver, connectivity probe, structural config identity + overlay fingerprint, tool-policy model.

Server

  • Catalog/bindings as event-sourced commands + projections; config- uniqueness guard, required-var validation, built-in template sync.
  • Overlay engine: writes the per-project qwen settings overlay (QWEN_CODE_SYSTEM_SETTINGS_PATH) + server allowlist at turn-start; the provider reactor respawns the session only when the overlay fingerprint changes. Whole engine gated by MCP_ENGINE_USE_OVERLAY.
  • Secrets live server-side only (scrypt + AES-GCM at rest), never in events, projections, or the client.
  • Ephemeral overlay: the resolved overlay (plaintext secrets) is deleted on every spawn settle and swept on app start/shutdown; a new ACP start timeout (ACP_SESSION_START_TIMEOUT_MS) turns a wedged qwen --acp boot into an error so the cleanup reliably fires.
  • Per-server trust flag, 64-bit dedup hash, readable error toasts.

Web

  • MCP management UI: catalog list + detail, per-project config dialog, shared item card / control cluster.

Tests

  • mcp-core unit tests + server integration (overlay apply & fingerprint, reactor respawn, secret-at-rest, ephemeral deletion, start timeout) plus the mcp-probe harness against real qwen.

Event-sourced management of MCP servers for qwen sessions: a catalog of
server templates (command/args/headers with ${VAR} holes) bound per
project, projected to SQLite, and handed to qwen via a per-project
settings overlay.

Core
- packages/mcp-core: config resolver, connectivity probe, structural
  config identity + overlay fingerprint, tool-policy model.

Server
- Catalog/bindings as event-sourced commands + projections; config-
  uniqueness guard, required-var validation, built-in template sync.
- Overlay engine: writes the per-project qwen settings overlay
  (QWEN_CODE_SYSTEM_SETTINGS_PATH) + server allowlist at turn-start; the
  provider reactor respawns the session only when the overlay fingerprint
  changes. Whole engine gated by MCP_ENGINE_USE_OVERLAY.
- Secrets live server-side only (scrypt + AES-GCM at rest), never in
  events, projections, or the client.
- Ephemeral overlay: the resolved overlay (plaintext secrets) is deleted
  on every spawn settle and swept on app start/shutdown; a new ACP start
  timeout (ACP_SESSION_START_TIMEOUT_MS) turns a wedged `qwen --acp` boot
  into an error so the cleanup reliably fires.
- Per-server trust flag, 64-bit dedup hash, readable error toasts.

Web
- MCP management UI: catalog list + detail, per-project config dialog,
  shared item card / control cluster.

Tests
- mcp-core unit tests + server integration (overlay apply & fingerprint,
  reactor respawn, secret-at-rest, ephemeral deletion, start timeout)
  plus the mcp-probe harness against real qwen.
@ru-code-dev
ru-code-dev merged commit af446c9 into ru-code Jun 15, 2026
1 check passed
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