From 9ca9c43dfab1f8c1473347176f960d0baf670751 Mon Sep 17 00:00:00 2001 From: Dai Ha Date: Sat, 15 Aug 2026 08:48:57 +0200 Subject: [PATCH] CB-571: retag charter-receipt references from the taken CB-575 CB-575 already names the merged MCP-cancellation-filter change, so the charter-receipt comments used the wrong number. Retag to CB-571, the number this work was authored against. --- .../java/dev/ltms/bridged/member/HerdrPeerLauncher.java | 8 ++++---- .../main/java/dev/ltms/bridged/peer/CharterReceipt.java | 2 +- .../src/main/java/dev/ltms/bridged/peer/PeerHandle.java | 2 +- .../main/java/dev/ltms/bridged/session/MemberSession.java | 4 ++-- .../java/dev/ltms/bridged/session/SessionManager.java | 2 +- .../ltms/bridged/member/HerdrPeerLauncherCharterTest.java | 2 +- .../java/dev/ltms/bridged/session/SessionManagerTest.java | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/bridged/src/main/java/dev/ltms/bridged/member/HerdrPeerLauncher.java b/bridged/src/main/java/dev/ltms/bridged/member/HerdrPeerLauncher.java index 324de7e..320509d 100644 --- a/bridged/src/main/java/dev/ltms/bridged/member/HerdrPeerLauncher.java +++ b/bridged/src/main/java/dev/ltms/bridged/member/HerdrPeerLauncher.java @@ -272,7 +272,7 @@ public abstract class HerdrPeerLauncher implements PeerLauncher { /** * A started peer plus the launch's agent-session id (the resume handle, or null) and the - * charter receipt (CB-575) the base composed for it. + * charter receipt (CB-571) the base composed for it. */ private record Spawned(Agent agent, String agentSessionId, CharterReceipt receipt) { } @@ -309,7 +309,7 @@ public abstract class HerdrPeerLauncher implements PeerLauncher { String replyCharter = cfg.hasMcp() ? REPLY_CHARTER : null; String charter = roleCharter == null ? replyCharter : replyCharter == null ? roleCharter : roleCharter + "\n\n" + replyCharter; - // CB-575: fingerprint the exact composed charter bytes once, here in the base, before the + // CB-571: fingerprint the exact composed charter bytes once, here in the base, before the // string leaves for an adapter — so Claude and OpenCode derive the same digest. A failed // start has no bridge_spawn result and no roster row, so the failure log below is the only // surface the byte count can appear on. The charter text itself is never logged. @@ -469,7 +469,7 @@ public abstract class HerdrPeerLauncher implements PeerLauncher { /** * Legacy placement: split the currently-focused tab; the peer still starts in {@code cwd}. * - *

CB-575: this is the one legacy log that printed the full argv, and the charter travels + *

CB-571: this is the one legacy log that printed the full argv, and the charter travels * inside argv — so the charter text went to the daemon log on every pane-placement spawn. The * {@code spawnInTab} path never logs argv, so only this site is fixed. {@code charter} is the * composed charter, if any; its argv element is replaced by its digest so the log still shows @@ -709,7 +709,7 @@ public abstract class HerdrPeerLauncher implements PeerLauncher { * A concrete {@link PeerHandle} wrapping herdr agent coordinates, the profile that spawned it, * the session identity the launch resolved (CB-547a): the bridge's logical name and the peer's * own session id, both null when the spawn carried no identity — and the charter receipt - * (CB-575) the base computed for this launch. + * (CB-571) the base computed for this launch. */ private record WorkerHandle(String id, String terminalId, String profile, String sessionName, String agentSessionId, diff --git a/bridged/src/main/java/dev/ltms/bridged/peer/CharterReceipt.java b/bridged/src/main/java/dev/ltms/bridged/peer/CharterReceipt.java index 3387408..79bf78b 100644 --- a/bridged/src/main/java/dev/ltms/bridged/peer/CharterReceipt.java +++ b/bridged/src/main/java/dev/ltms/bridged/peer/CharterReceipt.java @@ -6,7 +6,7 @@ import java.security.NoSuchAlgorithmException; import java.util.HexFormat; /** - * CB-575: a fingerprint of the exact charter bytes handed to a spawned member. + * CB-571: a fingerprint of the exact charter bytes handed to a spawned member. * *

Lets an operator prove which charter a member actually got, without ever logging the * charter text. The digest covers the exact composed UTF-8 string {@code HerdrPeerLauncher} passes diff --git a/bridged/src/main/java/dev/ltms/bridged/peer/PeerHandle.java b/bridged/src/main/java/dev/ltms/bridged/peer/PeerHandle.java index 13fac9c..9c80c5e 100644 --- a/bridged/src/main/java/dev/ltms/bridged/peer/PeerHandle.java +++ b/bridged/src/main/java/dev/ltms/bridged/peer/PeerHandle.java @@ -69,7 +69,7 @@ public interface PeerHandle { } /** - * The charter receipt (CB-575) for this peer's launch — the fingerprint of the exact charter + * The charter receipt (CB-571) for this peer's launch — the fingerprint of the exact charter * bytes it was started with. {@code null} when the launcher records none (a non-instrumented * adapter, or a launcher before this field); the session registry stores it so the spawn result * and the roster row can show an operator which charter a member actually got. diff --git a/bridged/src/main/java/dev/ltms/bridged/session/MemberSession.java b/bridged/src/main/java/dev/ltms/bridged/session/MemberSession.java index 0b9f072..9726e06 100644 --- a/bridged/src/main/java/dev/ltms/bridged/session/MemberSession.java +++ b/bridged/src/main/java/dev/ltms/bridged/session/MemberSession.java @@ -24,7 +24,7 @@ import dev.ltms.bridged.peer.MemberRole; * @param lastActivityAtNanos {@link System#nanoTime()} of the most recent lifecycle event * @param turnCount number of delegated turns that have been delivered to this session * @param state current lifecycle state in the one-shot FSM - * @param charterReceipt the fingerprint (CB-575) of the charter bytes this member was started + * @param charterReceipt the fingerprint (CB-571) of the charter bytes this member was started * with; {@code null} for a session whose launcher recorded none */ public record MemberSession( @@ -54,7 +54,7 @@ public record MemberSession( /** * Backward-compatible shape: a session with no charter receipt (a test or a launcher before - * CB-575). A separate constructor rather than a new parameter on the canonical one, so existing + * CB-571). A separate constructor rather than a new parameter on the canonical one, so existing * call sites that have nothing to record keep compiling unchanged. */ public MemberSession(String paneId, String terminalId, String profile, MemberRole role, diff --git a/bridged/src/main/java/dev/ltms/bridged/session/SessionManager.java b/bridged/src/main/java/dev/ltms/bridged/session/SessionManager.java index 11d7b02..08399bd 100644 --- a/bridged/src/main/java/dev/ltms/bridged/session/SessionManager.java +++ b/bridged/src/main/java/dev/ltms/bridged/session/SessionManager.java @@ -412,7 +412,7 @@ public final class SessionManager implements TurnListener { if (session.ownerTerminal() != null) { m.put("owner", session.ownerTerminal()); } - // CB-575: which charter this member was started with — never the charter text itself. The + // CB-571: which charter this member was started with — never the charter text itself. The // digest lets a lead tell at a glance whether all members got the same charter; the source // records whether a role charter was configured ("fleet.charters.") or only the reply // charter was composed ("none"). diff --git a/bridged/src/test/java/dev/ltms/bridged/member/HerdrPeerLauncherCharterTest.java b/bridged/src/test/java/dev/ltms/bridged/member/HerdrPeerLauncherCharterTest.java index de2580f..c657744 100644 --- a/bridged/src/test/java/dev/ltms/bridged/member/HerdrPeerLauncherCharterTest.java +++ b/bridged/src/test/java/dev/ltms/bridged/member/HerdrPeerLauncherCharterTest.java @@ -48,7 +48,7 @@ class HerdrPeerLauncherCharterTest { @Test void panePlacementSpawnLogNeverContainsTheCharterText() { - // A pane-placement spawn used to log the whole argv (CB-575), and the charter travels + // A pane-placement spawn used to log the whole argv (CB-571), and the charter travels // inside argv — so the charter text leaked to the daemon log. Prove the legacy pane path // now redacts it to its digest. String secret = "TOP SECRET charter marker 99x"; // distinctive, so a leak is unambiguous diff --git a/bridged/src/test/java/dev/ltms/bridged/session/SessionManagerTest.java b/bridged/src/test/java/dev/ltms/bridged/session/SessionManagerTest.java index 4d8a3a3..190cf8a 100644 --- a/bridged/src/test/java/dev/ltms/bridged/session/SessionManagerTest.java +++ b/bridged/src/test/java/dev/ltms/bridged/session/SessionManagerTest.java @@ -95,7 +95,7 @@ class SessionManagerTest { @Test void rosterViewExposesTheCharterReceiptButNeverTheCharterText() { // The roster (bridge_list and GET /members both render through rosterView) must let a lead - // see which charter a member got, without ever carrying the charter prose itself (CB-575). + // see which charter a member got, without ever carrying the charter prose itself (CB-571). MemberSession s = new MemberSession("p1", "term1", "prof", MemberRole.DEV, "/cwd", null, 0, 0, 0, MemberSession.State.READY, null, null, CharterReceipt.compose(MemberRole.DEV, "prof", "role charter", "role charter\n\nreply"));