agent-coord-mcp 0.26.24 → 0.26.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +31 -70
  2. package/dist/capabilities.js +169 -4
  3. package/dist/capabilities.js.map +1 -1
  4. package/dist/gated-head.js +12 -1
  5. package/dist/gated-head.js.map +1 -1
  6. package/dist/server-spread.js +60 -53
  7. package/dist/server-spread.js.map +1 -1
  8. package/dist/server.js +53 -4
  9. package/dist/server.js.map +1 -1
  10. package/dist/tools/herdr-delivery.js +86 -26
  11. package/dist/tools/herdr-delivery.js.map +1 -1
  12. package/dist/tools/herdr-tail.js +243 -0
  13. package/dist/tools/herdr-tail.js.map +1 -0
  14. package/dist/tools/jsonl-offsets.js +37 -0
  15. package/dist/tools/jsonl-offsets.js.map +1 -0
  16. package/dist/tools/messaging.js +18 -0
  17. package/dist/tools/messaging.js.map +1 -1
  18. package/dist/tools/records.js +18 -2
  19. package/dist/tools/records.js.map +1 -1
  20. package/dist/tools/registry.js +56 -21
  21. package/dist/tools/registry.js.map +1 -1
  22. package/dist/tools/transport.js +17 -148
  23. package/dist/tools/transport.js.map +1 -1
  24. package/dist/transports/config.js +22 -11
  25. package/dist/transports/config.js.map +1 -1
  26. package/dist/transports/herdr.js +134 -18
  27. package/dist/transports/herdr.js.map +1 -1
  28. package/dist/transports/index.js +4 -3
  29. package/dist/transports/index.js.map +1 -1
  30. package/dist/transports/tmux.js +5 -2
  31. package/dist/transports/tmux.js.map +1 -1
  32. package/dist/transports/types.js +18 -3
  33. package/dist/transports/types.js.map +1 -1
  34. package/hooks/control-bytes.mjs +69 -0
  35. package/hooks/submit.mjs +227 -9
  36. package/hooks/tier.mjs +7 -1
  37. package/package.json +4 -2
  38. package/scripts/check-global-mcp-fallback.mjs +85 -0
  39. package/scripts/coord-pusher.mjs +5 -1
  40. package/scripts/coord-seat.mjs +96 -0
  41. package/scripts/coord-token.mjs +79 -4
  42. package/scripts/stop-agent.sh +8 -4
  43. package/src/capabilities.ts +170 -5
  44. package/src/gated-head.ts +12 -1
  45. package/src/server-spread.ts +52 -4
  46. package/src/server.ts +49 -3
  47. package/src/tools/herdr-delivery.ts +92 -24
  48. package/src/tools/herdr-tail.ts +276 -0
  49. package/src/tools/jsonl-offsets.ts +29 -0
  50. package/src/tools/messaging.ts +20 -0
  51. package/src/tools/records.ts +18 -2
  52. package/src/tools/registry.ts +56 -20
  53. package/src/tools/transport.ts +17 -154
  54. package/src/transports/config.ts +25 -12
  55. package/src/transports/herdr.ts +193 -17
  56. package/src/transports/index.ts +4 -3
  57. package/src/transports/tmux.ts +5 -2
  58. package/src/transports/types.ts +24 -4
  59. package/hooks/tmux-pusher.mjs +0 -967
  60. package/scripts/spawn-agent.sh +0 -94
@@ -0,0 +1,243 @@
1
+ /**
2
+ * ⛔ A HERDR SEAT WAS DEAF TO EVERY TMUX SEAT, AND THE REASON IS A SINGLETON.
3
+ *
4
+ * `deliverToHerdrSeats` runs at SEND time and returns early unless `activeTransport().kind` is
5
+ * HERDR. `activeTransport()` returns a module-level singleton wired once at startup from the
6
+ * SENDER's own config — so that early return can only ever see the SENDER's transport, and a tmux
7
+ * seat's server could never type into a herdr pane. Measured both ways: `herdr → herdr` typed and
8
+ * woke the seat; `tmux → herdr` reached the inbox file and was never typed.
9
+ *
10
+ * ⚠ THE EASIER FIX IS THE WRONG ONE: letting the SENDER drive herdr per recipient passes on a
11
+ * one-machine fleet and fails silently and asymmetrically on two, because every sender would need
12
+ * the `herdr` binary on its own host. So the duty goes to the seat that needs waking — the only
13
+ * party guaranteed to be where it is.
14
+ *
15
+ * ⛔⛆ AND THE FIRST VERSION OF THIS FILE WAS INERT ON EVERY SEAT, INCLUDING ITS AUTHOR'S.
16
+ * `8363968` started the tail only when `AGENT_COORD_BOUND_AGENT` was set at startup. No seat on
17
+ * this fleet sets it — identity binds at `join` — so the coordinator measured "herdr tail NOT
18
+ * started" on the PR's own server and qa read the variable unset on all six live seat servers.
19
+ * Its eleven tests injected the agent id and so could not see it. The tail now starts from the
20
+ * IDENTITY BINDING (`startTailOnBind`), idempotently, one per agent per process.
21
+ *
22
+ * ⛔ AND IT MUST NOT RUN THE REAPER. That version called `loadLiveTransports()` on every tick —
23
+ * the loader that DELETES markers it judges dead, named an hour earlier as the vanishing-marker
24
+ * mechanism. A reaper in a once-a-second loop on every seat is not shippable on the argument that
25
+ * the current build usually keeps the marker. This file reads its own seat's marker FILE directly,
26
+ * read-only, and never asks about anyone else's.
27
+ *
28
+ * THE CURSOR RULE IS THE PUSHER'S (⟨q-7be94b5e⟩): advance the PUSH cursor only past what was
29
+ * VERIFIABLY typed. Two corrections from qa's read of `8363968`, both now driven by tests:
30
+ * · the cursor advances to the byte AFTER THE DELIVERED LINE, never to the file's size — sizing
31
+ * it skipped a later message in the same tick whose paste then failed;
32
+ * · a cursor write that FAILS is held, and an in-process high-water mark stops the same message
33
+ * being re-typed on the next tick — the directory fix closed one cause of a paste loop, this
34
+ * closes the class.
35
+ *
36
+ * IDLE COST, COUNTED BY TESTS RATHER THAN ASSERTED HERE: when no tailed file has grown, a tick is
37
+ * one `stat()` per tailed file and nothing else. The marker and room membership are re-read every
38
+ * `REFRESH_TICKS` ticks, and no herdr subprocess runs until there is something to type.
39
+ */
40
+ import { readFileSync, statSync } from "node:fs";
41
+ import { inboxFile, roomFile, getRooms, transportFile } from "../store.js";
42
+ import { activeTransport, HERDR } from "../transports/index.js";
43
+ import { renderForPane, advancePushCursor, readPushCursorFor } from "./herdr-delivery.js";
44
+ import { newMessagesIn } from "./jsonl-offsets.js";
45
+ export const DEFAULT_POLL_MS = 1000;
46
+ /** Marker and room membership are re-read this often. A room joined mid-session is picked up within this many ticks. */
47
+ export const REFRESH_TICKS = 30;
48
+ export const newContext = (seedEof = false) => ({ tick: 0, marker: null, rooms: [], hw: new Map(), sizes: new Map(), seedEof, seeded: new Set() });
49
+ const keyOf = (s) => (s.kind === "dm" ? "dm" : `room:${s.chan}`);
50
+ const sizeOf = (file) => {
51
+ try {
52
+ return statSync(file).size;
53
+ }
54
+ catch {
55
+ return 0;
56
+ }
57
+ };
58
+ /** Read THIS seat's own marker, read-only. Never the reaping loader. */
59
+ export function readOwnMarker(agentId) {
60
+ try {
61
+ return JSON.parse(readFileSync(transportFile(agentId), "utf8"));
62
+ }
63
+ catch {
64
+ return null;
65
+ }
66
+ }
67
+ /** The shared line reader — re-exported so callers of this module keep one import. */
68
+ export { newMessagesIn } from "./jsonl-offsets.js";
69
+ async function offsetOf(agentId, src, ctx) {
70
+ const c = await readPushCursorFor(agentId);
71
+ const persisted = src.kind === "dm" ? Number(c.inboxOffset ?? 0) : Number((c.roomOffsets ?? {})[src.chan] ?? 0);
72
+ return Math.max(persisted, ctx.hw.get(keyOf(src)) ?? 0);
73
+ }
74
+ /** One pass. Everything that talks to the outside world is injectable, and nothing here schedules itself. */
75
+ export async function tailOnce(agentId, opts = {}) {
76
+ const out = { delivered: [], held: [] };
77
+ const t = opts.transport ?? activeTransport();
78
+ if (!t || t.kind !== HERDR)
79
+ return { ...out, idle: "this server's transport is not herdr — the tail is for a herdr seat's own inbox" };
80
+ const ctx = opts.ctx ?? newContext();
81
+ const refresh = ctx.tick % REFRESH_TICKS === 0;
82
+ ctx.tick += 1;
83
+ // A seat with NO marker re-reads it only on the refresh cadence too. The coordinator's gate found
84
+ // `|| !ctx.marker` here, which made a markerless seat — the exact state a vanished marker leaves —
85
+ // read its marker file on every tick while the stated idle cost said otherwise.
86
+ if (refresh) {
87
+ ctx.marker = (opts.markerOf ?? readOwnMarker)(agentId);
88
+ if (ctx.marker && ctx.marker.transport === HERDR && ctx.marker.rooms !== false) {
89
+ try {
90
+ const all = await (opts.roomsOf ?? getRooms)();
91
+ ctx.rooms = Object.entries(all ?? {}).filter(([, r]) => (r?.members ?? []).includes(agentId)).map(([chan]) => chan);
92
+ }
93
+ catch {
94
+ ctx.rooms = [];
95
+ }
96
+ }
97
+ else {
98
+ ctx.rooms = [];
99
+ }
100
+ }
101
+ const marker = ctx.marker;
102
+ if (!marker || marker.transport !== HERDR)
103
+ return { ...out, idle: `${agentId} has no herdr marker on this bus — nothing to type into (re-checked every ${REFRESH_TICKS} ticks)` };
104
+ const sources = [{ kind: "dm", file: inboxFile(agentId) }, ...ctx.rooms.map((chan) => ({ kind: "room", chan, file: roomFile(chan) }))];
105
+ for (const src of sources) {
106
+ const size = sizeOf(src.file);
107
+ const key = keyOf(src);
108
+ // ⭐ THE IDLE PATH: a source that has not grown since the last tick costs this one stat.
109
+ if (ctx.sizes.get(key) === size)
110
+ continue;
111
+ ctx.sizes.set(key, size);
112
+ // ⛔ FIRST SIGHT OF A SOURCE UNDER seedEof: adopt EOF and type NOTHING. This is the only place
113
+ // the starting offset is decided, and it is decided EXPLICITLY rather than inherited from a
114
+ // cursor file that a restart may have reset. Per source, so a room joined later seeds on its
115
+ // own first sight instead of replaying its history.
116
+ if (ctx.seedEof && !ctx.seeded.has(key)) {
117
+ ctx.seeded.add(key);
118
+ ctx.hw.set(key, size);
119
+ continue;
120
+ }
121
+ const from = await offsetOf(agentId, src, ctx);
122
+ if (size <= from)
123
+ continue;
124
+ for (const { msg, end } of newMessagesIn(src.file, from)) {
125
+ if (msg.from === agentId) {
126
+ ctx.hw.set(key, end);
127
+ continue;
128
+ }
129
+ const where = src.kind === "dm" ? { kind: "dm" } : { kind: "room", chan: src.chan };
130
+ const rendered = await renderForPane(msg, agentId, where);
131
+ let r;
132
+ try {
133
+ r = await t.push(marker, rendered);
134
+ }
135
+ catch (e) {
136
+ r = { delivered: false, safeToRetry: false, error: e.message };
137
+ }
138
+ if (!r.delivered && r.safeToRetry === true) {
139
+ // HELD: the transport sent NO key (no ready input box, a draft, a dialog, an unreadable pane).
140
+ // Nothing moves and the message is retried next tick, which costs only a screen read. Stop
141
+ // this source so no later message is typed past one that did not land.
142
+ out.held.push({ kind: src.kind, chan: src.chan, id: String(msg.id ?? ""), why: r.error ?? "held — nothing was typed" });
143
+ ctx.sizes.delete(key); // force a re-read next tick
144
+ break;
145
+ }
146
+ // ⛔ ANYTHING SHORT OF A VERIFIED DELIVERY DOES NOT MOVE THE PERSISTENT CURSOR (⟨q-15d763dc⟩).
147
+ // Keys may have reached the pane (text typed, an Enter pressed) without the screen proving the
148
+ // message was submitted, so it stays owed on disk: read_messages still serves it and a restart
149
+ // re-offers it. The in-process high-water mark alone stops it being re-typed every tick, since
150
+ // re-typing a message that may already be sitting in the box is the paste loop in another coat.
151
+ // A throw lands here too: nothing says whether a key went out before it.
152
+ if (!r.delivered || r.verified !== true) {
153
+ ctx.hw.set(key, end);
154
+ out.held.push({ kind: src.kind, chan: src.chan, id: String(msg.id ?? ""), why: `${r.outcome ?? (r.delivered ? "unverified" : "not delivered")} — ${r.error ?? "not verified"}; the persistent cursor was not moved (q-15d763dc)` });
155
+ break;
156
+ }
157
+ // It landed and was verified. Record that in-process FIRST, so a cursor write that fails
158
+ // cannot turn one delivery into a paste loop, then persist exactly past this line.
159
+ ctx.hw.set(key, end);
160
+ const persisted = await advancePushCursor(agentId, where, end);
161
+ out.delivered.push({ kind: src.kind, chan: src.chan, id: String(msg.id ?? "") });
162
+ if (!persisted) {
163
+ out.held.push({ kind: src.kind, chan: src.chan, id: String(msg.id ?? ""), why: "delivered, but the push cursor could not be written — held in memory so it is not re-typed; a restart before the next successful write may type it once more" });
164
+ break;
165
+ }
166
+ }
167
+ }
168
+ return out;
169
+ }
170
+ const running = new Map();
171
+ /** What `capabilities` reports: the tails THIS PROCESS is actually running, not the ones it could run. */
172
+ export function herdrTailState() {
173
+ return [...running.values()].map(({ stop: _stop, ...r }) => ({ ...r, running: true }));
174
+ }
175
+ export function stopHerdrTail(agentId) {
176
+ const r = running.get(agentId);
177
+ if (!r)
178
+ return false;
179
+ r.stop();
180
+ running.delete(agentId);
181
+ return true;
182
+ }
183
+ export function stopAllHerdrTails() {
184
+ for (const id of [...running.keys()])
185
+ stopHerdrTail(id);
186
+ }
187
+ /**
188
+ * Start the tail for `agentId` if this server's transport is herdr. IDEMPOTENT: a second bind of
189
+ * the same agent in the same process returns `running: true, started: false`.
190
+ *
191
+ * ⛔ NEVER OVERLAPS ITSELF: a tick still typing when the timer fires would interleave two pastes
192
+ * into one pane; the guard is one in-flight flag, because the next tick re-reads the cursor.
193
+ */
194
+ export function ensureHerdrTail(agentId, opts = {}) {
195
+ const t = opts.transport ?? activeTransport();
196
+ if (!t || t.kind !== HERDR)
197
+ return { started: false, running: false, why: `transport is ${t?.kind ?? "unwired"}, not herdr — a tmux seat is woken by its pusher` };
198
+ if (running.has(agentId))
199
+ return { started: false, running: true, why: "already tailing this agent in this process" };
200
+ const ctx = newContext(opts.seedEof === true);
201
+ const run = opts.tail ?? ((id, c) => tailOnce(id, { transport: t, ctx: c }));
202
+ const rec = { agentId, startedAt: new Date().toISOString(), ticks: 0, delivered: 0, held: 0, lastTickAt: null, lastWhy: null, stop: () => { } };
203
+ let inFlight = false;
204
+ const timer = setInterval(() => {
205
+ if (inFlight)
206
+ return;
207
+ inFlight = true;
208
+ void run(agentId, ctx)
209
+ .then((o) => {
210
+ rec.ticks += 1;
211
+ rec.lastTickAt = new Date().toISOString();
212
+ rec.delivered += o.delivered.length;
213
+ rec.held += o.held.length;
214
+ rec.lastWhy = o.held.at(-1)?.why ?? o.idle ?? null;
215
+ })
216
+ .catch((e) => { rec.lastWhy = `tick threw: ${e.message}`; })
217
+ .finally(() => { inFlight = false; });
218
+ }, opts.pollMs ?? DEFAULT_POLL_MS);
219
+ timer.unref?.(); // optional-call: `unref` is absent on some host timer shims, and a server that cannot unref its tail must still start it
220
+ rec.stop = () => clearInterval(timer);
221
+ running.set(agentId, rec);
222
+ return { started: true, running: true, why: `tailing ${agentId}'s inbox and rooms every ${opts.pollMs ?? DEFAULT_POLL_MS}ms` };
223
+ }
224
+ /**
225
+ * The hook the server calls at EVERY identity binding — `join`, a gated first claim, the env var,
226
+ * or (HTTP) an authenticated request from a PRE-BOUND identity.
227
+ *
228
+ * ⛔ THE BINDING TRANSITION IS NOT REACHABLE UNDER HTTP, WHICH IS WHY THIS ALSO HANGS OFF AUTH.
229
+ * The `bound === undefined` sites below only fire when a session CLAIMS an id. A token-authenticated
230
+ * daemon resolves identity per request and reports `pre-bound (N agents)`, so `bound` is never
231
+ * undefined and NO tail ever started — measured 2026-09-17 as `herdrTail: []` on a freshly
232
+ * restarted daemon whose seats had re-joined after it. With the send-time path deferring owed
233
+ * messages to "the recipient's own tail", a tail that never exists makes that deferral a permanent
234
+ * silent drop: one message behind and the seat is deaf for good (⟨q-cdb5b007⟩).
235
+ *
236
+ * Idempotent, so the per-request call costs one Map lookup once the tail is up.
237
+ */
238
+ export function startTailOnBind(agentId, log = (l) => console.error(l)) {
239
+ const r = ensureHerdrTail(agentId, { seedEof: true });
240
+ if (r.started)
241
+ log(`[agent-coord-mcp] herdr tail: ${r.why}`);
242
+ }
243
+ //# sourceMappingURL=herdr-tail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"herdr-tail.js","sourceRoot":"","sources":["../../src/tools/herdr-tail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Messages appended to a JSONL bus file after byte `from`, each with the absolute byte offset just
3
+ * past its own line. Shared by the send-time herdr path and the seat's own tail, so both agree on
4
+ * exactly which bytes a delivery covers — a second reader would be a second truth about where a
5
+ * seat's cursor may move.
6
+ *
7
+ * A partial trailing line is left for the next read rather than guessed at, and a line that is not
8
+ * JSON is skipped with the offset moving past it.
9
+ */
10
+ import { readFileSync } from "node:fs";
11
+ export function newMessagesIn(file, from) {
12
+ let buf;
13
+ try {
14
+ buf = readFileSync(file);
15
+ }
16
+ catch {
17
+ return [];
18
+ }
19
+ const out = [];
20
+ let pos = Math.min(Math.max(0, from), buf.length);
21
+ while (pos < buf.length) {
22
+ const nl = buf.indexOf(0x0a, pos);
23
+ if (nl === -1)
24
+ break;
25
+ const line = buf.subarray(pos, nl).toString("utf8");
26
+ const end = nl + 1;
27
+ pos = end;
28
+ if (!line.trim())
29
+ continue;
30
+ try {
31
+ out.push({ msg: JSON.parse(line), end });
32
+ }
33
+ catch { /* not a message; the offset moves past it */ }
34
+ }
35
+ return out;
36
+ }
37
+ //# sourceMappingURL=jsonl-offsets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonl-offsets.js","sourceRoot":"","sources":["../../src/tools/jsonl-offsets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAIvC,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,IAAY;IACtD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QAAC,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC;IAAC,CAAC;IACtD,MAAM,GAAG,GAAoB,EAAE,CAAC;IAChC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,OAAO,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAClC,IAAI,EAAE,KAAK,CAAC,CAAC;YAAE,MAAM;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;QACnB,GAAG,GAAG,GAAG,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,SAAS;QAC3B,IAAI,CAAC;YAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,6CAA6C,CAAC,CAAC;IAC3G,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -13,6 +13,9 @@ import { readLog } from "./logwatch.js";
13
13
  // `dist/`, so this resolves the same in the built package as in source.
14
14
  // @ts-expect-error — untyped .mjs sibling, deliberately not duplicated in TS
15
15
  import { priorDeliveries, replayInfo } from "../../hooks/replay.mjs";
16
+ // ⟨q-e5cb3538⟩ The pane-unsafe byte class is single-sourced there too, shared with the renderer.
17
+ // @ts-expect-error — untyped .mjs sibling, deliberately not duplicated in TS
18
+ import { findControlByte } from "../../hooks/control-bytes.mjs";
16
19
  import { renderRecord } from "./render.js";
17
20
  import path from "node:path";
18
21
  import { AGENTS_FILE, DEFAULT_ROOM, INBOX_DIR, ROOM_FILE, ROOMS_DIR, STATUS_FILE, appendJsonl, cursorFile, ensureRoom, fileSize, getRooms, inboxFile, listInboxFiles, memberRooms, normalizeRoom, readJson, readJsonl, receiptFile, roomFile, stashHistory, retrieveHistory, updateJson, } from "../store.js";
@@ -247,6 +250,21 @@ export async function sendMessageTool(args) {
247
250
  const scribeCheck = checkVerdictScribe(args.from, args.record);
248
251
  if (!scribeCheck.ok)
249
252
  return { ok: false, error: scribeCheck.error };
253
+ // ⟨q-e5cb3538⟩ — INGRESS POLICY: REFUSE, don't rewrite. A control byte in content is a
254
+ // keystroke in every pane the message is typed into (CR submits, ESC interrupts, ETX is
255
+ // Ctrl-C). Refused rather than silently escaped because the stored message is what gets
256
+ // cited and replayed; a rewrite would make it differ from what the sender wrote, and the
257
+ // sender is the only party who can say what the byte was for. Line feed and tab pass.
258
+ // Render-time escaping (hooks/tier.mjs) still covers history stored before this check.
259
+ const control = findControlByte({ from: args.from, to: args.to, room: args.room, text: args.text, record: args.record, repo: args.repo });
260
+ if (control) {
261
+ return {
262
+ ok: false,
263
+ error: `refused: '${control.path}' carries a control character (${control.escape}) at offset ${control.offset}. ` +
264
+ "Delivered to a pane it would be typed as a keystroke in the recipient's session. " +
265
+ "Remove it, or write it out visibly (e.g. \\r); quoted external text (PR bodies, commit messages) is the usual carrier. Nothing was written.",
266
+ };
267
+ }
250
268
  // A `done` must cite the work it claims. Presence and shape only — resolving
251
269
  // the ref against gh/git is a consumer's job, and the send path makes no
252
270
  // network calls. Rejected as a value, not a throw, mirroring the
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/tools/messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/tools/messaging.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ import { verdictsFor, gatedBy, prVerdictsIn } from "../gated-head.js";
23
23
  import { boardRefFor, classifyBoardRef } from "./board-ref.js";
24
24
  import { haltState } from "./stall.js";
25
25
  import { readSubs, evaluate, commitEvaluation, eventIsDerived } from "./events.js";
26
- import { prRefsIn } from "./record-events.js";
26
+ import { prRefsIn, leadingItemIdOf } from "./record-events.js";
27
27
  const QUEUE_DOC = "docs/QUEUE.md";
28
28
  const DONE_DOC = "docs/DONE.md";
29
29
  const BOARD_DOC = "docs/WORKSTREAMS.md";
@@ -1127,7 +1127,23 @@ export async function landTool(args, readMergeFacts = ghMergeFacts, readVerdictL
1127
1127
  target.text = `${target.text}${citationAppended}`;
1128
1128
  }
1129
1129
  }
1130
- const already = doneEntriesOf(d.doc).some((e) => new RegExp(`#${n}\\b`).test(String(e.ref ?? "")));
1130
+ /*
1131
+ * ⛔ ⟨q-552b9912⟩ "ALREADY LOGGED" IS A QUESTION ABOUT THE ITEM, NOT THE PR.
1132
+ *
1133
+ * It asked whether ANY DONE entry cited this PR, so the second item a PR closed found the first item's entry,
1134
+ * reported `alreadyLogged: true`, and wrote nothing: the row left the queue and never reached the delivery record,
1135
+ * so `scan_record_events` emitted no item event for it. Measured twice on 2026-09-16 — ⟨q-3b8e05af⟩ on #360 and
1136
+ * ⟨q-144c97a8⟩ on #366, both hand-repaired (07338a1, 00c8315).
1137
+ *
1138
+ * Keyed per item BY POSITION ONLY: an entry is this item's when it LEADS with `⟨id⟩` (the form this verb writes). A
1139
+ * by-mention fallback was tried and REMOVED (qa's FAIL on #370 @ fce3ae1): an id-less entry for this PR that merely
1140
+ * MENTIONS the id — B never landed — read as logged and wrote nothing, the same defect narrowed. A mention is not a
1141
+ * record. A land with no item keeps the PR key, since there is no item to key on.
1142
+ */
1143
+ const citesThisPr = (e) => new RegExp(`#${n}\\b`).test(String(e.ref ?? ""));
1144
+ const already = target
1145
+ ? doneEntriesOf(d.doc).some((e) => leadingItemIdOf(e.text) === target.id)
1146
+ : doneEntriesOf(d.doc).some(citesThisPr);
1131
1147
  // A DONE LINE A HUMAN WOULD NOT HAVE WRITTEN IS NOT A DONE LINE.
1132
1148
  //
1133
1149
  // First real use produced `- [x] PR #117 — #117 · 2026-08-28`: no description of