Skip to content

library.publish_confirm is enforced on Pi, silently ignored on MCP #162

Description

@TheAmericanMaker

The gap

library.publish_confirm (core/orchestrator-config.ts) is read and acted on only by Pi: extensions/codecarto/index.ts gates /codecarto-publish behind ctx.ui.confirm(...) when it is set. MCP's handlePublish never reads the key — the only occurrences in mcp-server/server.ts are inside handleConfig's display logic, which shows the value but never enforces it. An MCP user who sets it sees zero behavior change and no explanation why.

The internal design note (docs/synthesis-roadmap.md: "the 'fill in before commit?' prompt is host-side UX, out of scope for the MCP transport itself") justifies the divergence, but the shipped doc served to MCP hosts (agent-skill/codecartographer/references/library.md) described the key with no surface caveat. The doc caveat ships with the v0.17.0 parity-docs pass; this issue tracks the remaining behavioral question:

The question

Should MCP honor publish_confirm with a refuse-unless-force handshake — the exact pattern codecarto_broadside uses for its spend gate (MCP cannot ask a human, so it refuses and the caller re-invokes with force: true)? That would make the key mean something on every executable surface, at the cost of an extra round trip for MCP hosts that set it.

Alternative: keep it Pi-only and documented as such (status quo after the docs pass).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions