CB-622: update the canonical block to fleet_*, and fix a broken rung of the fallback ladder #138

Merged
ltms merged 1 commits from lead/cb-622e-claude-md into main 2026-08-22 22:08:45 +02:00
Owner

The last piece of CB-622 (#126). Held deliberately until the daemon was redeployed, because renaming bridge_reply in the block while the live daemon lacked fleet_reply would have silently lost the report of any member spawned in that window. That risk is now gone — the daemon answers both names.

What changed

1. The eleven tool names become fleet_* throughout the portable block.

2. The fallback ladder keeps mcp__bridge__*, and that is deliberate. I checked instead of assuming: both launchers still mount the server as "bridge".

ClaudeCodeLauncher.java:301   "{\"mcpServers\":{\"bridge\":{\"type\":\"http\", ...
OpenCodeLauncher.java:324     root.putObject("mcp").putObject("bridge")

So a spawned member really does see mcp__bridge__fleet_whoami. The prefix is unchanged and the rule stays true. Renaming the launcher's mount is a separate surface that CB-622 did not touch; changing the ladder to match a rename that has not happened would have broken it.

3. A pre-existing defect, unrelated to this rename. The ladder quoted the reply charter as:

"You are an off-subscription worker in the claude-bridge fleet"

REPLY_CHARTER actually says:

"You are a spawned member in the claude-bridge fleet."

A member matching that quote against its own system prompt found nothing, so the ladder's first rung could never fire. The charter was reworded at some point and the canonical block never caught up — the exact failure the "prompt is part of the product" rule exists to prevent. Now quoted verbatim, and verified programmatically against the Java constant.

Verification

The project's own byte-identical check now passes:

in sync: True

wiki/7-Use-Cases.md is advanced to the matching template commit (d526b43 on the wiki's own remote).

Live verification of the whole ticket

Done after the redeploy (pid 62524, jar 3d93f73592b6), against a real MCP client over HTTP rather than unit assertions:

check result
tools advertised 22 — 11 fleet_* + 11 bridge_*
deprecation marker bridge_whoami description begins DEPRECATED: use fleet_whoami instead.
both names route fleet_whoami and bridge_whoami both return {"role":"primary"}
non-trivial tool fleet_profiles returns the full profile list
warn once per name bridge_whoami × 3 → exactly one WARN; bridge_list × 1 → its own single WARN

That is the CB-618 gap closed: 878 green tests prove what the code builds, not what a client accepts, so the client check was run for real.

The last piece of CB-622 (#126). Held deliberately until the daemon was redeployed, because renaming `bridge_reply` in the block while the live daemon lacked `fleet_reply` would have silently lost the report of any member spawned in that window. That risk is now gone — the daemon answers **both** names. ## What changed **1. The eleven tool names become `fleet_*` throughout the portable block.** **2. The fallback ladder keeps `mcp__bridge__*`, and that is deliberate.** I checked instead of assuming: both launchers still mount the server as `"bridge"`. ``` ClaudeCodeLauncher.java:301 "{\"mcpServers\":{\"bridge\":{\"type\":\"http\", ... OpenCodeLauncher.java:324 root.putObject("mcp").putObject("bridge") ``` So a spawned member really does see `mcp__bridge__fleet_whoami`. The prefix is unchanged and the rule stays true. Renaming the launcher's mount is a separate surface that CB-622 did not touch; changing the ladder to match a rename that has not happened would have broken it. **3. A pre-existing defect, unrelated to this rename.** The ladder quoted the reply charter as: > *"You are an off-subscription worker in the claude-bridge fleet"* `REPLY_CHARTER` actually says: > "You are a spawned member in the claude-bridge fleet." A member matching that quote against its own system prompt found nothing, so **the ladder's first rung could never fire**. The charter was reworded at some point and the canonical block never caught up — the exact failure the "prompt is part of the product" rule exists to prevent. Now quoted verbatim, and verified programmatically against the Java constant. ## Verification The project's own byte-identical check now passes: ``` in sync: True ``` `wiki/7-Use-Cases.md` is advanced to the matching template commit (`d526b43` on the wiki's own remote). ## Live verification of the whole ticket Done after the redeploy (pid 62524, jar `3d93f73592b6`), against a **real MCP client over HTTP** rather than unit assertions: | check | result | |---|---| | tools advertised | **22** — 11 `fleet_*` + 11 `bridge_*` | | deprecation marker | `bridge_whoami` description begins `DEPRECATED: use fleet_whoami instead.` | | both names route | `fleet_whoami` and `bridge_whoami` both return `{"role":"primary"}` | | non-trivial tool | `fleet_profiles` returns the full profile list | | **warn once per name** | `bridge_whoami` × 3 → exactly **one** WARN; `bridge_list` × 1 → its own single WARN | That is the CB-618 gap closed: 878 green tests prove what the code builds, not what a client accepts, so the client check was run for real.
ltms added 1 commit 2026-08-22 22:08:33 +02:00
CB-622: update the canonical block to fleet_*, and fix the broken charter quote
CI / contract (pull_request) Successful in 43s
CI / build (pull_request) Successful in 1m28s
8311f2db7f
The eleven tool names become fleet_* throughout the portable block. The
fallback ladder keeps mcp__bridge__* unchanged and that is deliberate: both
launchers still mount the server as "bridge", so a spawned member really
does see that prefix. Renaming the mount is a separate surface CB-622 did
not touch.

Separately, a pre-existing defect: the ladder quoted the reply charter as
"You are an off-subscription worker in the claude-bridge fleet", while
REPLY_CHARTER says "You are a spawned member in the claude-bridge fleet".
A member matching that quote found nothing, so the ladder's first rung
could never fire. Now quoted verbatim.

wiki/7-Use-Cases.md is advanced to the matching template commit; the sync
check prints in sync: True.
ltms merged commit 446a9d395c into main 2026-08-22 22:08:45 +02:00
Sign in to join this conversation.