@dorokuma/herdsman 0.11.6 → 0.13.2

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 (81) hide show
  1. package/README.md +26 -13
  2. package/dist/src/agent-history/pi-reader.d.ts.map +1 -1
  3. package/dist/src/agent-history/pi-reader.js +10 -2
  4. package/dist/src/agent-history/pi-reader.js.map +1 -1
  5. package/dist/src/agent-history/readers.js +6 -1
  6. package/dist/src/agent-history/readers.js.map +1 -1
  7. package/dist/src/agent-history/text.d.ts.map +1 -1
  8. package/dist/src/agent-history/text.js +3 -0
  9. package/dist/src/agent-history/text.js.map +1 -1
  10. package/dist/src/cli/herdsman.d.ts +14 -1
  11. package/dist/src/cli/herdsman.d.ts.map +1 -1
  12. package/dist/src/cli/herdsman.js +49 -65
  13. package/dist/src/cli/herdsman.js.map +1 -1
  14. package/dist/src/config/schema.d.ts +4 -0
  15. package/dist/src/config/schema.d.ts.map +1 -1
  16. package/dist/src/config/schema.js +5 -0
  17. package/dist/src/config/schema.js.map +1 -1
  18. package/dist/src/daemon/agent-event-reconciler.d.ts.map +1 -1
  19. package/dist/src/daemon/agent-event-reconciler.js +53 -2
  20. package/dist/src/daemon/agent-event-reconciler.js.map +1 -1
  21. package/dist/src/daemon/herdr-session-watch-manager.d.ts +13 -1
  22. package/dist/src/daemon/herdr-session-watch-manager.d.ts.map +1 -1
  23. package/dist/src/daemon/herdr-session-watch-manager.js +52 -15
  24. package/dist/src/daemon/herdr-session-watch-manager.js.map +1 -1
  25. package/dist/src/daemon/observability-server.d.ts.map +1 -1
  26. package/dist/src/daemon/observability-server.js +17 -1
  27. package/dist/src/daemon/observability-server.js.map +1 -1
  28. package/dist/src/daemon/process-manager.d.ts +50 -49
  29. package/dist/src/daemon/process-manager.d.ts.map +1 -1
  30. package/dist/src/daemon/process-manager.js +246 -204
  31. package/dist/src/daemon/process-manager.js.map +1 -1
  32. package/dist/src/daemon/service-supervision.d.ts +68 -0
  33. package/dist/src/daemon/service-supervision.d.ts.map +1 -0
  34. package/dist/src/daemon/service-supervision.js +127 -0
  35. package/dist/src/daemon/service-supervision.js.map +1 -0
  36. package/dist/src/daemon/service.d.ts +35 -0
  37. package/dist/src/daemon/service.d.ts.map +1 -1
  38. package/dist/src/daemon/service.js +185 -27
  39. package/dist/src/daemon/service.js.map +1 -1
  40. package/dist/src/db/agent-events.d.ts +31 -0
  41. package/dist/src/db/agent-events.d.ts.map +1 -1
  42. package/dist/src/db/agent-events.js +207 -55
  43. package/dist/src/db/agent-events.js.map +1 -1
  44. package/dist/src/db/agents.js +1 -1
  45. package/dist/src/db/agents.js.map +1 -1
  46. package/dist/src/db/status-event-plans.d.ts +36 -4
  47. package/dist/src/db/status-event-plans.d.ts.map +1 -1
  48. package/dist/src/db/status-event-plans.js +96 -11
  49. package/dist/src/db/status-event-plans.js.map +1 -1
  50. package/dist/src/herdr/session-list.d.ts +11 -0
  51. package/dist/src/herdr/session-list.d.ts.map +1 -1
  52. package/dist/src/herdr/session-list.js +13 -0
  53. package/dist/src/herdr/session-list.js.map +1 -1
  54. package/dist/src/herdr/socket-client.d.ts +8 -0
  55. package/dist/src/herdr/socket-client.d.ts.map +1 -1
  56. package/dist/src/herdr/socket-client.js +43 -0
  57. package/dist/src/herdr/socket-client.js.map +1 -1
  58. package/dist/src/observability/agent-index-service.d.ts +16 -0
  59. package/dist/src/observability/agent-index-service.d.ts.map +1 -1
  60. package/dist/src/observability/agent-index-service.js +837 -114
  61. package/dist/src/observability/agent-index-service.js.map +1 -1
  62. package/dist/src/observability/agent-orchestrator-service.d.ts.map +1 -1
  63. package/dist/src/observability/agent-orchestrator-service.js +5 -1
  64. package/dist/src/observability/agent-orchestrator-service.js.map +1 -1
  65. package/dist/src/observability/contracts.d.ts +6 -1
  66. package/dist/src/observability/contracts.d.ts.map +1 -1
  67. package/dist/src/observability/contracts.js +8 -0
  68. package/dist/src/observability/contracts.js.map +1 -1
  69. package/dist/src/observability/schemas.d.ts +1 -0
  70. package/dist/src/observability/schemas.d.ts.map +1 -1
  71. package/dist/src/observability/schemas.js +1 -0
  72. package/dist/src/observability/schemas.js.map +1 -1
  73. package/dist/src/observability/turn-completion.d.ts +3 -0
  74. package/dist/src/observability/turn-completion.d.ts.map +1 -1
  75. package/dist/src/observability/turn-completion.js +12 -2
  76. package/dist/src/observability/turn-completion.js.map +1 -1
  77. package/drizzle/0010_legacy_degraded_cleanup.sql +1 -0
  78. package/drizzle/meta/0010_snapshot.json +975 -0
  79. package/drizzle/meta/_journal.json +7 -0
  80. package/package.json +3 -6
  81. package/README.ja.md +0 -145
@@ -67,7 +67,22 @@ export declare class AgentEventStore {
67
67
  paneGeneration?: string | null;
68
68
  invalidatedReason?: string;
69
69
  }): void;
70
+ /**
71
+ * Direct invalidatePane without wrapping in a transaction.
72
+ *
73
+ * ONLY call this when the caller already holds an SQLite transaction
74
+ * (for example from AgentStore.replaceForSession). Calling this outside
75
+ * an explicit transaction will leave the two-step invalidation non-atomic
76
+ * with respect to other concurrent writers.
77
+ */
78
+ invalidatePaneDirect(input: {
79
+ herdrSessionName: string;
80
+ paneId: string;
81
+ paneGeneration?: string | null;
82
+ invalidatedReason?: string;
83
+ }): void;
70
84
  listReconcileCandidates(limit?: number, afterId?: number): AgentEventRecord[];
85
+ markRetainedInvalidated(id: number): boolean;
71
86
  deleteReconcileCandidate(id: number): boolean;
72
87
  /**
73
88
  * Physically removes invalidated events older than the given age, measured from
@@ -91,6 +106,22 @@ export declare class AgentEventStore {
91
106
  latestStatusTransition(agentId: string, herdrSessionName: string): AgentEventRecord | undefined;
92
107
  hasTerminalEventAfter(agentId: string, herdrSessionName: string, afterId: number): boolean;
93
108
  latestTerminalEvent(agentId: string, herdrSessionName: string): AgentEventRecord | undefined;
109
+ /**
110
+ * Latest event that represents a *completed turn* whose assistant ref may be
111
+ * treated as "already delivered": every `agent.done`, plus `agent.idle` rows
112
+ * that were emitted from `working`. Rows that must never consume the
113
+ * assistant ref of a round are excluded:
114
+ *
115
+ * - `agent.status.changed` (never a delivery), `agent.discarded`,
116
+ * - `agent.idle` rows whose payload `from` is not `working` (startup/unknown
117
+ * idles restored before indexing),
118
+ * - rows whose assistant message is empty.
119
+ *
120
+ * A late `unknown -> idle` plan that finishes after the round already ended
121
+ * would otherwise register the final ref as an `agent.idle` terminal event and
122
+ * make the following `working -> done` plan look like a duplicate.
123
+ */
124
+ latestCompletedTurnEvent(agentId: string, herdrSessionName: string): AgentEventRecord | undefined;
94
125
  listAfter(input: AgentQueryScope & {
95
126
  afterEventId?: number;
96
127
  limit?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-events.d.ts","sourceRoot":"","sources":["../../../src/db/agent-events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAGtC;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,SAAU,CAAC;AAE/C;;;;;;GAMG;AACH,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAEvD,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GACrD,OAAO,CAGT;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,gBAAgB,EACvB,KAAK,EAAE,gBAAgB,GAAG,SAAS,EACnC,KAAK,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,EACxD,eAAe,EAAE,MAAM,GACtB,OAAO,CA4BT;AAQD,KAAK,aAAa,GAAG;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC;IACrE,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,qBAAa,eAAe;;gBAKd,MAAM,EAAE,YAAY;IAmChC,MAAM,CAAC,KAAK,EAAE;QACZ,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,cAAc,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;QAC5C,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,IAAI,EAAE,cAAc,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,GAAG,gBAAgB;IAgCpB,cAAc,CAAC,KAAK,EAAE;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,IAAI;IAiBR,uBAAuB,CAAC,KAAK,SAAM,EAAE,OAAO,SAAI,GAAG,gBAAgB,EAAE;IASrE,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAU7C;;;;;OAKG;IACH,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAWjD;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQ7C,YAAY,CAAC,KAAK,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAY9F,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAWnD,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAW/F,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAY1F,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAY5F,SAAS,CACP,KAAK,EAAE,eAAe,GAAG;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3F,gBAAgB,EAAE;IA2BrB,oBAAoB,CAAC,KAAK,EAAE;QAC1B,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,SAAS,CAAC;KAC9D,GAAG,gBAAgB,GAAG,SAAS;IAgDhC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,SAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE;IA+BnF,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAwE3C,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA4BtF,aAAa,CAAC,KAAK,GAAE,eAAoB,GAAG,MAAM;IAkBlD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB;CAOlC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,gBAAgB,CAsBlE"}
1
+ {"version":3,"file":"agent-events.d.ts","sourceRoot":"","sources":["../../../src/db/agent-events.ts"],"names":[],"mappings":"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"}
@@ -23,29 +23,55 @@ export function hasNonEmptyAssistantMessage(compactHistory) {
23
23
  }
24
24
  /** The single delivery predicate shared by pending discovery and acknowledgement. */
25
25
  export function isDeliverableAgentEvent(event, agent, scope, ownerTerminalId) {
26
- const failed = event.type === "agent.failed";
27
- return ((event.status === "pending" || event.status === "delivered") &&
28
- (event.status === "delivered" ||
29
- event.nextAttemptAt === null ||
30
- event.nextAttemptAt === undefined ||
31
- event.nextAttemptAt <= new Date()) &&
32
- (event.status === "pending" || event.deliveredToTerminalId === ownerTerminalId) &&
33
- (failed || event.agentId !== null) &&
34
- event.type !== "agent.status.changed" &&
35
- !(event.type === "agent.idle" && asRecord(event.payload).from !== "working") &&
36
- event.workspaceId === scope.workspaceId &&
37
- event.herdrSessionName === scope.herdrSessionName &&
38
- event.terminalId !== null &&
39
- event.terminalId !== ownerTerminalId &&
40
- (failed ||
41
- (agent !== undefined &&
42
- !(isInteractivePiAgent(agent) && event.type === "agent.idle") &&
43
- !(agent.agent !== "pi" &&
44
- (event.type === "agent.idle" || event.type === "agent.done") &&
45
- !hasNonEmptyAssistantMessage(event.compactHistory)) &&
46
- agent.paneId === event.paneId &&
47
- (event.paneGeneration === null || agent.paneGeneration === event.paneGeneration) &&
48
- agent.workspaceId === scope.workspaceId)));
26
+ const failed = event.type === "agent.failed" || event.type === "agent.discarded";
27
+ const isRetainedInvalidated = event.status === "invalidated" && event.deliverable === 1;
28
+ // 1. 状态放行:允许 pending、delivered 以及关页保留的 invalidated 行
29
+ const statusAllowed = event.status === "pending" || event.status === "delivered" || isRetainedInvalidated;
30
+ if (!statusAllowed)
31
+ return false;
32
+ // 2. 基础范围过滤
33
+ if (event.workspaceId !== scope.workspaceId ||
34
+ event.herdrSessionName !== scope.herdrSessionName ||
35
+ event.terminalId === null ||
36
+ event.terminalId === ownerTerminalId ||
37
+ event.type === "agent.status.changed" ||
38
+ (event.type === "agent.idle" && asRecord(event.payload).from !== "working")) {
39
+ return false;
40
+ }
41
+ // 3. 投递重试窗口守卫
42
+ if (event.status !== "delivered" &&
43
+ event.nextAttemptAt !== null &&
44
+ event.nextAttemptAt !== undefined &&
45
+ event.nextAttemptAt > new Date()) {
46
+ return false;
47
+ }
48
+ // 4. 终端归属校验
49
+ if (event.status === "delivered" && event.deliveredToTerminalId !== ownerTerminalId) {
50
+ return false;
51
+ }
52
+ // 5. 核心:解耦对 live agent 表记录的依赖
53
+ // 当 pane 被关闭,retirePane 物理清除了 agents 表记录,此时 agent === undefined。
54
+ // 若该事件已被标记为保留作废态 (isRetainedInvalidated) 或 failed,直接从事件自身元数据验证有效性
55
+ if (failed || isRetainedInvalidated) {
56
+ const payload = asRecord(event.payload);
57
+ const agentKind = typeof payload.agent === "string" ? payload.agent : "pi";
58
+ if (agentKind !== "pi" &&
59
+ (event.type === "agent.idle" || event.type === "agent.done") &&
60
+ !hasNonEmptyAssistantMessage(event.compactHistory)) {
61
+ return false;
62
+ }
63
+ return true;
64
+ }
65
+ // 6. 正常存活 pane 维持原有的严密代际与所属校验
66
+ if (agent === undefined)
67
+ return false;
68
+ return (!(isInteractivePiAgent(agent) && event.type === "agent.idle") &&
69
+ !(agent.agent !== "pi" &&
70
+ (event.type === "agent.idle" || event.type === "agent.done") &&
71
+ !hasNonEmptyAssistantMessage(event.compactHistory)) &&
72
+ agent.paneId === event.paneId &&
73
+ (event.paneGeneration === null || agent.paneGeneration === event.paneGeneration) &&
74
+ agent.workspaceId === scope.workspaceId);
49
75
  }
50
76
  function asRecord(value) {
51
77
  return value !== null && typeof value === "object" && !Array.isArray(value)
@@ -96,21 +122,83 @@ export class AgentEventStore {
96
122
  : undefined;
97
123
  if (existing)
98
124
  return mapAgentEvent(existing);
125
+ const agentId = this.#resolveAppendAgentId(input.agentId ?? null);
99
126
  const result = this.#sqlite
100
127
  .prepare(`insert into agent_events
101
128
  (herdr_session_name, agent_id, pane_id, pane_generation, workspace_id, terminal_id, type, payload_json, compact_history_json, idempotency_key, deliverable, status, delivery_attempts, created_at)
102
129
  values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 1, 'pending', 0, ?)`)
103
- .run(input.herdrSessionName, input.agentId ?? null, input.paneId ?? null, input.paneGeneration ?? null, input.workspaceId ?? null, input.terminalId ?? null, input.type, JSON.stringify(input.payload), input.compactHistory ? JSON.stringify(input.compactHistory) : null, input.idempotencyKey ?? null, this.#now());
130
+ .run(input.herdrSessionName, agentId, input.paneId ?? null, input.paneGeneration ?? null, input.workspaceId ?? null, input.terminalId ?? null, input.type, JSON.stringify(input.payload), input.compactHistory ? JSON.stringify(input.compactHistory) : null, input.idempotencyKey ?? null, this.#now());
104
131
  return this.get(Number(result.lastInsertRowid));
105
132
  }
133
+ /**
134
+ * Defence in depth for the terminal-event write path. A status plan can reach
135
+ * its terminal state after the pane was retired and its `agents` row was
136
+ * physically deleted; the foreign key would then reject the insert
137
+ * (`FOREIGN KEY constraint failed`) and the terminal outcome would be lost
138
+ * before it ever reached the store. Instead of throwing, the row is written as
139
+ * an orphan (`agent_id = null`) and logged, so the degradation is explicit
140
+ * rather than silent.
141
+ */
142
+ #resolveAppendAgentId(agentId) {
143
+ if (agentId === null)
144
+ return null;
145
+ const row = this.#sqlite.prepare("select 1 from agents where id = ? limit 1").get(agentId);
146
+ if (row)
147
+ return agentId;
148
+ console.warn("Herdsman downgrading agent event to orphan because the agents row is gone", {
149
+ agentId,
150
+ });
151
+ return null;
152
+ }
106
153
  invalidatePane(input) {
154
+ this.#transaction(() => this.#invalidatePaneCore(input));
155
+ }
156
+ /**
157
+ * Direct invalidatePane without wrapping in a transaction.
158
+ *
159
+ * ONLY call this when the caller already holds an SQLite transaction
160
+ * (for example from AgentStore.replaceForSession). Calling this outside
161
+ * an explicit transaction will leave the two-step invalidation non-atomic
162
+ * with respect to other concurrent writers.
163
+ */
164
+ invalidatePaneDirect(input) {
165
+ this.#invalidatePaneCore(input);
166
+ }
167
+ #invalidatePaneCore(input) {
107
168
  const legacy = input.paneGeneration == null;
169
+ const now = this.#now();
170
+ const defaultReason = input.invalidatedReason ?? (legacy ? "LEGACY_CLOSE_WITHOUT_GENERATION" : "PANE_CLOSED");
171
+ // 步骤 1:全量作废该 pane 当前所有活跃行,默认置为 deliverable = 0
172
+ // 当指定了明确 paneGeneration 时,只作废该代及更早代(<=)的遗留行,避免误杀新代事件。
173
+ const legacyOrMatched = legacy
174
+ ? "1 = 1"
175
+ : "(pane_generation = ? or pane_generation is null or pane_generation < ?)";
176
+ const legacyOrMatchedParams = legacy
177
+ ? []
178
+ : [input.paneGeneration ?? null, input.paneGeneration ?? null];
108
179
  this.#sqlite
109
- .prepare(`update agent_events set deliverable = 0, status = 'invalidated', invalidated_reason = ?
110
- where herdr_session_name = ? and pane_id = ?
111
- and status not in ('acked', 'invalidated', 'failed')
112
- and (${legacy ? "1 = 1" : "pane_generation = ?"})`)
113
- .run(input.invalidatedReason ?? (legacy ? "LEGACY_CLOSE_WITHOUT_GENERATION" : "PANE_CLOSED"), input.herdrSessionName, input.paneId, ...(legacy ? [] : [input.paneGeneration ?? null]));
180
+ .prepare(`update agent_events
181
+ set deliverable = 0, status = 'invalidated', invalidated_reason = ?
182
+ where herdr_session_name = ? and pane_id = ? and status not in ('acked', 'invalidated', 'failed')
183
+ and ${legacyOrMatched}`)
184
+ .run(defaultReason, input.herdrSessionName, input.paneId, ...legacyOrMatchedParams);
185
+ // 步骤 2:对满足保留条件的完成类事件恢复 deliverable = 1
186
+ // 关页保留只保到「首次投递尝试」为止:done/idle 沿用 300s 新鲜度窗口,
187
+ // agent.failed 则以 delivery_attempts = 0(尚未投递过)为界——失败结果常常
188
+ // 是在 pane/agents 行已经消失之后才写出来的,必须有一轮投递机会。
189
+ // agent.discarded 不保留。
190
+ const genCondition = legacy ? "1 = 1" : "pane_generation = ?";
191
+ const genParams = legacy ? [] : [input.paneGeneration ?? null];
192
+ this.#sqlite
193
+ .prepare(`update agent_events
194
+ set deliverable = 1, invalidated_reason = 'RETAINED_OUTCOME_PANE_CLOSED'
195
+ where herdr_session_name = ? and pane_id = ? and status = 'invalidated' and deliverable = 0 and invalidated_reason = ?
196
+ and ((${genCondition})
197
+ and ((type = 'agent.done' and json_extract(payload_json, '$.from') = 'working')
198
+ or (type = 'agent.idle' and json_extract(payload_json, '$.from') = 'working'))
199
+ and created_at >= ?
200
+ or (type = 'agent.failed' and delivery_attempts = 0))`)
201
+ .run(input.herdrSessionName, input.paneId, defaultReason, ...genParams, now - REDELIVERY_FRESHNESS_MS);
114
202
  }
115
203
  listReconcileCandidates(limit = 100, afterId = 0) {
116
204
  const rows = this.#sqlite
@@ -118,6 +206,13 @@ export class AgentEventStore {
118
206
  .all(afterId, limit);
119
207
  return rows.map(mapAgentEvent);
120
208
  }
209
+ markRetainedInvalidated(id) {
210
+ return (Number(this.#sqlite
211
+ .prepare(`update agent_events
212
+ set status = 'invalidated', deliverable = 1, invalidated_reason = 'RETAINED_OUTCOME_PANE_CLOSED'
213
+ where id = ? and status in ('pending', 'delivered')`)
214
+ .run(id).changes) > 0);
215
+ }
121
216
  deleteReconcileCandidate(id) {
122
217
  return (Number(this.#sqlite
123
218
  .prepare("delete from agent_events where id = ? and status in ('pending', 'delivered')")
@@ -132,7 +227,7 @@ export class AgentEventStore {
132
227
  deleteInvalidatedOlderThan(ageMs) {
133
228
  return Number(this.#sqlite
134
229
  .prepare(`delete from agent_events
135
- where status = 'invalidated' and coalesce(last_attempt_at, created_at) < ?`)
230
+ where status = 'invalidated' and deliverable = 0 and coalesce(last_attempt_at, created_at) < ?`)
136
231
  .run(Date.now() - ageMs).changes);
137
232
  }
138
233
  /**
@@ -142,7 +237,7 @@ export class AgentEventStore {
142
237
  */
143
238
  deleteSettledOlderThan(ageMs) {
144
239
  return Number(this.#sqlite
145
- .prepare(`delete from agent_events where status in ('acked', 'failed') and created_at < ?`)
240
+ .prepare(`delete from agent_events where (status in ('acked', 'failed') or (status = 'invalidated' and deliverable = 1)) and created_at < ?`)
146
241
  .run(Date.now() - ageMs).changes);
147
242
  }
148
243
  ackSelfOwned(input) {
@@ -170,6 +265,7 @@ export class AgentEventStore {
170
265
  .prepare(`select 1 from agent_events
171
266
  where agent_id = ? and herdr_session_name = ? and id > ?
172
267
  and type in ('agent.idle', 'agent.done', 'agent.blocked')
268
+ and status != 'invalidated'
173
269
  limit 1`)
174
270
  .get(agentId, herdrSessionName, afterId);
175
271
  return Boolean(row);
@@ -179,6 +275,33 @@ export class AgentEventStore {
179
275
  .prepare(`select * from agent_events
180
276
  where agent_id = ? and herdr_session_name = ?
181
277
  and type in ('agent.idle', 'agent.done', 'agent.blocked')
278
+ and status != 'invalidated'
279
+ order by id desc limit 1`)
280
+ .get(agentId, herdrSessionName);
281
+ return row ? mapAgentEvent(row) : undefined;
282
+ }
283
+ /**
284
+ * Latest event that represents a *completed turn* whose assistant ref may be
285
+ * treated as "already delivered": every `agent.done`, plus `agent.idle` rows
286
+ * that were emitted from `working`. Rows that must never consume the
287
+ * assistant ref of a round are excluded:
288
+ *
289
+ * - `agent.status.changed` (never a delivery), `agent.discarded`,
290
+ * - `agent.idle` rows whose payload `from` is not `working` (startup/unknown
291
+ * idles restored before indexing),
292
+ * - rows whose assistant message is empty.
293
+ *
294
+ * A late `unknown -> idle` plan that finishes after the round already ended
295
+ * would otherwise register the final ref as an `agent.idle` terminal event and
296
+ * make the following `working -> done` plan look like a duplicate.
297
+ */
298
+ latestCompletedTurnEvent(agentId, herdrSessionName) {
299
+ const row = this.#sqlite
300
+ .prepare(`select * from agent_events
301
+ where agent_id = ? and herdr_session_name = ?
302
+ and (type = 'agent.done'
303
+ or (type = 'agent.idle' and json_extract(payload_json, '$.from') = 'working'))
304
+ and length(trim(coalesce(json_extract(compact_history_json, '$.lastAssistantMessage.text'), ''))) > 0
182
305
  order by id desc limit 1`)
183
306
  .get(agentId, herdrSessionName);
184
307
  return row ? mapAgentEvent(row) : undefined;
@@ -186,7 +309,7 @@ export class AgentEventStore {
186
309
  listAfter(input) {
187
310
  const clauses = [
188
311
  "id > ?",
189
- "((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and id > ? and last_attempt_at >= ?))",
312
+ "((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and id > ? and last_attempt_at >= ?) or (status = 'invalidated' and deliverable = 1 and (next_attempt_at is null or next_attempt_at <= ?)))",
190
313
  ];
191
314
  const params = [
192
315
  input.afterEventId ?? 0,
@@ -194,6 +317,7 @@ export class AgentEventStore {
194
317
  input.ownerTerminalId ?? null,
195
318
  input.afterEventId ?? 0,
196
319
  this.#now() - REDELIVERY_FRESHNESS_MS,
320
+ this.#now(),
197
321
  ];
198
322
  if (input.herdrSessionName) {
199
323
  clauses.push("herdr_session_name = ?");
@@ -211,14 +335,27 @@ export class AgentEventStore {
211
335
  }
212
336
  nextDeliverableAfter(input) {
213
337
  const scope = { herdrSessionName: input.herdrSessionName, workspaceId: input.workspaceId };
338
+ // Retained rows (status='invalidated' and deliverable=1) outlive the live
339
+ // `agents` row because pane close physically clears it, so they must never
340
+ // be filtered by the existence guard. Orphan terminal rows (`agent.failed` /
341
+ // `agent.discarded` written after the agents row vanished) have the same
342
+ // problem: they carry `agent_id = null` and still have to be visible here,
343
+ // because otherwise the cursor ack (`markAcked(id <= cursor)`) would silently
344
+ // swallow an event that was never delivered. Every other row keeps the
345
+ // original "the agent is still indexed" check.
346
+ const orphanTerminalFilter = `or type in ('agent.failed', 'agent.discarded')`;
214
347
  const agentFilter = input.getAgent
215
348
  ? ""
216
- : `and exists (
217
- select 1 from agents
218
- where agents.id = agent_events.agent_id
219
- and agents.herdr_session_name = agent_events.herdr_session_name
220
- and agents.workspace_id = agent_events.workspace_id
221
- and agents.pane_id = agent_events.pane_id
349
+ : `and (
350
+ (status = 'invalidated' and deliverable = 1)
351
+ ${orphanTerminalFilter}
352
+ or exists (
353
+ select 1 from agents
354
+ where agents.id = agent_events.agent_id
355
+ and agents.herdr_session_name = agent_events.herdr_session_name
356
+ and agents.workspace_id = agent_events.workspace_id
357
+ and agents.pane_id = agent_events.pane_id
358
+ )
222
359
  )`;
223
360
  let afterEventId = input.afterEventId;
224
361
  for (let page = 0; page < 50; page += 1) {
@@ -227,25 +364,34 @@ export class AgentEventStore {
227
364
  this.#now(),
228
365
  input.ownerTerminalId,
229
366
  this.#now() - REDELIVERY_FRESHNESS_MS,
367
+ this.#now(),
230
368
  input.herdrSessionName,
231
369
  input.workspaceId,
232
370
  input.ownerTerminalId,
233
371
  ];
234
- const rows = this.#sqlite
235
- .prepare(`select * from agent_events
236
- where id > ? and ((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and last_attempt_at >= ?)) and herdr_session_name = ? and workspace_id = ?
237
- and terminal_id is not null and terminal_id != ? and agent_id is not null
372
+ const sql = `select * from agent_events
373
+ where id > ? and ((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and last_attempt_at >= ?) or (status = 'invalidated' and deliverable = 1 and (next_attempt_at is null or next_attempt_at <= ?))) and herdr_session_name = ? and workspace_id = ?
374
+ and terminal_id is not null and terminal_id != ?
375
+ and (agent_id is not null or (status = 'invalidated' and deliverable = 1) ${orphanTerminalFilter})
238
376
  ${agentFilter}
239
- order by id asc limit 1000`)
240
- .all(...params);
377
+ order by id asc limit 1000`;
378
+ const rows = this.#sqlite.prepare(sql).all(...params);
241
379
  if (rows.length === 0)
242
380
  return undefined;
243
381
  for (const row of rows) {
244
382
  const event = mapAgentEvent(row);
245
383
  const agentId = event.agentId;
246
- if (agentId !== null &&
247
- (!input.getAgent ||
248
- isDeliverableAgentEvent(event, input.getAgent(agentId), scope, input.ownerTerminalId)))
384
+ // Pane close physically removes the agents row and the ON DELETE SET NULL
385
+ // foreign key then clears agent_id on the retained event, so retained rows
386
+ // are evaluated from their own metadata instead of the live agent record.
387
+ // Orphan terminal rows follow the same rule (their own payload/metadata is
388
+ // the only remaining source of truth).
389
+ const retained = event.status === "invalidated" && event.deliverable === 1;
390
+ const orphanTerminal = event.type === "agent.failed" || event.type === "agent.discarded";
391
+ if (agentId === null && !retained && !orphanTerminal)
392
+ continue;
393
+ if (!input.getAgent ||
394
+ isDeliverableAgentEvent(event, agentId === null ? undefined : input.getAgent(agentId), scope, input.ownerTerminalId))
249
395
  return event;
250
396
  }
251
397
  afterEventId = rows.at(-1)?.id ?? afterEventId;
@@ -257,16 +403,16 @@ export class AgentEventStore {
257
403
  return this.#transaction(() => {
258
404
  const now = this.#now();
259
405
  const idClause = ids && ids.length > 0 ? `and id in (${ids.map(() => "?").join(",")})` : "";
260
- const params = [now, terminalId, now - REDELIVERY_FRESHNESS_MS];
406
+ const params = [now, terminalId, now - REDELIVERY_FRESHNESS_MS, now];
261
407
  if (ids && ids.length > 0)
262
408
  params.push(...ids);
263
409
  params.push(limit);
264
410
  const rows = this.#sqlite
265
- .prepare(`select * from agent_events where ((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and last_attempt_at >= ?)) ${idClause} order by id asc limit ?`)
411
+ .prepare(`select * from agent_events where ((status = 'pending' and (next_attempt_at is null or next_attempt_at <= ?)) or (status = 'delivered' and delivered_to_terminal_id = ? and last_attempt_at >= ?) or (status = 'invalidated' and deliverable = 1 and (next_attempt_at is null or next_attempt_at <= ?))) ${idClause} order by id asc limit ?`)
266
412
  .all(...params);
267
413
  for (const row of rows) {
268
414
  this.#sqlite
269
- .prepare(`update agent_events set status = 'delivered', deliverable = 1, delivery_attempts = ?, last_attempt_at = ?, delivered_to_terminal_id = ? where id = ? and status = 'pending'`)
415
+ .prepare(`update agent_events set status = 'delivered', deliverable = 1, delivery_attempts = ?, last_attempt_at = ?, delivered_to_terminal_id = ? where id = ? and (status = 'pending' or (status = 'invalidated' and deliverable = 1))`)
270
416
  .run(row.delivery_attempts + 1, now, terminalId, row.id);
271
417
  }
272
418
  if (rows.length > 0) {
@@ -293,11 +439,17 @@ export class AgentEventStore {
293
439
  and agents.pane_id = agent_events.pane_id
294
440
  )`;
295
441
  // Branch (b): the agent pane is closed/retired, so the delivered event is
296
- // invalidated instead of being reclaimed and redelivered.
442
+ // invalidated instead of being reclaimed and redelivered. This is also the
443
+ // point where the "retained until the first delivery attempt" window of a
444
+ // terminal `agent.failed` row ends and the ordinary invalidated + 1h
445
+ // collection takes over. `reservePending` is the only writer that sets
446
+ // status = 'delivered' and it always increments delivery_attempts, so the
447
+ // explicit `delivery_attempts >= 1` guard states the invariant that no row
448
+ // may leave the retained window before it was handed to an owner once.
297
449
  const invalidated = this.#sqlite
298
450
  .prepare(`update agent_events
299
451
  set deliverable = 0, status = 'invalidated', invalidated_reason = 'PANE_CLOSED_RECLAIM'
300
- where status = 'delivered' and last_attempt_at < ? and not ${agentPaneOpen}`)
452
+ where status = 'delivered' and delivery_attempts >= 1 and last_attempt_at < ? and not ${agentPaneOpen}`)
301
453
  .run(cutoff).changes;
302
454
  // Branch (c): the pane is still open but the delivery terminal no longer
303
455
  // holds the orchestrator scope (owner_terminal_id != delivered_to_terminal_id
@@ -343,12 +495,12 @@ export class AgentEventStore {
343
495
  if (scope) {
344
496
  this.#sqlite
345
497
  .prepare(`update agent_events set status = 'acked', deliverable = 0
346
- where herdr_session_name = ? and workspace_id = ? and id <= ? and status in ('pending', 'delivered')`)
498
+ where herdr_session_name = ? and workspace_id = ? and id <= ? and (status in ('pending', 'delivered') or (status = 'invalidated' and deliverable = 1))`)
347
499
  .run(scope.herdrSessionName, scope.workspaceId, id);
348
500
  return;
349
501
  }
350
502
  this.#sqlite
351
- .prepare(`update agent_events set status = 'acked', deliverable = 0 where id = ? and status in ('pending', 'delivered')`)
503
+ .prepare(`update agent_events set status = 'acked', deliverable = 0 where id = ? and (status in ('pending', 'delivered') or (status = 'invalidated' and deliverable = 1))`)
352
504
  .run(id);
353
505
  }
354
506
  #transaction(operation) {
@@ -396,7 +548,7 @@ export function mapAgentEvent(row) {
396
548
  id: row.id,
397
549
  paneId: row.pane_id,
398
550
  paneGeneration: row.pane_generation,
399
- deliverable: row.status === "pending" || row.status === "delivered" ? 1 : 0,
551
+ deliverable: row.deliverable,
400
552
  status: row.status,
401
553
  deliveryAttempts: row.delivery_attempts,
402
554
  lastAttemptAt: row.last_attempt_at === null ? null : new Date(row.last_attempt_at),
@@ -1 +1 @@
1
- {"version":3,"file":"agent-events.js","sourceRoot":"","sources":["../../../src/db/agent-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-events.js","sourceRoot":"","sources":["../../../src/db/agent-events.ts"],"names":[],"mappings":"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"}
@@ -130,7 +130,7 @@ export class AgentStore {
130
130
  for (const id of removedIds)
131
131
  this.#terminalTitleById.delete(id);
132
132
  for (const agent of existing.filter((candidate) => removedIds.includes(candidate.id))) {
133
- this.#agentEvents.invalidatePane({
133
+ this.#agentEvents.invalidatePaneDirect({
134
134
  herdrSessionName: input.herdrSessionName,
135
135
  paneId: agent.pane_id,
136
136
  paneGeneration: agent.pane_generation,