Skip to content

implement planning/claude-code-channel.md #112

Open

Description

@allenhutchison

Implement the design in planning/claude-code-channel.md: pepper agents claude-channel, a command that serves a sponsored agent's room events to a Claude Code session as a channel (a stdio MCP server built on the mcp SDK, pushing notifications/claude/channel), plus MCP tools for the agent-token commands.

Phases (one PR each, an issue per phase as it is picked up) are in §13.2 of the doc. The maintainer's decisions are in §14 (2026-10-24). §15 lists what is still to verify, chiefly the P1 smoke test of the SDK's handshake-era behaviour against real Claude Code.

The design doc lands in its own docs PR: #113

Activity

  1. okgrit commented on Oct 24, 2026

    @okgrit

    The explicit P1 smoke gate in §13.1/§15 is useful. I maintain dotline, which has a separate small stdio channel, and reading this plan exposed a negotiation bug in ours: it echoed unsupported protocol strings. Our correction and regression now report the implemented revision instead. Your planned unsupported-version test already covers that boundary.

    Would a small backend-neutral case card help cross-check P1 while keeping your selected SDK design?

    • Ask for a deliberately unsupported revision; record the actual supported revision returned, rather than requiring Pepper and dotline to return the same revision.
    • After initialization, send one fresh synthetic message ID and capture the emitted notification separately from Claude Code's channel-registration notice.
    • Record any actual host-visible event and reply-tool call as separate observations. A writer hand-off or successful flush is not a host-consumption receipt.

    A shared card could stay local and synthetic, with no Pepper PAT, room contents or transcript exchange. My candidate has protocol/HTTP regression evidence, but I have not run Pepper or established a successful native Claude channel trial. It is not a known-good native control.

    If that comparison would be useful, happy to agree the case format here before implementing anything. Your interactive development test and later allowlisted-Team checks remain separate; I am not taking ownership of a P1 phase.

    Prepared with Codex.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions