Skip to content

I3960 — The initialize instructions tell the caller about itself before the board, and the board line is bounded

Bound PeerBoard::summary (each claim's intent cut, at most three claims a peer, the whole line capped, the rest counted with a pointer to majordomus_peers) and move it after the sentences about the caller in the MCP initialize instructions.

READY wave 0 · p1 · implementation profile · parallel safe

Part of mcp-transports-are-reliable — Every MCP transport delivers each request at most once, bounds what it carries, and honours cancellation.

Ready. Every dependency is done, so majordomus plan start I3960 will be accepted.

Objective

Bound PeerBoard::summary (each claim's intent cut, at most three claims a peer, the whole line capped, the rest counted with a pointer to majordomus_peers) and move it after the sentences about the caller in the MCP initialize instructions.

Why

On 2026-10-22 five peers holding twenty claims made the board line of the initialize instructions about 6 kB. Claude Code cut the instructions inside that line, so the sentences after it — the nudge to announce, which the code calls the one that matters on every reconnect — never reached the caller. Observed in session 54f32bb3 (native-acceleration pack, P01).

Current state

apps/majordomus-cli/src/mcp/protocol.rs pushes board.summary() with every claim's whole intent before the caller-specific sentences; PeerBoard::summary has no bound.

Desired state

The caller-specific sentences come before the board; the board line stays within SUMMARY_LINE characters whatever the board holds, counts what it does not name, and points at majordomus_peers for every word.

Scope

  • apps/majordomus-cli/src/peers.rs
  • apps/majordomus-cli/src/mcp/protocol.rs

Out of scope

  • The size of tool descriptions, which clients load deferred
  • peers.list itself (I3961)

Dependencies

None. This issue is a root of the graph.

Acceptance criteria

  • With twelve peers holding five claims of several hundred characters each, the board line stays within its bound, names the first peer, counts the rest and points at majordomus_peers
  • The caller's own sentence (you have not announced anything) precedes the board line in the initialize instructions
  • A small board still names every claim, as before

Validation

  • cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib -- peers::tests protocol::tests
  • bin/majordomus plan validate

Evidence required

  • the_summary_stays_bounded_however_large_the_board
  • the_caller_is_told_about_itself_before_the_board_is_listed

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I3960.yaml. Read it back with majordomus plan show I3960.

Searches the titles and descriptions of every page this site publishes.