feat: deliver Story 2.1 MCP registry approval #2

Open
nonontb wants to merge 11 commits from nonontb/epic-2-story-2-1 into main AGit
Owner

Story 2.1 adds shyrka mcp with exactly two typed tools: propose_taxonomy and approve_registry. Approval commits an immutable, monotonic registry version under the store-owned run gate; stale filing-plan versions are rejected before application.

  • Preserve populated inventories and taxonomy drafts during the schema-v3 upgrade, including drafts based on later registry versions.
  • Share proposal orchestration between CLI and MCP, with offline initialization and fixed metadata-only logging.
  • Redact protocol errors at the outgoing transport boundary, including SDK errors emitted before handler dispatch.
  • Restore the owner-requested _bmad-output corpus alongside the project knowledge skill from current main, and reconcile both delivery trackers: Epic 1 done, Epic 2 in-progress, Story 2.1 done.

Validation (Rust 1.99.1, refreshed 2026-10-28):

  • cargo fmt --check passed.
  • cargo clippy --workspace --all-targets --locked -- -D warnings passed.
  • cargo test --workspace --locked passed: 110 tests including 2 doctests.
  • Independent story review and scoped protocol-error fix review passed. Migration preservation, concurrent approval, stale-plan fencing, real stdio tool calls and privacy sentinels have behavioral coverage.
  • All 18 restored artifacts were preserved unchanged through the main synchronization; 68 local documentation links resolve.

Scope and review notes:

  • Service validation uses local Bridge/provider fixtures; live Proton, OpenRouter and Matrix E2EE/deployment remain outside this delivery. Stories 2.2-2.6 remain backlog, and this change adds no mailbox writes.
  • Keep the scoped metadata-only logger: enabling a global raw SDK tracing subscriber can expose payloads.
  • The final fix, completion handoff and main-synchronization commits are unsigned because the local signing key was locked. Signing configuration was not changed.

Completion evidence: _bmad-output/implementation-artifacts/spec-2-1-mcp-server-registry-with-approval-gating.md.

Story 2.1 adds `shyrka mcp` with exactly two typed tools: `propose_taxonomy` and `approve_registry`. Approval commits an immutable, monotonic registry version under the store-owned run gate; stale filing-plan versions are rejected before application. - Preserve populated inventories and taxonomy drafts during the schema-v3 upgrade, including drafts based on later registry versions. - Share proposal orchestration between CLI and MCP, with offline initialization and fixed metadata-only logging. - Redact protocol errors at the outgoing transport boundary, including SDK errors emitted before handler dispatch. - Restore the owner-requested `_bmad-output` corpus alongside the project knowledge skill from current main, and reconcile both delivery trackers: Epic 1 done, Epic 2 in-progress, Story 2.1 done. Validation (Rust 1.99.1, refreshed 2026-10-28): - `cargo fmt --check` passed. - `cargo clippy --workspace --all-targets --locked -- -D warnings` passed. - `cargo test --workspace --locked` passed: 110 tests including 2 doctests. - Independent story review and scoped protocol-error fix review passed. Migration preservation, concurrent approval, stale-plan fencing, real stdio tool calls and privacy sentinels have behavioral coverage. - All 18 restored artifacts were preserved unchanged through the main synchronization; 68 local documentation links resolve. Scope and review notes: - Service validation uses local Bridge/provider fixtures; live Proton, OpenRouter and Matrix E2EE/deployment remain outside this delivery. Stories 2.2-2.6 remain backlog, and this change adds no mailbox writes. - Keep the scoped metadata-only logger: enabling a global raw SDK tracing subscriber can expose payloads. - The final fix, completion handoff and main-synchronization commits are unsigned because the local signing key was locked. Signing configuration was not changed. Completion evidence: `_bmad-output/implementation-artifacts/spec-2-1-mcp-server-registry-with-approval-gating.md`.
Some checks failed
CI / rust (pull_request) Has been cancelled
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin +refs/pull/2/head:nonontb/epic-2-story-2-1
git switch nonontb/epic-2-story-2-1

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff nonontb/epic-2-story-2-1
git switch nonontb/epic-2-story-2-1
git rebase main
git switch main
git merge --ff-only nonontb/epic-2-story-2-1
git switch nonontb/epic-2-story-2-1
git rebase main
git switch main
git merge --no-ff nonontb/epic-2-story-2-1
git switch main
git merge --squash nonontb/epic-2-story-2-1
git switch main
git merge --ff-only nonontb/epic-2-story-2-1
git switch main
git merge nonontb/epic-2-story-2-1
git push origin main
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nonontb/Shyrka!2
No description provided.