github-issue-tower-defence-management 1.135.0 → 1.135.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## [1.135.1](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.135.0...v1.135.1) (2026-07-25)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **silent-session:** exclude TaskStop-killed and crashed subagents from false-positive alerts ([#1107](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1107)) ([024e59c](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/commit/024e59ca765c248e991f8dea7d4a4806593785d1)), closes [#1105](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/issues/1105)
7
+
1
8
  # [1.135.0](https://github.com/HiromiShikata/npm-cli-github-issue-tower-defence-management/compare/v1.134.0...v1.135.0) (2026-07-25)
2
9
 
3
10
 
@@ -186,6 +186,45 @@ const parseTranscript = (content) => {
186
186
  };
187
187
  };
188
188
  const clampToZero = (value) => (value > 0 ? value : 0);
189
+ const parseKilledOrFailedAgentIds = (content) => {
190
+ const result = new Set();
191
+ for (const line of content.split('\n')) {
192
+ const trimmed = line.trim();
193
+ if (trimmed.length === 0) {
194
+ continue;
195
+ }
196
+ let parsed;
197
+ try {
198
+ parsed = JSON.parse(trimmed);
199
+ }
200
+ catch {
201
+ continue;
202
+ }
203
+ if (!isRecord(parsed)) {
204
+ continue;
205
+ }
206
+ if (readString(parsed, 'type') !== 'queue-operation') {
207
+ continue;
208
+ }
209
+ if (readString(parsed, 'operation') !== 'enqueue') {
210
+ continue;
211
+ }
212
+ const notifContent = readString(parsed, 'content');
213
+ if (notifContent === null) {
214
+ continue;
215
+ }
216
+ const taskIdMatch = notifContent.match(/<task-id>(a[0-9a-f]+)<\/task-id>/);
217
+ const statusMatch = notifContent.match(/<status>([^<]+)<\/status>/);
218
+ if (!taskIdMatch || !statusMatch) {
219
+ continue;
220
+ }
221
+ const status = statusMatch[1];
222
+ if (status === 'killed' || status === 'failed') {
223
+ result.add(taskIdMatch[1]);
224
+ }
225
+ }
226
+ return result;
227
+ };
189
228
  class TranscriptSessionSubAgentActivityRepository {
190
229
  constructor(directoryResolver, processLister, now) {
191
230
  this.directoryResolver = directoryResolver;
@@ -208,14 +247,28 @@ class TranscriptSessionSubAgentActivityRepository {
208
247
  if (directory === null) {
209
248
  continue;
210
249
  }
211
- const activities = await this.collectActivities(directory, nowEpochSeconds, loadNormalizedProcessCommandLines);
250
+ const killedOrFailedAgentIds = this.loadKilledOrFailedAgentIds(mainTranscriptPath);
251
+ const activities = await this.collectActivities(directory, nowEpochSeconds, killedOrFailedAgentIds, loadNormalizedProcessCommandLines);
212
252
  if (activities.length > 0) {
213
253
  result.set(sessionName, activities);
214
254
  }
215
255
  }
216
256
  return result;
217
257
  };
218
- this.collectActivities = async (directory, nowEpochSeconds, loadNormalizedProcessCommandLines) => {
258
+ this.loadKilledOrFailedAgentIds = (mainTranscriptPath) => {
259
+ if (mainTranscriptPath === null) {
260
+ return new Set();
261
+ }
262
+ let content;
263
+ try {
264
+ content = fs.readFileSync(mainTranscriptPath, 'utf8');
265
+ }
266
+ catch {
267
+ return new Set();
268
+ }
269
+ return parseKilledOrFailedAgentIds(content);
270
+ };
271
+ this.collectActivities = async (directory, nowEpochSeconds, killedOrFailedAgentIds, loadNormalizedProcessCommandLines) => {
219
272
  let entries;
220
273
  try {
221
274
  entries = fs.readdirSync(directory, { withFileTypes: true });
@@ -229,6 +282,10 @@ class TranscriptSessionSubAgentActivityRepository {
229
282
  if (!fileName.startsWith('agent-') || !fileName.endsWith('.jsonl')) {
230
283
  continue;
231
284
  }
285
+ const agentId = fileName.slice('agent-'.length, -'.jsonl'.length);
286
+ if (killedOrFailedAgentIds.has(agentId)) {
287
+ continue;
288
+ }
232
289
  const filePath = path.join(directory, fileName);
233
290
  const activity = await this.toActivity(filePath, fileName, nowEpochSeconds, loadNormalizedProcessCommandLines);
234
291
  if (activity !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"TranscriptSessionSubAgentActivityRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/TranscriptSessionSubAgentActivityRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TranscriptSessionSubAgentActivityRepository.js","sourceRoot":"","sources":["../../../src/adapter/repositories/TranscriptSessionSubAgentActivityRepository.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "github-issue-tower-defence-management",
3
- "version": "1.135.0",
3
+ "version": "1.135.1",
4
4
  "description": "",
5
5
  "main": "bin/index.js",
6
6
  "scripts": {
@@ -1044,4 +1044,200 @@ describe('TranscriptSessionSubAgentActivityRepository', () => {
1044
1044
  expect(result.get(sessionName)?.[0]?.waitingOnExternalProcess).toBe(true);
1045
1045
  });
1046
1046
  });
1047
+
1048
+ const writeMainTranscript = (sessionName: string, lines: object[]): void => {
1049
+ const filePath = mainTranscriptPathFor(sessionName);
1050
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
1051
+ fs.writeFileSync(
1052
+ filePath,
1053
+ lines.map((line) => JSON.stringify(line)).join('\n'),
1054
+ 'utf8',
1055
+ );
1056
+ };
1057
+
1058
+ const killedNotificationEntry = (
1059
+ agentId: string,
1060
+ timestamp: string,
1061
+ ): object => ({
1062
+ type: 'queue-operation',
1063
+ operation: 'enqueue',
1064
+ timestamp,
1065
+ content: `<task-notification>\n<task-id>${agentId}</task-id>\n<status>killed</status>\n</task-notification>`,
1066
+ });
1067
+
1068
+ const failedNotificationEntry = (
1069
+ agentId: string,
1070
+ timestamp: string,
1071
+ ): object => ({
1072
+ type: 'queue-operation',
1073
+ operation: 'enqueue',
1074
+ timestamp,
1075
+ content: `<task-notification>\n<task-id>${agentId}</task-id>\n<status>failed</status>\n</task-notification>`,
1076
+ });
1077
+
1078
+ const completedNotificationEntry = (
1079
+ agentId: string,
1080
+ timestamp: string,
1081
+ ): object => ({
1082
+ type: 'queue-operation',
1083
+ operation: 'enqueue',
1084
+ timestamp,
1085
+ content: `<task-notification>\n<task-id>${agentId}</task-id>\n<status>completed</status>\n</task-notification>`,
1086
+ });
1087
+
1088
+ it('excludes a sub-agent killed via TaskStop when the parent transcript records a killed notification for its id', async () => {
1089
+ const sessionName = 'https_//github_com/owner/repo/issues/9';
1090
+ const killedAgentId = 'aaabbbbcccc00001';
1091
+ writeAgentTranscript(
1092
+ sessionName,
1093
+ killedAgentId,
1094
+ pendingToolUseEntries('2026-06-27T11:00:00.000Z'),
1095
+ nowEpochSeconds - 300,
1096
+ );
1097
+ writeMainTranscript(sessionName, [
1098
+ killedNotificationEntry(killedAgentId, '2026-06-27T11:55:00.000Z'),
1099
+ ]);
1100
+ const repository = new TranscriptSessionSubAgentActivityRepository(
1101
+ createResolver(),
1102
+ emptyProcessLister(),
1103
+ now,
1104
+ );
1105
+
1106
+ const result = await repository.listSubAgentActivitiesBySessionName(
1107
+ [sessionName],
1108
+ transcriptMapFor([sessionName]),
1109
+ );
1110
+
1111
+ expect(result.size).toBe(0);
1112
+ });
1113
+
1114
+ it('excludes a sub-agent whose process crashed when the parent transcript records a failed notification for its id', async () => {
1115
+ const sessionName = 'https_//github_com/owner/repo/issues/9';
1116
+ const failedAgentId = 'aaabbbbcccc00002';
1117
+ writeAgentTranscript(
1118
+ sessionName,
1119
+ failedAgentId,
1120
+ pendingToolUseEntries('2026-06-27T11:00:00.000Z'),
1121
+ nowEpochSeconds - 300,
1122
+ );
1123
+ writeMainTranscript(sessionName, [
1124
+ failedNotificationEntry(failedAgentId, '2026-06-27T11:55:00.000Z'),
1125
+ ]);
1126
+ const repository = new TranscriptSessionSubAgentActivityRepository(
1127
+ createResolver(),
1128
+ emptyProcessLister(),
1129
+ now,
1130
+ );
1131
+
1132
+ const result = await repository.listSubAgentActivitiesBySessionName(
1133
+ [sessionName],
1134
+ transcriptMapFor([sessionName]),
1135
+ );
1136
+
1137
+ expect(result.size).toBe(0);
1138
+ });
1139
+
1140
+ it('does not exclude a sub-agent whose parent transcript records only a completed notification for its id', async () => {
1141
+ const sessionName = 'https_//github_com/owner/repo/issues/9';
1142
+ const startTimestamp = '2026-06-27T11:45:00.000Z';
1143
+ const completedAgentId = 'aaabbbbcccc00003';
1144
+ writeAgentTranscript(
1145
+ sessionName,
1146
+ completedAgentId,
1147
+ pendingToolUseEntries(startTimestamp),
1148
+ nowEpochSeconds - 120,
1149
+ );
1150
+ writeMainTranscript(sessionName, [
1151
+ completedNotificationEntry(completedAgentId, '2026-06-27T11:58:00.000Z'),
1152
+ ]);
1153
+ const repository = new TranscriptSessionSubAgentActivityRepository(
1154
+ createResolver(),
1155
+ emptyProcessLister(),
1156
+ now,
1157
+ );
1158
+
1159
+ const result = await repository.listSubAgentActivitiesBySessionName(
1160
+ [sessionName],
1161
+ transcriptMapFor([sessionName]),
1162
+ );
1163
+
1164
+ expect(result.get(sessionName)).toEqual([
1165
+ {
1166
+ label: `agent-${completedAgentId}`,
1167
+ silentSeconds: 120,
1168
+ runningSeconds: 900,
1169
+ waitingOnExternalProcess: false,
1170
+ },
1171
+ ]);
1172
+ });
1173
+
1174
+ it('excludes a killed sub-agent but reports a still-active sibling in the same session', async () => {
1175
+ const sessionName = 'https_//github_com/owner/repo/issues/9';
1176
+ const killedAgentId = 'aaabbbbcccc00004';
1177
+ const aliveAgentId = 'aaabbbbcccc00005';
1178
+ writeAgentTranscript(
1179
+ sessionName,
1180
+ killedAgentId,
1181
+ pendingToolUseEntries('2026-06-27T11:00:00.000Z'),
1182
+ nowEpochSeconds - 600,
1183
+ );
1184
+ writeAgentTranscript(
1185
+ sessionName,
1186
+ aliveAgentId,
1187
+ runningEntries('2026-06-27T11:45:00.000Z'),
1188
+ nowEpochSeconds - 120,
1189
+ );
1190
+ writeMainTranscript(sessionName, [
1191
+ killedNotificationEntry(killedAgentId, '2026-06-27T11:55:00.000Z'),
1192
+ ]);
1193
+ const repository = new TranscriptSessionSubAgentActivityRepository(
1194
+ createResolver(),
1195
+ emptyProcessLister(),
1196
+ now,
1197
+ );
1198
+
1199
+ const result = await repository.listSubAgentActivitiesBySessionName(
1200
+ [sessionName],
1201
+ transcriptMapFor([sessionName]),
1202
+ );
1203
+
1204
+ expect(result.get(sessionName)).toEqual([
1205
+ {
1206
+ label: `agent-${aliveAgentId}`,
1207
+ silentSeconds: 120,
1208
+ runningSeconds: 900,
1209
+ waitingOnExternalProcess: false,
1210
+ },
1211
+ ]);
1212
+ });
1213
+
1214
+ it('reports a sub-agent even when the parent transcript path does not exist', async () => {
1215
+ const sessionName = 'https_//github_com/owner/repo/issues/9';
1216
+ const startTimestamp = '2026-06-27T11:45:00.000Z';
1217
+ writeAgentTranscript(
1218
+ sessionName,
1219
+ 'aabb1122cc3344ee',
1220
+ runningEntries(startTimestamp),
1221
+ nowEpochSeconds - 120,
1222
+ );
1223
+ const repository = new TranscriptSessionSubAgentActivityRepository(
1224
+ createResolver(),
1225
+ emptyProcessLister(),
1226
+ now,
1227
+ );
1228
+
1229
+ const result = await repository.listSubAgentActivitiesBySessionName(
1230
+ [sessionName],
1231
+ transcriptMapFor([sessionName]),
1232
+ );
1233
+
1234
+ expect(result.get(sessionName)).toEqual([
1235
+ {
1236
+ label: 'agent-aabb1122cc3344ee',
1237
+ silentSeconds: 120,
1238
+ runningSeconds: 900,
1239
+ waitingOnExternalProcess: false,
1240
+ },
1241
+ ]);
1242
+ });
1047
1243
  });
@@ -190,6 +190,45 @@ const parseTranscript = (content: string): ParsedTranscript => {
190
190
 
191
191
  const clampToZero = (value: number): number => (value > 0 ? value : 0);
192
192
 
193
+ const parseKilledOrFailedAgentIds = (content: string): Set<string> => {
194
+ const result = new Set<string>();
195
+ for (const line of content.split('\n')) {
196
+ const trimmed = line.trim();
197
+ if (trimmed.length === 0) {
198
+ continue;
199
+ }
200
+ let parsed: unknown;
201
+ try {
202
+ parsed = JSON.parse(trimmed);
203
+ } catch {
204
+ continue;
205
+ }
206
+ if (!isRecord(parsed)) {
207
+ continue;
208
+ }
209
+ if (readString(parsed, 'type') !== 'queue-operation') {
210
+ continue;
211
+ }
212
+ if (readString(parsed, 'operation') !== 'enqueue') {
213
+ continue;
214
+ }
215
+ const notifContent = readString(parsed, 'content');
216
+ if (notifContent === null) {
217
+ continue;
218
+ }
219
+ const taskIdMatch = notifContent.match(/<task-id>(a[0-9a-f]+)<\/task-id>/);
220
+ const statusMatch = notifContent.match(/<status>([^<]+)<\/status>/);
221
+ if (!taskIdMatch || !statusMatch) {
222
+ continue;
223
+ }
224
+ const status = statusMatch[1];
225
+ if (status === 'killed' || status === 'failed') {
226
+ result.add(taskIdMatch[1]);
227
+ }
228
+ }
229
+ return result;
230
+ };
231
+
193
232
  export class TranscriptSessionSubAgentActivityRepository implements SessionSubAgentActivityRepository {
194
233
  constructor(
195
234
  private readonly directoryResolver: SubAgentTranscriptDirectoryResolver,
@@ -223,9 +262,12 @@ export class TranscriptSessionSubAgentActivityRepository implements SessionSubAg
223
262
  if (directory === null) {
224
263
  continue;
225
264
  }
265
+ const killedOrFailedAgentIds =
266
+ this.loadKilledOrFailedAgentIds(mainTranscriptPath);
226
267
  const activities = await this.collectActivities(
227
268
  directory,
228
269
  nowEpochSeconds,
270
+ killedOrFailedAgentIds,
229
271
  loadNormalizedProcessCommandLines,
230
272
  );
231
273
  if (activities.length > 0) {
@@ -235,9 +277,25 @@ export class TranscriptSessionSubAgentActivityRepository implements SessionSubAg
235
277
  return result;
236
278
  };
237
279
 
280
+ private loadKilledOrFailedAgentIds = (
281
+ mainTranscriptPath: string | null,
282
+ ): Set<string> => {
283
+ if (mainTranscriptPath === null) {
284
+ return new Set();
285
+ }
286
+ let content: string;
287
+ try {
288
+ content = fs.readFileSync(mainTranscriptPath, 'utf8');
289
+ } catch {
290
+ return new Set();
291
+ }
292
+ return parseKilledOrFailedAgentIds(content);
293
+ };
294
+
238
295
  private collectActivities = async (
239
296
  directory: string,
240
297
  nowEpochSeconds: number,
298
+ killedOrFailedAgentIds: Set<string>,
241
299
  loadNormalizedProcessCommandLines: () => Promise<string[]>,
242
300
  ): Promise<SubAgentActivity[]> => {
243
301
  let entries: fs.Dirent[];
@@ -252,6 +310,10 @@ export class TranscriptSessionSubAgentActivityRepository implements SessionSubAg
252
310
  if (!fileName.startsWith('agent-') || !fileName.endsWith('.jsonl')) {
253
311
  continue;
254
312
  }
313
+ const agentId = fileName.slice('agent-'.length, -'.jsonl'.length);
314
+ if (killedOrFailedAgentIds.has(agentId)) {
315
+ continue;
316
+ }
255
317
  const filePath = path.join(directory, fileName);
256
318
  const activity = await this.toActivity(
257
319
  filePath,
@@ -9,6 +9,7 @@ export declare class TranscriptSessionSubAgentActivityRepository implements Sess
9
9
  private readonly now;
10
10
  constructor(directoryResolver: SubAgentTranscriptDirectoryResolver, processLister: SubAgentProcessLister, now: Date);
11
11
  listSubAgentActivitiesBySessionName: (sessionNames: string[], transcriptPathBySessionName: Map<string, string>) => Promise<Map<string, SubAgentActivity[]>>;
12
+ private loadKilledOrFailedAgentIds;
12
13
  private collectActivities;
13
14
  private toActivity;
14
15
  private hasLiveMatchingProcess;
@@ -1 +1 @@
1
- {"version":3,"file":"TranscriptSessionSubAgentActivityRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/TranscriptSessionSubAgentActivityRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,EAAE,iCAAiC,EAAE,MAAM,4EAA4E,CAAC;AAC/H,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,mCAAmC,EAAE,MAAM,8EAA8E,CAAC;AAuBnI,eAAO,MAAM,wBAAwB,GAAI,SAAS,MAAM,KAAG,MAIR,CAAC;AAgKpD,qBAAa,2CAA4C,YAAW,iCAAiC;IAEjG,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,iBAAiB,EAAE,mCAAmC,EACtD,aAAa,EAAE,qBAAqB,EACpC,GAAG,EAAE,IAAI;IAG5B,mCAAmC,GACjC,cAAc,MAAM,EAAE,EACtB,6BAA6B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAiCzC;IAEF,OAAO,CAAC,iBAAiB,CA6BvB;IAEF,OAAO,CAAC,UAAU,CAoChB;IAEF,OAAO,CAAC,sBAAsB,CAiB5B;CACH"}
1
+ {"version":3,"file":"TranscriptSessionSubAgentActivityRepository.d.ts","sourceRoot":"","sources":["../../../src/adapter/repositories/TranscriptSessionSubAgentActivityRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;AACrF,OAAO,EAAE,iCAAiC,EAAE,MAAM,4EAA4E,CAAC;AAC/H,OAAO,EAAE,qBAAqB,EAAE,MAAM,gEAAgE,CAAC;AACvG,OAAO,EAAE,mCAAmC,EAAE,MAAM,8EAA8E,CAAC;AAuBnI,eAAO,MAAM,wBAAwB,GAAI,SAAS,MAAM,KAAG,MAIR,CAAC;AAuMpD,qBAAa,2CAA4C,YAAW,iCAAiC;IAEjG,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAFH,iBAAiB,EAAE,mCAAmC,EACtD,aAAa,EAAE,qBAAqB,EACpC,GAAG,EAAE,IAAI;IAG5B,mCAAmC,GACjC,cAAc,MAAM,EAAE,EACtB,6BAA6B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAoCzC;IAEF,OAAO,CAAC,0BAA0B,CAahC;IAEF,OAAO,CAAC,iBAAiB,CAkCvB;IAEF,OAAO,CAAC,UAAU,CAoChB;IAEF,OAAO,CAAC,sBAAsB,CAiB5B;CACH"}