feat(serve): add pi (Oh My Pi) as a first-class MCP harness #547

Merged
hexajon merged 2 commits from issue-546-featserve-add-pi-oh-my-pi-as-a-first-class-mcp-har into main 2026-09-20 20:03:25 +00:00
Owner

Summary

Implements ADR 0039 / closes #546.

  • New internal/cmd/serve/agent_pi.go: piAgent (Name/Detect/Emit) with omp|pi
    binary + ~/.omp detection, snippet emission, and WirePi — a direct
    merge-preserve-others, atomic-0600, idempotent write of ~/.omp/agent/mcp.json
    (pi has no non-interactive mcp add CLI; mirrors the Antigravity precedent).
  • Registered piAgent in allAgents; added "pi" to --mcp-client validation,
    advertising, and wireMCPClients dispatch; updated serve/mcp-config/install
    help strings and regenerated docs/reference.
  • Tests: pi snippet content + no-credential-material ban, detection matrix,
    merge-preserve, idempotency, malformed-config refusal (no clobber), and an
    install-package dispatch test. CLAIMS.md rows 30-32 pin the wiring claims.

Also in this branch (gate-driven, mechanical):

  • Forward-bumped Go pin 1.26.8 -> 1.27.1 (go.mod + golang:1.27-trixie digest in
    ci.yml/drift.yml, digest verified to ship GOLANG_VERSION=1.27.1) per
    docs/contributing/ci.md; never a downgrade.
  • Applied the Go 1.27 go fix set repo-wide and gofmt to
    internal/mcp/rawjson_contract_test.go, as required by the gate.

Gate: ./scripts/gate.sh --fast PASS (all cheap checks) on go1.27.1.

Closes #546

## Summary Implements ADR 0039 / closes #546. - New internal/cmd/serve/agent_pi.go: piAgent (Name/Detect/Emit) with omp|pi binary + ~/.omp detection, snippet emission, and WirePi — a direct merge-preserve-others, atomic-0600, idempotent write of ~/.omp/agent/mcp.json (pi has no non-interactive `mcp add` CLI; mirrors the Antigravity precedent). - Registered piAgent in allAgents; added "pi" to --mcp-client validation, advertising, and wireMCPClients dispatch; updated serve/mcp-config/install help strings and regenerated docs/reference. - Tests: pi snippet content + no-credential-material ban, detection matrix, merge-preserve, idempotency, malformed-config refusal (no clobber), and an install-package dispatch test. CLAIMS.md rows 30-32 pin the wiring claims. Also in this branch (gate-driven, mechanical): - Forward-bumped Go pin 1.26.8 -> 1.27.1 (go.mod + golang:1.27-trixie digest in ci.yml/drift.yml, digest verified to ship GOLANG_VERSION=1.27.1) per docs/contributing/ci.md; never a downgrade. - Applied the Go 1.27 `go fix` set repo-wide and gofmt to internal/mcp/rawjson_contract_test.go, as required by the gate. Gate: ./scripts/gate.sh --fast PASS (all cheap checks) on go1.27.1. Closes #546
feat(serve): add pi (Oh My Pi) as a first-class MCP harness
Some checks failed
drift / forgejo-smoke (pull_request) Has been skipped
drift / git-matrix (pull_request) Has been skipped
drift / govulncheck (pull_request) Has been skipped
drift / surface-diff (pull_request) Successful in 1m49s
ci / mcp-conformance (pull_request) Successful in 2m26s
ci / gate (pull_request) Has been cancelled
3667635938
Closes #546
Merge remote-tracking branch 'origin/main' into issue-546-featserve-add-pi-oh-my-pi-as-a-first-class-mcp-har
Some checks failed
drift / govulncheck (pull_request) Has been skipped
drift / surface-diff (pull_request) Successful in 1m13s
drift / forgejo-smoke (pull_request) Has been skipped
ci / mcp-conformance (pull_request) Successful in 1m57s
ci / mcp-conformance (push) Successful in 4s
drift / govulncheck (push) Has been skipped
drift / surface-diff (push) Successful in 50s
drift / forgejo-smoke (push) Has been skipped
ci / gate (pull_request) Failing after 23m20s
ci / gate (push) Failing after 23m15s
36d66f474e
# Conflicts:
#	.forgejo/workflows/drift.yml
Sign in to join this conversation.
No reviewers
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
sixfold-space/madtea!547
No description provided.