M08: MCP, REST, and CLI compatibility; optional remote mode #93
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
P1
P2
P3
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#85 A0: Architecture, decisions, and contracts for the optional execution gateway
Creatidy/scarcity-router
Reference
Creatidy/scarcity-router#93
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Preserve existing users and maintain one authoritative core across all interfaces while adding an optional, explicit remote mode.
Module of the execution-gateway program; architecture and contracts come from A0 (#85). This issue protects compatibility throughout the program — it is a continuous regression surface, not a one-off task.
User value
Existing MCP/CLI/REST users keep working with zero migration; users who want a shared server can opt in explicitly and get identical semantics for identical state/policy.
Relationship to current code
scarcity_status/scarcity_select/scarcity_simulate(mcp.py,machine_api.py), REST v1/healthz,/v1/status,/v1/select,/v1/simulate(server.py), CLIstatus/select/simulate/install-config(cli.py), and the parity suites (tests/test_mcp.py,tests/test_server.py,tests/test_selection_app.py).Scope
Non-goals
Contracts / interfaces affected
Machine-interface v1 (preserved; additive only per D-028); optional new remote-mode configuration contract (A0).
Dependencies
Acceptance criteria
select/simulateinputs produce equivalent decisions when state/policy are equivalent.uv sync --only-dev && make check && uv run basedpyright && git diff --check).Security considerations
The remote bridge adds the first network client for the control plane: authenticated client identity (A0/M09), verified TLS, no bearer secrets in URLs, explicit mode selection, and no silent fallback. The local stdio and loopback boundaries are unchanged.
Risks
Evidence still required
Closeout (v0.1.0 release-readiness reconciliation, 2026-09-21). M08 is implemented and its acceptance criteria are satisfied on
develop@9d6192e.tests/test_interfaces_guardrails.py(40 tests) plus the parity suites (tests/test_mcp.py,tests/test_server.py,tests/test_selection_app.py) run as the per-module gate (make guardrails); existing MCP clients still work with no server, worker or Docker (recommendation-only e2eRecommendationOnlySurfaceTests;make package-checkisolated install exercises MCP discovery and loopback REST without any of the three).scarcity_router/remote.py) uses explicit configuration, verified TLS, redacted config repr, and explicit failure — a remote authentication failure never silently falls back to local state (guardrail suite pins this;RemoteServerConfigcarries no bearer secrets in URLs).develop, run #25).Closing as complete;
docs/roadmap.mdnow records M08 complete.kilo referenced this issue2026-10-12 22:57:07 +00:00