Skip to content

fix: MCP tool id registry, per-session ACP MCP servers, usage accounting and hardening batch - #7078

Merged
bug-ops merged 29 commits into
mainfrom
feat/7075-mcp-tool-id-registries
Nov 14, 2026
Merged

bug-ops merged 29 commits into
mainfrom
feat/7075-mcp-tool-id-registries

Conversation

@bug-ops

@bug-ops bug-ops commented Nov 14, 2026

Copy link
Copy Markdown
Owner

Summary

Batch of 26 backlog issues: single-writer MCP tool id registry with a typed McpServerId, per-session ACP IDE MCP servers, Claude usage and error handling, chain-of-entropy wiring, secret scrubber hardening, sub-agent block recording and inherited trust, CI clippy coverage, and mechanical cleanups.

  • MCP: McpToolList single writer and McpToolIdsHandle replace four registries and colon-split server ids; fail-safe join with executor definitions is kept; shadowed tools are shown in /mcp list and the TUI.
  • ACP: IDE mcpServers are leased per session on new, load, fork and resume with ownership-safe release and release on connection close. Tools of IDE servers stay hidden (fail-closed) until an allowlist source exists.
  • LLM: logprobs feed ChatExtras.entropy (OpenAI, compatible, Ollama) with a retry latch; CoE shadow usage goes to auxiliary; background and ensemble usage is billed at the serving provider's speed, counters and model price; Claude usage.speed, speed latch, 404 detail logged once.
  • Security: scrubber boundaries (CSI, colon SGR, =3D, split tokens), scrubbed provider error text, sub-agent pre-dispatch block recording, inherited trust floor for transcripts and knowledge import, Telegram guest proxy body cap.
  • CI: clippy entries for zeph-skills/miner and test-utils of zeph-db, zeph-memory, zeph-index, zeph-orchestration; weekly stable-toolchain clippy workflow.
  • Cleanup: map_or_default and assert_matches! sweep, shared BodyLimit::from_const, plugin overlay renderer, goal list errors, serve store_routing.

Breaking changes (listed in CHANGELOG): McpServerId in MCP types, removed SpawnContext.session_mcp_servers/mcp_tool_names and TranscriptMeta.mcp_tool_names, LlmError::ApiError.detail, llm.coe.intra_threshold range widened to any finite value >= 0.

Closing notes

Verification

Full CI-matching suite on the final HEAD: fmt, clippy --profile ci (CI feature set, miner, test-utils entries), nextest lib+bins (16866 passed), rustdoc gate, cargo check -D warnings --locked, doc-tests, root integration tests. Local rustc is 1.100 while CI pins 1.98; four 1.100-only lints were suppressed locally.

LLM serialization gate: live round-trip on local Ollama (qwen2.5:0.5b) with chat_with_extras logprobs and a two-turn agent session without 400/422. Not exercised live: the OpenAI path and the 400 retry latch (wiremock only), CoE escalation through the router, Claude fast-mode billing and 404 detail (unit and wiremock tests only).

Follow-up issues: listed in a comment below.

Closes #7075
Closes #7071
Closes #7072
Closes #7070
Closes #7069
Closes #7074
Closes #7073
Closes #7064
Closes #7066
Closes #7063
Closes #7058
Closes #6956
Closes #7052
Closes #7065
Closes #7055
Closes #7027
Closes #7029
Closes #7062
Closes #7061
Closes #7057
Closes #7056
Closes #7060
Closes #7059
Closes #6940
Closes #6925
Closes #7026

… per-session ACP executor

BREAKING CHANGE: SpawnContext.session_mcp_servers and TranscriptMeta.mcp_tool_names are removed; MCP tool ids come from the shared handle.

Closes #7075
Closes #7072
Closes #7074
…dow usage as auxiliary

BREAKING CHANGE: llm.coe.intra_threshold accepts any finite value >= 0 instead of [0,1].

Closes #7052
Closes #6956
… with a rejected-speed latch

BREAKING CHANGE: LlmError::ApiError carries an optional detail field.

Closes #7066
Closes #7063
…or on import and de-flake secret-request test

Closes #7055
Closes #7027
Closes #7029
…scrub provider error text after control stripping
… by ownership and document fail-closed tool exposure
… fast mode and error detail; make stable clippy failures visible
@github-actions github-actions Bot added bug Something isn't working size/XL Extra large PR (500+ lines) labels Nov 14, 2026
@github-actions github-actions Bot added documentation Improvements or additions to documentation llm zeph-llm crate (Ollama, Claude) skills zeph-skills crate memory zeph-memory crate (SQLite) channels zeph-channels crate (Telegram) rust Rust code changes core zeph-core crate tests Test-related changes dependencies Dependency updates ci CI/CD configuration labels Nov 14, 2026
@bug-ops

bug-ops commented Nov 14, 2026

Copy link
Copy Markdown
Owner Author

Follow-up issues

@bug-ops
bug-ops enabled auto-merge (squash) November 14, 2026 09:14
@bug-ops
bug-ops merged commit d94dff5 into main Nov 14, 2026
63 checks passed
@bug-ops
bug-ops deleted the feat/7075-mcp-tool-id-registries branch November 14, 2026 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment