agent-coord-mcp 0.26.36 → 0.26.40
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.
- package/dist/auth-faults.js +145 -0
- package/dist/auth-faults.js.map +1 -0
- package/dist/capabilities.js +113 -2
- package/dist/capabilities.js.map +1 -1
- package/dist/launch-unit.js +282 -0
- package/dist/launch-unit.js.map +1 -0
- package/dist/server.js +46 -7
- package/dist/server.js.map +1 -1
- package/dist/store.js +139 -1
- package/dist/store.js.map +1 -1
- package/dist/test-count-key.js +22 -0
- package/dist/test-count-key.js.map +1 -0
- package/dist/tools/away.js +80 -17
- package/dist/tools/away.js.map +1 -1
- package/dist/tools/events.js +77 -3
- package/dist/tools/events.js.map +1 -1
- package/dist/tools/herdr-delivery.js +51 -36
- package/dist/tools/herdr-delivery.js.map +1 -1
- package/dist/tools/herdr-tail.js +99 -77
- package/dist/tools/herdr-tail.js.map +1 -1
- package/dist/tools/registry.js +50 -3
- package/dist/tools/registry.js.map +1 -1
- package/dist/transports/herdr.js +92 -2
- package/dist/transports/herdr.js.map +1 -1
- package/package.json +1 -1
- package/scripts/check-test-count.mjs +80 -6
- package/scripts/coord-attention-clock.mjs +19 -21
- package/scripts/coord-stall-clock.mjs +23 -24
- package/scripts/lib/clock-unit-cli.mjs +134 -0
- package/src/auth-faults.ts +166 -0
- package/src/capabilities.ts +115 -2
- package/src/launch-unit.ts +350 -0
- package/src/server.ts +47 -6
- package/src/store.ts +146 -1
- package/src/test-count-key.ts +21 -0
- package/src/tools/away.ts +113 -28
- package/src/tools/events.ts +89 -4
- package/src/tools/herdr-delivery.ts +46 -31
- package/src/tools/herdr-tail.ts +84 -65
- package/src/tools/registry.ts +55 -3
- package/src/transports/herdr.ts +93 -2
package/dist/tools/events.js
CHANGED
|
@@ -20,6 +20,19 @@ const subsFile = () => path.join(ROOT, "subscriptions.json");
|
|
|
20
20
|
// that can be subscribed to but never emitted is unsatisfiable BY CONSTRUCTION
|
|
21
21
|
// only if the enum cannot be widened without an emitter.
|
|
22
22
|
export { EVENT_KINDS, EVENT_KIND_IDS };
|
|
23
|
+
/**
|
|
24
|
+
* ⟨q-8e00b367⟩(a) — HOW WIDELY A SUBSCRIPTION IS ASKING, as an EXPLICIT FIELD.
|
|
25
|
+
*
|
|
26
|
+
* ⛔ THE ALTERNATIVE WAS AN IN-BAND SENTINEL AND IT IS FORBIDDEN BY DESIGN. `target: "*"` would make
|
|
27
|
+
* one string mean two things — a literal target that happens to be an asterisk, and "everything" —
|
|
28
|
+
* and nothing in the wire shape would say which was meant. A separate field cannot be ambiguous.
|
|
29
|
+
*
|
|
30
|
+
* ⚠ `prefix` IS A PREFIX OF WHATEVER `target` HOLDS FOR THAT KIND, which differs per kind and is not
|
|
31
|
+
* guessable from the name: `pr` → the full ref (`owner/repo#402`), `item` → the queue id, `task` →
|
|
32
|
+
* the KEY (its `ref` is the ticked LINE, so a prefix here is NOT a prefix of the line), `phase` →
|
|
33
|
+
* the phase. Measured from the emitters in record-events.ts, not from documentation.
|
|
34
|
+
*/
|
|
35
|
+
export const SUB_SCOPES = ["exact", "kind", "prefix"];
|
|
23
36
|
export function readSubs() {
|
|
24
37
|
const f = subsFile();
|
|
25
38
|
if (!existsSync(f))
|
|
@@ -151,8 +164,33 @@ export function eventIsDerived(recordText, ev) {
|
|
|
151
164
|
};
|
|
152
165
|
return { ok: true };
|
|
153
166
|
}
|
|
154
|
-
/**
|
|
155
|
-
|
|
167
|
+
/**
|
|
168
|
+
* Subscriptions matching an event, by the scope each one asked for.
|
|
169
|
+
*
|
|
170
|
+
* ⛔ THE GAP THIS CLOSES IS A DELIVERY OF NOTHING REPORTED AS A DELIVERY. With exact-only matching,
|
|
171
|
+
* "tell me when a new PR arrives" is inexpressible — a `pr` event's `target` IS its ref, so you would
|
|
172
|
+
* have to name `owner/repo#402` at subscribe time, and the entire point is that you do not know it
|
|
173
|
+
* yet. A poller could then scan correctly, emit a well-formed event, and match ZERO subscriptions
|
|
174
|
+
* while every instrument reported success: the tick exits 0, the scan finds a change, the emit
|
|
175
|
+
* succeeds, `list_subscriptions` shows healthy watches. Nothing anywhere reads as wrong.
|
|
176
|
+
*
|
|
177
|
+
* ⚠ `exact` REMAINS THE DEFAULT, so a widened match is always something a subscriber opted into.
|
|
178
|
+
*/
|
|
179
|
+
export const matching = (subs, ev) => subs.filter((s) => {
|
|
180
|
+
if (s.kind !== ev.kind)
|
|
181
|
+
return false;
|
|
182
|
+
switch (s.scope ?? "exact") {
|
|
183
|
+
case "kind":
|
|
184
|
+
return true;
|
|
185
|
+
// `startsWith` on a non-empty prefix only: an EMPTY prefix matches every target, which is the
|
|
186
|
+
// `"*"` sentinel this design rejected, arriving through the field that replaced it. `subscribe`
|
|
187
|
+
// refuses to create one; this guard means a hand-edited store cannot smuggle one in either.
|
|
188
|
+
case "prefix":
|
|
189
|
+
return s.target !== "" && ev.target.startsWith(s.target);
|
|
190
|
+
default:
|
|
191
|
+
return s.target === ev.target;
|
|
192
|
+
}
|
|
193
|
+
});
|
|
156
194
|
/**
|
|
157
195
|
* Evaluate every subscription against one event and return what to deliver.
|
|
158
196
|
*
|
|
@@ -195,11 +233,46 @@ export function evaluate(subs, ev, now) {
|
|
|
195
233
|
export const subscribeSchema = {
|
|
196
234
|
agentId: z.string().min(1),
|
|
197
235
|
kind: z.enum(EVENT_KIND_IDS),
|
|
236
|
+
// ⚠ STILL REQUIRED AND STILL `min(1)`. `scope:"kind"` does not relax it — it REFUSES it (below), so
|
|
237
|
+
// there is no shape where an empty or absent target is accepted. Relaxing the schema instead would
|
|
238
|
+
// have made `target:""` representable, which is the wildcard this design exists to keep out.
|
|
198
239
|
target: z.string().min(1),
|
|
240
|
+
// A CLOSED SET, never a free string. The registry generates the kind enum so that a subscription
|
|
241
|
+
// which no emitter can satisfy cannot be registered; a free-form scope would reopen exactly that
|
|
242
|
+
// hole one field over — an unsatisfiable scope is an unsatisfiable subscription.
|
|
243
|
+
scope: z.enum(SUB_SCOPES).optional(),
|
|
199
244
|
};
|
|
200
245
|
export async function subscribeTool(args) {
|
|
246
|
+
const scope = args.scope ?? "exact";
|
|
247
|
+
// ⛔ `kind` + A TARGET IS REFUSED, NOT IGNORED. An accepted-and-ignored target leaves a
|
|
248
|
+
// subscription that READS NARROWER THAN IT BEHAVES: an inspector sees one specific target and
|
|
249
|
+
// concludes the watch is narrow, while it fires on everything of that kind.
|
|
250
|
+
//
|
|
251
|
+
// ⭐ AND THE ASYMMETRY IS WHAT DECIDES IT RATHER THAN TASTE: refusing is relaxable later, whereas
|
|
252
|
+
// silently-ignoring is NOT tightenable later — the moment such subscriptions exist on disk,
|
|
253
|
+
// tightening changes what an already-stored registration means.
|
|
254
|
+
if (args.scope === "kind" && args.target)
|
|
255
|
+
return {
|
|
256
|
+
ok: false,
|
|
257
|
+
error: `scope "kind" watches EVERY ${args.kind} event, so the target '${args.target}' would be ignored — refusing rather than ` +
|
|
258
|
+
`accepting a subscription that reads narrower than it behaves. Omit the target for kind-wide, ` +
|
|
259
|
+
`or use scope "prefix" with '${args.target}' to watch the ${args.kind} events whose target starts with it.`,
|
|
260
|
+
};
|
|
261
|
+
// ⛔ AN EMPTY PREFIX IS THE `"*"` WILDCARD WEARING THE FIELD THAT REPLACED IT. `"".startsWith()` is
|
|
262
|
+
// true of every string, so `scope:"prefix"` with an empty target subscribes to everything of the
|
|
263
|
+
// kind while LOOKING like a narrow, targeted watch — the same back door as `target:"*"`, one layer
|
|
264
|
+
// down and through an approved field. `kind` is how you ask for everything, and it says so.
|
|
265
|
+
if (scope === "prefix" && args.target.trim() === "")
|
|
266
|
+
return {
|
|
267
|
+
ok: false,
|
|
268
|
+
error: `scope "prefix" with an empty target matches EVERY ${args.kind} event — that is the wildcard this ` +
|
|
269
|
+
`field exists to avoid spelling in-band. Use scope "kind" to watch all of them explicitly, or ` +
|
|
270
|
+
`give a non-empty prefix (e.g. 'davidbalzan/groundwork-kit#' for one repo's PRs).`,
|
|
271
|
+
};
|
|
201
272
|
const subs = readSubs();
|
|
202
|
-
|
|
273
|
+
// Identity includes the SCOPE: `exact` on 'q-1' and `prefix` on 'q-1' are different watches, and
|
|
274
|
+
// collapsing them would silently hand back the narrower one.
|
|
275
|
+
const dupe = subs.find((s) => s.agentId === args.agentId && s.kind === args.kind && s.target === args.target && (s.scope ?? "exact") === scope);
|
|
203
276
|
if (dupe)
|
|
204
277
|
return { ok: true, subscription: dupe, note: "already subscribed — returning the existing registration rather than a second one" };
|
|
205
278
|
const sub = {
|
|
@@ -207,6 +280,7 @@ export async function subscribeTool(args) {
|
|
|
207
280
|
agentId: args.agentId,
|
|
208
281
|
kind: args.kind,
|
|
209
282
|
target: args.target,
|
|
283
|
+
scope,
|
|
210
284
|
createdAt: Date.now(),
|
|
211
285
|
// EXPLICIT null, never left absent. `null` means "we know no scan has run
|
|
212
286
|
// for this"; `undefined` means "this record predates the field and we
|
package/dist/tools/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
import { mkdirSync, statSync } from "node:fs";
|
|
24
24
|
import path from "node:path";
|
|
25
25
|
import { pathToFileURL } from "node:url";
|
|
26
|
-
import { activeTransport, HERDR } from "../transports/index.js";
|
|
27
|
-
import { ROOT, inboxFile, roomFile } from "../store.js";
|
|
26
|
+
import { activeTransport, HERDR, targetOf } from "../transports/index.js";
|
|
27
|
+
import { ROOT, inboxFile, roomFile, withDeliveryLock } from "../store.js";
|
|
28
28
|
import { loadLiveTransports } from "./registry.js";
|
|
29
29
|
import { newMessagesIn } from "./jsonl-offsets.js";
|
|
30
30
|
let hooks;
|
|
@@ -38,6 +38,8 @@ function loadHooks() {
|
|
|
38
38
|
return hooks;
|
|
39
39
|
}
|
|
40
40
|
const safeId = (id) => id.replace(/[^A-Za-z0-9._-]/g, "_");
|
|
41
|
+
/** The (seat, source) key the delivery lock is taken on — ONE spelling, shared by the send-time path and the tail. */
|
|
42
|
+
export const sourceKey = (where) => (where.kind === "dm" ? "dm" : `room:${where.chan}`);
|
|
41
43
|
/**
|
|
42
44
|
* ⭐ ONE RENDERER AND ONE CURSOR RULE, SHARED BY BOTH PATHS. The send-time path
|
|
43
45
|
* (`deliverToHerdrSeats`) and the seat's own tail (`herdr-tail.ts`) must produce the same bytes
|
|
@@ -92,8 +94,13 @@ export async function readPushCursorFor(agentId) {
|
|
|
92
94
|
return {};
|
|
93
95
|
}
|
|
94
96
|
}
|
|
97
|
+
/** Every push, whichever path made it, is logged NAMING THE PATH — so a duplicate is separable from a retried write without transcript archaeology (⟨q-524305dd⟩). */
|
|
98
|
+
export const pushLogLine = (path, id, target, outcome, error) => `[herdr-${path === "tail" ? "tail" : "delivery"}] push id=${String(id ?? "?")} target=${target ?? "?"} outcome=${outcome}` +
|
|
99
|
+
(error ? ` reason=${JSON.stringify(error)}` : "") +
|
|
100
|
+
` path=${path}`;
|
|
95
101
|
/** Deliver one just-appended message to every herdr-attached recipient among `recipients`. */
|
|
96
|
-
export async function deliverToHerdrSeats(msg, recipients, where) {
|
|
102
|
+
export async function deliverToHerdrSeats(msg, recipients, where, opts = {}) {
|
|
103
|
+
const log = opts.log ?? ((l) => console.error(l));
|
|
97
104
|
const t = activeTransport();
|
|
98
105
|
if (!t || t.kind !== HERDR)
|
|
99
106
|
return [];
|
|
@@ -120,39 +127,47 @@ export async function deliverToHerdrSeats(msg, recipients, where) {
|
|
|
120
127
|
// The coordinator's gate named the old call as "still advances the cursor to EOF"; measured,
|
|
121
128
|
// it did exactly that. So: find THIS message after the persisted cursor; if any earlier
|
|
122
129
|
// message to someone else precedes it, defer to the recipient's tail, which delivers in order.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
:
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
130
|
+
// ⛔ ⟨q-524305dd⟩ read → type → verify → advance as the ONLY deliverer to this seat's source, across
|
|
131
|
+
// processes: the seat's own tail takes the same lock, so it cannot read this cursor mid-verify and
|
|
132
|
+
// type the message a second time. WAIT, never skip: the seat may have no tail at all (⟨q-cdb5b007⟩).
|
|
133
|
+
const locked = await withDeliveryLock(agentId, sourceKey(where), async () => {
|
|
134
|
+
const file = where.kind === "dm" ? inboxFile(agentId) : roomFile(where.chan);
|
|
135
|
+
const c = await readPushCursorFor(agentId);
|
|
136
|
+
const from = where.kind === "dm" ? Number(c.inboxOffset ?? 0) : Number((c.roomOffsets ?? {})[where.chan] ?? 0);
|
|
137
|
+
const after = newMessagesIn(file, from);
|
|
138
|
+
const at = after.findIndex((m) => m.msg.id === msg.id);
|
|
139
|
+
const owed = at === -1 ? [] : after.slice(0, at).filter((m) => m.msg.from !== agentId);
|
|
140
|
+
if (at === -1 || owed.length > 0) {
|
|
141
|
+
out.push({
|
|
142
|
+
agentId,
|
|
143
|
+
delivered: false,
|
|
144
|
+
cursorAdvanced: false,
|
|
145
|
+
deferred: at === -1
|
|
146
|
+
? "this message is not after the push cursor (already delivered, or the file moved) — left to the recipient's tail"
|
|
147
|
+
: `${owed.length} earlier message(s) to this seat are still owed — left to the recipient's own tail, which delivers in order`,
|
|
148
|
+
});
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const rendered = await renderForPane(msg, agentId, where);
|
|
152
|
+
// A control never comes through here: send_command hands a herdr seat's control to the
|
|
153
|
+
// transport's sendControl directly (a raw-vs-rendered branch here was dead and its
|
|
154
|
+
// mutation survived, so it is gone). Everything delivered here is a rendered message.
|
|
155
|
+
let r;
|
|
156
|
+
try {
|
|
157
|
+
r = await t.push(marker, rendered);
|
|
158
|
+
}
|
|
159
|
+
catch (e) {
|
|
160
|
+
r = { delivered: false, error: e.message };
|
|
161
|
+
}
|
|
162
|
+
// ⟨q-15d763dc⟩ Only a VERIFIED delivery moves the cursor; anything less leaves the message owed.
|
|
163
|
+
const verified = r.delivered && r.verified === true;
|
|
164
|
+
log(pushLogLine("send-time", msg.id, targetOf(marker), verified ? "delivered" : r.delivered ? "typed-unconfirmed" : "not-delivered", r.error));
|
|
165
|
+
// Exactly past THIS message's line — never to the end of the file, which may already hold a later one.
|
|
166
|
+
const cursorAdvanced = verified ? await advancePushCursor(agentId, where, after[at].end) : false;
|
|
167
|
+
out.push({ agentId, delivered: verified, enters: r.enters, error: r.error ?? (r.delivered ? "delivered but not verified — cursor held (q-15d763dc)" : undefined), cursorAdvanced });
|
|
168
|
+
}, { wait: true, log });
|
|
169
|
+
if (!locked.ran)
|
|
170
|
+
out.push({ agentId, delivered: false, cursorAdvanced: false, deferred: `${locked.why} — left to that deliverer, which types in order` });
|
|
156
171
|
}
|
|
157
172
|
return out;
|
|
158
173
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"herdr-delivery.js","sourceRoot":"","sources":["../../src/tools/herdr-delivery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAwB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"herdr-delivery.js","sourceRoot":"","sources":["../../src/tools/herdr-delivery.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/herdr-tail.js
CHANGED
|
@@ -38,15 +38,16 @@
|
|
|
38
38
|
* `REFRESH_TICKS` ticks, and no herdr subprocess runs until there is something to type.
|
|
39
39
|
*/
|
|
40
40
|
import { readFileSync, statSync } from "node:fs";
|
|
41
|
-
import { inboxFile, roomFile, getRooms, transportFile } from "../store.js";
|
|
41
|
+
import { inboxFile, roomFile, getRooms, transportFile, withDeliveryLock } from "../store.js";
|
|
42
42
|
import { activeTransport, HERDR, targetOf } from "../transports/index.js";
|
|
43
|
-
import { renderForPane, advancePushCursor, readPushCursorFor } from "./herdr-delivery.js";
|
|
43
|
+
import { renderForPane, advancePushCursor, readPushCursorFor, pushLogLine, sourceKey } from "./herdr-delivery.js";
|
|
44
44
|
import { newMessagesIn, idEndingAt, endOfId } from "./jsonl-offsets.js";
|
|
45
45
|
export const DEFAULT_POLL_MS = 1000;
|
|
46
46
|
/** Marker and room membership are re-read this often. A room joined mid-session is picked up within this many ticks. */
|
|
47
47
|
export const REFRESH_TICKS = 30;
|
|
48
48
|
export const newContext = (seedEof = false) => ({ tick: 0, marker: null, rooms: [], hw: new Map(), hwId: new Map(), sizes: new Map(), seedEof, seeded: new Set(), pastEof: new Set() });
|
|
49
|
-
|
|
49
|
+
/** ONE spelling with the send-time path: the delivery lock is taken on this key by both (⟨q-524305dd⟩). */
|
|
50
|
+
const keyOf = (s) => sourceKey(s.kind === "dm" ? { kind: "dm" } : { kind: "room", chan: s.chan });
|
|
50
51
|
/** Set the in-process mark just past `msg`, remembering which message it follows. */
|
|
51
52
|
const mark = (ctx, key, end, msg) => {
|
|
52
53
|
ctx.hw.set(key, end);
|
|
@@ -148,84 +149,105 @@ export async function tailOnce(agentId, opts = {}) {
|
|
|
148
149
|
// now sits below it. So the mark is checked against the message it was set after: moved to where
|
|
149
150
|
// that message now ends, or — if it was archived — dropped, and the PERSISTED cursor, which the
|
|
150
151
|
// compactor rebased exactly (adjustCursors → rebaseBytes), is the position again.
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
if (
|
|
157
|
-
ctx.
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
152
|
+
// ⛔ ⟨q-524305dd⟩ THE SAME LOCK THE SENDER'S SEND-TIME PUSH TAKES. Without it, this tick read the push
|
|
153
|
+
// cursor while a sender's server was mid-verify on the same message and typed it a second time. A
|
|
154
|
+
// tick never waits for it: whoever holds it is delivering, and the next tick re-reads the cursor.
|
|
155
|
+
const locked = await withDeliveryLock(agentId, key, async () => {
|
|
156
|
+
const held = ctx.hw.get(key);
|
|
157
|
+
if (held !== undefined && idEndingAt(src.file, held) !== (ctx.hwId.get(key) ?? null)) {
|
|
158
|
+
const id = ctx.hwId.get(key);
|
|
159
|
+
const moved = id ? endOfId(src.file, id) : null;
|
|
160
|
+
log(`[herdr-tail] ${key} for ${agentId} was rewritten beneath the in-process mark (byte ${held}, after ${id ?? "no id"}) — ${moved !== null ? `moved to byte ${moved}, where that message now ends` : "that message is gone; resuming from the rebased push cursor"}`);
|
|
161
|
+
if (moved !== null)
|
|
162
|
+
ctx.hw.set(key, moved);
|
|
163
|
+
else {
|
|
164
|
+
ctx.hw.delete(key);
|
|
165
|
+
ctx.hwId.delete(key);
|
|
166
|
+
}
|
|
161
167
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
ctx.pastEof.add(key);
|
|
172
|
-
}
|
|
173
|
-
else
|
|
174
|
-
ctx.pastEof.delete(key);
|
|
175
|
-
// ⭐ NEGATIVE CONTROL FOR THE CLASS THIS ROW IS ABOUT: nothing is logged here when
|
|
176
|
-
// `size === from` — a source with nothing owed must stay silent, or every idle room on
|
|
177
|
-
// every tick becomes a line and the log that is supposed to make a real stall visible
|
|
178
|
-
// drowns in ones that are not.
|
|
179
|
-
if (size <= from)
|
|
180
|
-
continue;
|
|
181
|
-
for (const { msg, end } of newMessagesIn(src.file, from)) {
|
|
182
|
-
if (msg.from === agentId) {
|
|
183
|
-
mark(ctx, key, end, msg);
|
|
184
|
-
continue;
|
|
185
|
-
}
|
|
186
|
-
const where = src.kind === "dm" ? { kind: "dm" } : { kind: "room", chan: src.chan };
|
|
187
|
-
const rendered = await renderForPane(msg, agentId, where);
|
|
188
|
-
let r;
|
|
189
|
-
try {
|
|
190
|
-
r = await t.push(marker, rendered);
|
|
191
|
-
}
|
|
192
|
-
catch (e) {
|
|
193
|
-
r = { delivered: false, safeToRetry: false, error: e.message };
|
|
194
|
-
}
|
|
195
|
-
// ⟨q-1ce5bc97⟩ step 1(b) — EVERY push outcome, logged, before any branch decides what to do
|
|
196
|
-
// with it. Not just the ones that end up `held`: a `delivered` needs a line too, or the
|
|
197
|
-
// log can never distinguish "nothing was owed" from "something was pushed and it worked".
|
|
198
|
-
log(`[herdr-tail] push id=${String(msg.id ?? "?")} target=${targetOf(marker) ?? "?"} outcome=${r.outcome ?? (r.delivered ? "delivered" : "unknown")}` +
|
|
199
|
-
(r.error ? ` reason=${JSON.stringify(r.error)}` : ""));
|
|
200
|
-
if (!r.delivered && r.safeToRetry === true) {
|
|
201
|
-
// HELD: the transport sent NO key (no ready input box, a draft, a dialog, an unreadable pane).
|
|
202
|
-
// Nothing moves and the message is retried next tick, which costs only a screen read. Stop
|
|
203
|
-
// this source so no later message is typed past one that did not land.
|
|
204
|
-
out.held.push({ kind: src.kind, chan: src.chan, id: String(msg.id ?? ""), why: r.error ?? "held — nothing was typed" });
|
|
205
|
-
ctx.sizes.delete(key); // force a re-read next tick
|
|
206
|
-
break;
|
|
168
|
+
const from = await offsetOf(agentId, src, ctx);
|
|
169
|
+
// …and if the PERSISTED cursor is past EOF too, the compactor has not rebased it yet (it rewrites
|
|
170
|
+
// the file first, then the cursors) or a server without this fix compacted. `size <= from` below
|
|
171
|
+
// skips it either way; this only makes the state VISIBLE, once per entry — on 2026-09-24 the only
|
|
172
|
+
// measurements of this defect came from a seat reading the room file by hand.
|
|
173
|
+
if (from > size) {
|
|
174
|
+
if (!ctx.pastEof.has(key))
|
|
175
|
+
log(`[herdr-tail] ${key} push cursor for ${agentId} is past EOF (${from} > ${size} bytes) — nothing can be typed from there until it is rebased or the file regrows past it (q-f44f17a7)`);
|
|
176
|
+
ctx.pastEof.add(key);
|
|
207
177
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
//
|
|
211
|
-
//
|
|
212
|
-
//
|
|
213
|
-
//
|
|
214
|
-
if (
|
|
178
|
+
else
|
|
179
|
+
ctx.pastEof.delete(key);
|
|
180
|
+
// ⭐ NEGATIVE CONTROL FOR THE CLASS THIS ROW IS ABOUT: nothing is logged here when
|
|
181
|
+
// `size === from` — a source with nothing owed must stay silent, or every idle room on
|
|
182
|
+
// every tick becomes a line and the log that is supposed to make a real stall visible
|
|
183
|
+
// drowns in ones that are not.
|
|
184
|
+
if (size <= from)
|
|
185
|
+
return;
|
|
186
|
+
for (const { msg, end } of newMessagesIn(src.file, from)) {
|
|
187
|
+
if (msg.from === agentId) {
|
|
188
|
+
mark(ctx, key, end, msg);
|
|
189
|
+
continue;
|
|
190
|
+
}
|
|
191
|
+
const where = src.kind === "dm" ? { kind: "dm" } : { kind: "room", chan: src.chan };
|
|
192
|
+
const rendered = await renderForPane(msg, agentId, where);
|
|
193
|
+
let r;
|
|
194
|
+
try {
|
|
195
|
+
r = await t.push(marker, rendered);
|
|
196
|
+
}
|
|
197
|
+
catch (e) {
|
|
198
|
+
r = { delivered: false, safeToRetry: false, error: e.message };
|
|
199
|
+
}
|
|
200
|
+
// ⟨q-1ce5bc97⟩ step 1(b) — EVERY push outcome, logged, before any branch decides what to do
|
|
201
|
+
// with it. Not just the ones that end up `held`: a `delivered` needs a line too, or the
|
|
202
|
+
// log can never distinguish "nothing was owed" from "something was pushed and it worked".
|
|
203
|
+
log(pushLogLine("tail", msg.id, targetOf(marker), r.outcome ?? (r.delivered ? "delivered" : "unknown"), r.error));
|
|
204
|
+
// ⛔⛆ A `pending` IS RE-PUSHED, AND THAT IS THE CURE — NOT AN EXCLUSION. `pending` means the payload
|
|
205
|
+
// was typed and Enter pressed and it did NOT submit, so the composer now holds that text.
|
|
206
|
+
// ⚠ THE FIRST FIX HERE WAS TO SKIP THE RE-PUSH, and it was wrong: it stops the retype loop but the
|
|
207
|
+
// dirty composer then HOLDS every later message to that pane while the seat reads QUIET instead of
|
|
208
|
+
// WEDGED. Curing the loop is not curing the symptom.
|
|
209
|
+
// ⭐ What re-pushing now does depends on which transport this server loaded, and BOTH are correct:
|
|
210
|
+
// • NEW (this build): the transport recognises a payload IT left un-submitted and PRESSES ENTER
|
|
211
|
+
// rather than retyping — the message goes out on the next tick with no human involved.
|
|
212
|
+
// • OLD (0.26.36, what the fleet is still running): the push refuses on the draft, which is
|
|
213
|
+
// today's behaviour exactly, so this is no regression while the servers wait on a restart.
|
|
214
|
+
// ⛔ Either way it lands in `out.held` BELOW, so the state is VISIBLE every tick with the pane named
|
|
215
|
+
// and the human action spelled out. A silent park is the one outcome ruled out.
|
|
216
|
+
// ⛔ AND THE ENTER CANNOT LIVE HERE: a consumer cannot press a key, only ask the transport to push.
|
|
217
|
+
// Restarting the servers that would load it is David's call, not this slice's ⟨q-1ce5bc97⟩.
|
|
218
|
+
if (!r.delivered && r.safeToRetry === true) {
|
|
219
|
+
// NO VERIFIED DELIVERY and the transport says a retry could work: either nothing was typed (no
|
|
220
|
+
// ready input box, a foreign draft, a dialog, an unreadable pane) or the payload is sitting
|
|
221
|
+
// un-submitted in the box. Stop this source either way, so no later message is typed past one
|
|
222
|
+
// that did not land, and re-read next tick.
|
|
223
|
+
out.held.push({ kind: src.kind, chan: src.chan, id: String(msg.id ?? ""), why: r.error ?? (r.outcome === "pending" ? "pending — typed but not submitted" : "held — nothing was typed") });
|
|
224
|
+
ctx.sizes.delete(key); // force a re-read next tick
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
// ⛔ ANYTHING SHORT OF A VERIFIED DELIVERY DOES NOT MOVE THE PERSISTENT CURSOR (⟨q-15d763dc⟩).
|
|
228
|
+
// Keys may have reached the pane (text typed, an Enter pressed) without the screen proving the
|
|
229
|
+
// message was submitted, so it stays owed on disk: read_messages still serves it and a restart
|
|
230
|
+
// re-offers it. The in-process high-water mark alone stops it being re-typed every tick, since
|
|
231
|
+
// re-typing a message that may already be sitting in the box is the paste loop in another coat.
|
|
232
|
+
// A throw lands here too: nothing says whether a key went out before it.
|
|
233
|
+
if (!r.delivered || r.verified !== true) {
|
|
234
|
+
mark(ctx, key, end, msg);
|
|
235
|
+
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)` });
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
// It landed and was verified. Record that in-process FIRST, so a cursor write that fails
|
|
239
|
+
// cannot turn one delivery into a paste loop, then persist exactly past this line.
|
|
215
240
|
mark(ctx, key, end, msg);
|
|
216
|
-
|
|
217
|
-
|
|
241
|
+
const persisted = await advancePushCursor(agentId, where, end);
|
|
242
|
+
out.delivered.push({ kind: src.kind, chan: src.chan, id: String(msg.id ?? "") });
|
|
243
|
+
if (!persisted) {
|
|
244
|
+
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" });
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
218
247
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
const persisted = await advancePushCursor(agentId, where, end);
|
|
223
|
-
out.delivered.push({ kind: src.kind, chan: src.chan, id: String(msg.id ?? "") });
|
|
224
|
-
if (!persisted) {
|
|
225
|
-
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" });
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
}
|
|
248
|
+
}, { wait: false, log });
|
|
249
|
+
if (!locked.ran)
|
|
250
|
+
ctx.sizes.delete(key); // another deliverer holds this source: re-read on the next tick
|
|
229
251
|
}
|
|
230
252
|
return out;
|
|
231
253
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"herdr-tail.js","sourceRoot":"","sources":["../../src/tools/herdr-tail.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"herdr-tail.js","sourceRoot":"","sources":["../../src/tools/herdr-tail.ts"],"names":[],"mappings":"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"}
|