@proletariat/cli 0.3.98 → 0.3.100

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 (48) hide show
  1. package/dist/commands/orchestrate/index.js +30 -3
  2. package/dist/commands/orchestrate/index.js.map +1 -1
  3. package/dist/commands/qa/index.js +1 -1
  4. package/dist/commands/ticket/create.d.ts +44 -0
  5. package/dist/commands/ticket/create.js +754 -0
  6. package/dist/commands/ticket/create.js.map +1 -0
  7. package/dist/commands/ticket/delete.d.ts +17 -0
  8. package/dist/commands/ticket/delete.js +204 -0
  9. package/dist/commands/ticket/delete.js.map +1 -0
  10. package/dist/commands/ticket/edit.d.ts +28 -0
  11. package/dist/commands/ticket/edit.js +402 -0
  12. package/dist/commands/ticket/edit.js.map +1 -0
  13. package/dist/commands/ticket/index.d.ts +13 -0
  14. package/dist/commands/ticket/index.js +74 -0
  15. package/dist/commands/ticket/index.js.map +1 -0
  16. package/dist/commands/ticket/list.d.ts +33 -0
  17. package/dist/commands/ticket/list.js +519 -0
  18. package/dist/commands/ticket/list.js.map +1 -0
  19. package/dist/commands/ticket/move.d.ts +27 -0
  20. package/dist/commands/ticket/move.js +413 -0
  21. package/dist/commands/ticket/move.js.map +1 -0
  22. package/dist/commands/ticket/show.d.ts +14 -0
  23. package/dist/commands/ticket/show.js +110 -0
  24. package/dist/commands/ticket/show.js.map +1 -0
  25. package/dist/commands/ticket/update.d.ts +28 -0
  26. package/dist/commands/ticket/update.js +458 -0
  27. package/dist/commands/ticket/update.js.map +1 -0
  28. package/dist/lib/execution/preflight.js +1 -1
  29. package/dist/lib/execution/preflight.js.map +1 -1
  30. package/dist/lib/mcp/tools/action.d.ts +6 -0
  31. package/dist/lib/mcp/tools/action.js +123 -0
  32. package/dist/lib/mcp/tools/action.js.map +1 -0
  33. package/dist/lib/mcp/tools/index.d.ts +2 -0
  34. package/dist/lib/mcp/tools/index.js +2 -0
  35. package/dist/lib/mcp/tools/index.js.map +1 -1
  36. package/dist/lib/mcp/tools/ticket.d.ts +6 -0
  37. package/dist/lib/mcp/tools/ticket.js +464 -0
  38. package/dist/lib/mcp/tools/ticket.js.map +1 -0
  39. package/dist/lib/orchestrate/poller.d.ts +22 -0
  40. package/dist/lib/orchestrate/poller.js +109 -0
  41. package/dist/lib/orchestrate/poller.js.map +1 -1
  42. package/dist/lib/sync/engine.js +47 -5
  43. package/dist/lib/sync/engine.js.map +1 -1
  44. package/dist/lib/sync/reconciler.d.ts +27 -1
  45. package/dist/lib/sync/reconciler.js +109 -1
  46. package/dist/lib/sync/reconciler.js.map +1 -1
  47. package/oclif.manifest.json +2021 -1153
  48. package/package.json +1 -1
@@ -50,6 +50,28 @@ export declare class OrchestratePoller {
50
50
  * Fires on_ci_green, on_ci_failed, on_pr_conflicting, on_pr_merged.
51
51
  */
52
52
  private pollGitHubPRs;
53
+ /**
54
+ * Run board reconciliation — deterministic rules that sync ticket state
55
+ * from GitHub without LLM involvement.
56
+ *
57
+ * Rules:
58
+ * 1. PR merged → ticket to Done
59
+ * 2. PR opened → ticket to Review
60
+ * 3. Agent spawned → ticket to In Progress
61
+ * 4. Detect duplicate tickets
62
+ * 5. Flag stale Triage tickets that match merged PRs
63
+ */
64
+ private pollBoardReconciliation;
65
+ /**
66
+ * Fire orchestrate events based on reconciliation results.
67
+ * This bridges deterministic reconciliation into the event-driven hook system.
68
+ */
69
+ private fireReconciliationEvents;
70
+ /**
71
+ * Get the database file path from the current database connection.
72
+ * Derives it from cwd/.proletariat/workspace.db.
73
+ */
74
+ private getDbPath;
53
75
  /**
54
76
  * Extract ticket ID from branch name.
55
77
  * Branch format: {ticketId}/{type}/{description}
@@ -10,7 +10,10 @@
10
10
  * - Database: ready tickets, agent lifecycle states
11
11
  */
12
12
  import { execSync } from 'node:child_process';
13
+ import * as path from 'node:path';
13
14
  import { isGHInstalled, isGHAuthenticated, listOpenPRs, getPRChecks, getPRByNumber } from '../pr/index.js';
15
+ import { runSyncCycle } from '../sync/engine.js';
16
+ import { SQLiteStorage } from '../pmo/storage-sqlite.js';
14
17
  // =============================================================================
15
18
  // Poller
16
19
  // =============================================================================
@@ -39,6 +42,7 @@ export class OrchestratePoller {
39
42
  await this.pollReadyTickets();
40
43
  await this.pollAgentLifecycle();
41
44
  await this.pollGitHubPRs();
45
+ await this.pollBoardReconciliation();
42
46
  }
43
47
  // ===========================================================================
44
48
  // Ticket Polling
@@ -267,6 +271,111 @@ export class OrchestratePoller {
267
271
  }
268
272
  }
269
273
  // ===========================================================================
274
+ // Board Reconciliation
275
+ // ===========================================================================
276
+ /**
277
+ * Run board reconciliation — deterministic rules that sync ticket state
278
+ * from GitHub without LLM involvement.
279
+ *
280
+ * Rules:
281
+ * 1. PR merged → ticket to Done
282
+ * 2. PR opened → ticket to Review
283
+ * 3. Agent spawned → ticket to In Progress
284
+ * 4. Detect duplicate tickets
285
+ * 5. Flag stale Triage tickets that match merged PRs
286
+ */
287
+ async pollBoardReconciliation() {
288
+ try {
289
+ // Get the workspace db path from the database file path
290
+ const dbPath = this.getDbPath();
291
+ if (!dbPath)
292
+ return;
293
+ const storage = new SQLiteStorage(dbPath);
294
+ // Get all active project IDs
295
+ const projects = this.db.prepare(`
296
+ SELECT id FROM pmo_projects WHERE is_archived = 0
297
+ LIMIT 20
298
+ `).all();
299
+ for (const project of projects) {
300
+ try {
301
+ const report = await runSyncCycle(this.db, storage, project.id, {
302
+ cwd: this.cwd,
303
+ log: (msg) => this.log(`[reconcile] ${msg}`),
304
+ dryRun: false,
305
+ });
306
+ // Fire events for applied reconciliation actions
307
+ await this.fireReconciliationEvents(report);
308
+ }
309
+ catch (err) {
310
+ this.log(`[reconcile] Error reconciling project ${project.id}: ${err instanceof Error ? err.message : String(err)}`);
311
+ }
312
+ }
313
+ }
314
+ catch {
315
+ // Non-fatal board reconciliation error
316
+ }
317
+ }
318
+ /**
319
+ * Fire orchestrate events based on reconciliation results.
320
+ * This bridges deterministic reconciliation into the event-driven hook system.
321
+ */
322
+ async fireReconciliationEvents(report) {
323
+ for (const action of report.applied) {
324
+ try {
325
+ switch (action.type) {
326
+ case 'move_to_done':
327
+ this.log(`[reconcile] Fired on_pr_merged for ${action.ticketId}`);
328
+ await this.engine.fireEvent('on_pr_merged', {
329
+ event: 'on_pr_merged',
330
+ ticket: action.ticketId,
331
+ });
332
+ break;
333
+ case 'move_to_review':
334
+ this.log(`[reconcile] Fired on_pr_opened for ${action.ticketId}`);
335
+ await this.engine.fireEvent('on_pr_opened', {
336
+ event: 'on_pr_opened',
337
+ ticket: action.ticketId,
338
+ });
339
+ break;
340
+ case 'move_to_in_progress':
341
+ this.log(`[reconcile] Fired on_agent_spawned for ${action.ticketId}`);
342
+ await this.engine.fireEvent('on_agent_spawned', {
343
+ event: 'on_agent_spawned',
344
+ ticket: action.ticketId,
345
+ });
346
+ break;
347
+ case 'flag_stale':
348
+ case 'flag_stale_triage':
349
+ this.log(`[reconcile] Stale: ${action.ticketId} — ${action.reason}`);
350
+ break;
351
+ case 'flag_duplicate':
352
+ this.log(`[reconcile] Duplicate: ${action.ticketId} — ${action.reason}`);
353
+ break;
354
+ case 'move_to_backlog':
355
+ this.log(`[reconcile] Moved to backlog: ${action.ticketId} — ${action.reason}`);
356
+ break;
357
+ }
358
+ }
359
+ catch (err) {
360
+ this.log(`[reconcile] Error firing event for ${action.ticketId}: ${err instanceof Error ? err.message : String(err)}`);
361
+ }
362
+ }
363
+ // Log failures
364
+ for (const failure of report.failed) {
365
+ this.log(`[reconcile] Failed: ${failure.action.ticketId} — ${failure.error}`);
366
+ }
367
+ }
368
+ /**
369
+ * Get the database file path from the current database connection.
370
+ * Derives it from cwd/.proletariat/workspace.db.
371
+ */
372
+ getDbPath() {
373
+ if (this.cwd) {
374
+ return path.join(this.cwd, '.proletariat', 'workspace.db');
375
+ }
376
+ return null;
377
+ }
378
+ // ===========================================================================
270
379
  // Helpers
271
380
  // ===========================================================================
272
381
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/poller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poller.js","sourceRoot":"","sources":["../../../src/lib/orchestrate/poller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC1G,OAAO,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAqBxD,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF,MAAM,OAAO,iBAAiB;IACpB,MAAM,CAAmB;IACzB,EAAE,CAAmB;IACrB,GAAG,CAAuB;IAC1B,GAAG,CAAS;IAEpB,mDAAmD;IAC3C,UAAU,GAAG,IAAI,GAAG,EAAqB,CAAA;IAEjD,mEAAmE;IAC3D,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAA;IAE7C,0CAA0C;IAClC,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE3C,WAAW,GAAmB,IAAI,CAAA;IAE1C,YAAY,OAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAA;QACpB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;QACtB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAA;QAC7B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC/B,MAAM,IAAI,CAAC,aAAa,EAAE,CAAA;QAC1B,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAA;IACtC,CAAC;IAED,8EAA8E;IAC9E,iBAAiB;IACjB,8EAA8E;IAE9E;;;OAGG;IACK,KAAK,CAAC,gBAAgB;QAC5B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;OAUpC,CAAC,CAAC,GAAG,EAA0C,CAAA;YAEhD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAAE,SAAQ;gBACnD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAErC,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAA;gBACtD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,iBAAiB,EAAE;oBAC7C,KAAK,EAAE,iBAAiB;oBACxB,MAAM,EAAE,MAAM,CAAC,EAAE;iBAClB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,0BAA0B;IAC1B,8EAA8E;IAE9E;;;OAGG;IACK,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;OAK9B,CAAC,CAAC,GAAG,EAQJ,CAAA;YAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;gBACpD,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,MAAM,CAAA;gBAE1D,IAAI,SAAS,KAAK,YAAY;oBAAE,SAAQ;gBACxC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAA;gBAEhD,2DAA2D;gBAC3D,IAAI,CAAC,SAAS;oBAAE,SAAQ;gBAExB,MAAM,GAAG,GAAG;oBACV,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,KAAK,CAAC,SAAS;oBACvB,KAAK,EAAE,KAAK,CAAC,UAAU;oBACvB,SAAS,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;oBAC1C,WAAW,EAAE,KAAK,CAAC,EAAE;iBACtB,CAAA;gBAED,IAAI,YAAY,KAAK,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,KAAK,OAAO,CAAC,EAAE,CAAC;oBACnF,IAAI,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;oBACvE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;gBAClF,CAAC;qBAAM,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;oBACxC,IAAI,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;oBAC5E,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC,CAAA;gBAC5F,CAAC;qBAAM,IAAI,YAAY,KAAK,MAAM,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,CAAA;oBACvE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,GAAG,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAA;gBAClF,CAAC;YACH,CAAC;YAED,sDAAsD;YACtD,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;SAQlC,CAAC,CAAC,GAAG,EAA+F,CAAA;gBAErG,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;oBAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;oBACpD,IAAI,SAAS,KAAK,MAAM;wBAAE,SAAQ;oBAClC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;oBAE1C,IAAI,SAAS,EAAE,CAAC;wBACd,IAAI,CAAC,GAAG,CAAC,0CAA0C,KAAK,CAAC,UAAU,EAAE,CAAC,CAAA;wBACtE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE;4BAC3C,KAAK,EAAE,eAAe;4BACtB,MAAM,EAAE,KAAK,CAAC,SAAS;4BACvB,KAAK,EAAE,KAAK,CAAC,UAAU;4BACvB,SAAS,EAAE,KAAK,CAAC,YAAY,IAAI,SAAS;4BAC1C,WAAW,EAAE,KAAK,CAAC,EAAE;yBACtB,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,4CAA4C;YAC9C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,oBAAoB;IACpB,8EAA8E;IAE9E;;;OAGG;IACK,KAAK,CAAC,aAAa;QACzB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,aAAa,EAAE,IAAI,iBAAiB,EAAE,CAAA;QAC3D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAM;QAE7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAErC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;gBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,CAAA;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;gBAE5D,oBAAoB;gBACpB,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC/C,IAAI,OAAO,GAA6B,SAAS,CAAA;gBAEjD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,UAAU,CAAC,CAAA;oBAC3E,IAAI,OAAO,EAAE,CAAC;wBACZ,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CACjC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CACvF,CAAA;wBACD,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;oBAC7C,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,SAAS,CAAA;oBACrB,CAAC;gBACH,CAAC;gBAED,qCAAqC;gBACrC,IAAI,OAAO,IAAI,OAAO,KAAK,OAAO,CAAC,WAAW,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBACjG,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBAC1B,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE;4BACzC,KAAK,EAAE,aAAa;4BACpB,EAAE,EAAE,EAAE,CAAC,MAAM;4BACb,MAAM,EAAE,EAAE,CAAC,UAAU;4BACrB,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,EAAE,CAAC,GAAG;yBACd,CAAC,CAAA;oBACJ,CAAC;yBAAM,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;wBACjC,IAAI,CAAC,GAAG,CAAC,yBAAyB,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;4BAC1C,KAAK,EAAE,cAAc;4BACrB,EAAE,EAAE,EAAE,CAAC,MAAM;4BACb,MAAM,EAAE,EAAE,CAAC,UAAU;4BACrB,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,EAAE,CAAC,GAAG;yBACd,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,0BAA0B;gBAC1B,IAAI,SAAS,GAA+B,SAAS,CAAA;gBACrD,IAAI,CAAC;oBACH,MAAM,eAAe,GAAG,QAAQ,CAC9B,cAAc,EAAE,CAAC,MAAM,iCAAiC,EACxD,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CACtE,CAAC,IAAI,EAAE,CAAA;oBACR,IAAI,eAAe,KAAK,aAAa,EAAE,CAAC;wBACtC,SAAS,GAAG,aAAa,CAAA;oBAC3B,CAAC;yBAAM,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;wBAC3C,SAAS,GAAG,WAAW,CAAA;oBACzB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,oBAAoB;gBACtB,CAAC;gBAED,mFAAmF;gBACnF,MAAM,aAAa,GAAG,SAAS,KAAK,aAAa,IAAI,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,KAAK,aAAa,CAAC,CAAA;gBAC1G,IAAI,aAAa,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,8BAA8B,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;oBACnD,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE;wBAC/C,KAAK,EAAE,mBAAmB;wBAC1B,EAAE,EAAE,EAAE,CAAC,MAAM;wBACb,MAAM,EAAE,EAAE,CAAC,UAAU;wBACrB,MAAM,EAAE,QAAQ;wBAChB,KAAK,EAAE,EAAE,CAAC,GAAG;qBACd,CAAC,CAAA;gBACJ,CAAC;gBAED,kBAAkB;gBAClB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE;oBAC7B,MAAM,EAAE,EAAE,CAAC,MAAM;oBACjB,WAAW,EAAE,OAAO;oBACpB,aAAa,EAAE,SAAS;iBACzB,CAAC,CAAA;YACJ,CAAC;YAED,6DAA6D;YAC7D,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC,EAAE,CAAC;oBAC3C,8CAA8C;oBAC9C,MAAM,EAAE,GAAG,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;oBACzC,IAAI,EAAE,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;wBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,EAAE,CAAC,UAAU,CAAC,CAAA;wBAC5D,IAAI,CAAC,GAAG,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAA;wBAC1C,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;4BAC1C,KAAK,EAAE,cAAc;4BACrB,EAAE,EAAE,KAAK;4BACT,MAAM,EAAE,EAAE,CAAC,UAAU;4BACrB,MAAM,EAAE,QAAQ;4BAChB,KAAK,EAAE,EAAE,CAAC,GAAG;yBACd,CAAC,CAAA;oBACJ,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,uBAAuB;IACvB,8EAA8E;IAE9E;;;;;;;;;;OAUG;IACK,KAAK,CAAC,uBAAuB;QACnC,IAAI,CAAC;YACH,wDAAwD;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;YAC/B,IAAI,CAAC,MAAM;gBAAE,OAAM;YAEnB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;YAEzC,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGhC,CAAC,CAAC,GAAG,EAA2B,CAAA;YAEjC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE;wBAC9D,GAAG,EAAE,IAAI,CAAC,GAAG;wBACb,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,EAAE,CAAC;wBAC5C,MAAM,EAAE,KAAK;qBACd,CAAC,CAAA;oBAEF,iDAAiD;oBACjD,MAAM,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAA;gBAC7C,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,yCAAyC,OAAO,CAAC,EAAE,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACtH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,wBAAwB,CAAC,MAAkB;QACvD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;oBACpB,KAAK,cAAc;wBACjB,IAAI,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;wBACjE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;4BAC1C,KAAK,EAAE,cAAc;4BACrB,MAAM,EAAE,MAAM,CAAC,QAAQ;yBACxB,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,gBAAgB;wBACnB,IAAI,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;wBACjE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE;4BAC1C,KAAK,EAAE,cAAc;4BACrB,MAAM,EAAE,MAAM,CAAC,QAAQ;yBACxB,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,qBAAqB;wBACxB,IAAI,CAAC,GAAG,CAAC,0CAA0C,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;wBACrE,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,kBAAkB,EAAE;4BAC9C,KAAK,EAAE,kBAAkB;4BACzB,MAAM,EAAE,MAAM,CAAC,QAAQ;yBACxB,CAAC,CAAA;wBACF,MAAK;oBAEP,KAAK,YAAY,CAAC;oBAClB,KAAK,mBAAmB;wBACtB,IAAI,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;wBACpE,MAAK;oBAEP,KAAK,gBAAgB;wBACnB,IAAI,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;wBACxE,MAAK;oBAEP,KAAK,iBAAiB;wBACpB,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;wBAC/E,MAAK;gBACT,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,sCAAsC,MAAM,CAAC,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YACxH,CAAC;QACH,CAAC;QAED,eAAe;QACf,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,GAAG,CAAC,uBAAuB,OAAO,CAAC,MAAM,CAAC,QAAQ,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QAC/E,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,SAAS;QACf,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,cAAc,CAAC,CAAA;QAC5D,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,8EAA8E;IAC9E,UAAU;IACV,8EAA8E;IAE9E;;;OAGG;IACK,uBAAuB,CAAC,MAAc;QAC5C,kDAAkD;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QACrD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACrC,CAAC;CACF"}
@@ -9,7 +9,7 @@
9
9
  import { resolveTicketProvider } from '../providers/resolver.js';
10
10
  import { ExecutionStorage } from '../execution/storage.js';
11
11
  import { getPRForBranch, getPRChecks, listOpenPRs, } from '../pr/index.js';
12
- import { reconcileTicket, } from './reconciler.js';
12
+ import { reconcileTicket, reconcileAgentSpawned, detectDuplicates, detectStaleTriage, } from './reconciler.js';
13
13
  // =============================================================================
14
14
  // Engine
15
15
  // =============================================================================
@@ -50,9 +50,45 @@ export async function runSyncCycle(db, storage, projectId, options = {}) {
50
50
  errors.push({ ticketId: ticket.id, error: msg });
51
51
  }
52
52
  }
53
+ // Board-level reconciliation: agent spawned → In Progress
54
+ const activeAgentTicketIds = new Set();
55
+ try {
56
+ const runningAgents = db.prepare(`
57
+ SELECT DISTINCT ticket_id FROM agent_work
58
+ WHERE status IN ('starting', 'running')
59
+ `).all();
60
+ for (const row of runningAgents) {
61
+ activeAgentTicketIds.add(row.ticket_id);
62
+ }
63
+ }
64
+ catch {
65
+ // agent_work table may not exist — non-fatal
66
+ }
67
+ // Get all tickets for board-level rules (duplicates, stale triage, agent spawned)
68
+ const allTickets = await storage.listTickets(projectId);
69
+ const agentSpawnedActions = reconcileAgentSpawned(allTickets, activeAgentTicketIds);
70
+ actions.push(...agentSpawnedActions);
71
+ // Board-level: detect duplicate tickets
72
+ const duplicateActions = detectDuplicates(allTickets);
73
+ actions.push(...duplicateActions);
74
+ // Board-level: detect stale triage tickets matching merged PRs
75
+ const mergedBranches = new Set();
76
+ for (const ticket of allTickets) {
77
+ if (!ticket.branch)
78
+ continue;
79
+ const category = ticket.statusCategory;
80
+ if (category === 'backlog' || category === 'unstarted' || category === 'triage') {
81
+ const pr = prByBranch.get(ticket.branch) ?? getPRForBranch(ticket.branch, cwd);
82
+ if (pr?.state === 'MERGED') {
83
+ mergedBranches.add(ticket.branch);
84
+ }
85
+ }
86
+ }
87
+ const staleTriageActions = detectStaleTriage(allTickets, mergedBranches);
88
+ actions.push(...staleTriageActions);
53
89
  const result = {
54
90
  actions,
55
- checked: startedTickets.length,
91
+ checked: startedTickets.length + allTickets.length,
56
92
  errors,
57
93
  };
58
94
  // Apply actions
@@ -65,9 +101,9 @@ export async function runSyncCycle(db, storage, projectId, options = {}) {
65
101
  log?.(`[dry-run] Would ${formatAction(action)}`);
66
102
  continue;
67
103
  }
68
- if (action.type === 'flag_stale') {
69
- // Stale tickets are logged but not moved
70
- log?.(`Stale: ${action.ticketId} — ${action.reason}`);
104
+ if (action.type === 'flag_stale' || action.type === 'flag_stale_triage' || action.type === 'flag_duplicate') {
105
+ // Flag actions are logged but not moved — they're informational
106
+ log?.(`${action.type}: ${action.ticketId} — ${action.reason}`);
71
107
  applied.push(action);
72
108
  continue;
73
109
  }
@@ -136,10 +172,16 @@ function formatAction(action) {
136
172
  return `move ${action.ticketId} to Done (${action.reason})`;
137
173
  case 'move_to_review':
138
174
  return `move ${action.ticketId} to Review (${action.reason})`;
175
+ case 'move_to_in_progress':
176
+ return `move ${action.ticketId} to In Progress (${action.reason})`;
139
177
  case 'move_to_backlog':
140
178
  return `move ${action.ticketId} to Backlog (${action.reason})`;
141
179
  case 'flag_stale':
142
180
  return `flag ${action.ticketId} as stale (${action.reason})`;
181
+ case 'flag_stale_triage':
182
+ return `flag ${action.ticketId} as stale triage (${action.reason})`;
183
+ case 'flag_duplicate':
184
+ return `flag ${action.ticketId} as duplicate (${action.reason})`;
143
185
  }
144
186
  }
145
187
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/lib/sync/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/lib/sync/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACL,cAAc,EACd,WAAW,EACX,WAAW,GAEZ,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,GAIlB,MAAM,iBAAiB,CAAA;AAsBxB,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAqB,EACrB,OAAqC,EACrC,SAAiB,EACjB,UAA6B,EAAE;IAE/B,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;IACpC,MAAM,WAAW,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC,CAAA;IAE5C,0EAA0E;IAC1E,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAA;IAC1F,8EAA8E;IAC9E,mCAAmC;IAEnC,GAAG,EAAE,CAAC,YAAY,cAAc,CAAC,MAAM,sBAAsB,CAAC,CAAA;IAE9D,yCAAyC;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAChC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;IAC5C,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,MAAM,OAAO,GAAsB,EAAE,CAAA;IACrC,MAAM,MAAM,GAA+C,EAAE,CAAA;IAE7D,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,CAAC,CAAA;YAC9D,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9C,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAGhC,CAAC,CAAC,GAAG,EAAkC,CAAA;QACxC,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6CAA6C;IAC/C,CAAC;IAED,kFAAkF;IAClF,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;IACvD,MAAM,mBAAmB,GAAG,qBAAqB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAA;IACnF,OAAO,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAA;IAEpC,wCAAwC;IACxC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IACrD,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAA;IAEjC,+DAA+D;IAC/D,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAA;IACxC,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,SAAQ;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAA;QACtC,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAChF,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;YAC9E,IAAI,EAAE,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC3B,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAA;IACxE,OAAO,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAA;IAEnC,MAAM,MAAM,GAAoB;QAC9B,OAAO;QACP,OAAO,EAAE,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;QAClD,MAAM;KACP,CAAA;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAsB,EAAE,CAAA;IACrC,MAAM,OAAO,GAAsB,EAAE,CAAA;IACrC,MAAM,MAAM,GAAsD,EAAE,CAAA;IAEpE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACpB,GAAG,EAAE,CAAC,mBAAmB,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAChD,SAAQ;QACV,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,IAAI,MAAM,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YAC5G,gEAAgE;YAChE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;YAC9D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACpB,SAAQ;QACV,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACvD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAA;gBAClD,SAAQ;YACV,CAAC;YAED,MAAM,QAAQ,GAAG,qBAAqB,CACpC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,SAAS,IAAI,SAAS,EAC7B,EAAE,EACF,OAAO,EACP,MAAM,CAAC,QAAQ,CAChB,CAAA;YAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBACxB,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;gBAClF,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;oBACvB,GAAG,EAAE,CAAC,WAAW,MAAM,CAAC,QAAQ,MAAM,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;oBAC/E,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;oBAEpB,mEAAmE;oBACnE,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBACnC,uBAAuB,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;oBACvD,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,aAAa,EAAE,CAAC,CAAA;oBACjE,GAAG,EAAE,CAAC,WAAW,MAAM,CAAC,QAAQ,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC3D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC5D,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;YACnC,GAAG,EAAE,CAAC,UAAU,MAAM,CAAC,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AAC7C,CAAC;AAED,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF,SAAS,YAAY,CACnB,MAAc,EACd,UAA+B,EAC/B,WAA6B,EAC7B,GAAY;IAEZ,6EAA6E;IAC7E,IAAI,EAAE,GAAkB,IAAI,CAAA;IAC5B,IAAI,MAAM,GAAuC,EAAE,CAAA;IAEnD,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,uCAAuC;QACvC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAA;QAE1C,2EAA2E;QAC3E,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,6BAA6B;IAC7B,MAAM,kBAAkB,GAAG,CAAC,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAEvE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAA;AACnD,CAAC;AAED,SAAS,uBAAuB,CAAC,WAA6B,EAAE,QAAgB;IAC9E,MAAM,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACzD,IAAI,OAAO,EAAE,CAAC;QACZ,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;IACnD,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAuB;IAC3C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,cAAc;YACjB,OAAO,QAAQ,MAAM,CAAC,QAAQ,aAAa,MAAM,CAAC,MAAM,GAAG,CAAA;QAC7D,KAAK,gBAAgB;YACnB,OAAO,QAAQ,MAAM,CAAC,QAAQ,eAAe,MAAM,CAAC,MAAM,GAAG,CAAA;QAC/D,KAAK,qBAAqB;YACxB,OAAO,QAAQ,MAAM,CAAC,QAAQ,oBAAoB,MAAM,CAAC,MAAM,GAAG,CAAA;QACpE,KAAK,iBAAiB;YACpB,OAAO,QAAQ,MAAM,CAAC,QAAQ,gBAAgB,MAAM,CAAC,MAAM,GAAG,CAAA;QAChE,KAAK,YAAY;YACf,OAAO,QAAQ,MAAM,CAAC,QAAQ,cAAc,MAAM,CAAC,MAAM,GAAG,CAAA;QAC9D,KAAK,mBAAmB;YACtB,OAAO,QAAQ,MAAM,CAAC,QAAQ,qBAAqB,MAAM,CAAC,MAAM,GAAG,CAAA;QACrE,KAAK,gBAAgB;YACnB,OAAO,QAAQ,MAAM,CAAC,QAAQ,kBAAkB,MAAM,CAAC,MAAM,GAAG,CAAA;IACpE,CAAC;AACH,CAAC"}
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import type { PRInfo, PRCheck } from '../pr/index.js';
17
17
  import type { Ticket } from '../pmo/types.js';
18
- export type ReconcileActionType = 'move_to_done' | 'move_to_review' | 'flag_stale' | 'move_to_backlog';
18
+ export type ReconcileActionType = 'move_to_done' | 'move_to_review' | 'move_to_in_progress' | 'flag_stale' | 'flag_stale_triage' | 'flag_duplicate' | 'move_to_backlog';
19
19
  export interface ReconcileAction {
20
20
  type: ReconcileActionType;
21
21
  ticketId: string;
@@ -42,3 +42,29 @@ export interface ReconcileResult {
42
42
  * Determine reconciliation actions for a single ticket.
43
43
  */
44
44
  export declare function reconcileTicket(ctx: ReconcileContext): ReconcileAction | null;
45
+ /**
46
+ * Context for board-level reconciliation that operates across all tickets.
47
+ */
48
+ export interface BoardReconcileContext {
49
+ /** All tickets on the board (any status) */
50
+ tickets: Ticket[];
51
+ /** Branches with merged PRs (from GitHub) */
52
+ mergedBranches: Set<string>;
53
+ /** Ticket IDs that have active agent executions */
54
+ activeAgentTicketIds: Set<string>;
55
+ }
56
+ /**
57
+ * Detect tickets whose agent has been spawned but status is still in triage/backlog.
58
+ * Rule: Agent spawned → ticket should be In Progress.
59
+ */
60
+ export declare function reconcileAgentSpawned(tickets: Ticket[], activeAgentTicketIds: Set<string>): ReconcileAction[];
61
+ /**
62
+ * Detect duplicate tickets — tickets with the same title and similar descriptions.
63
+ * Returns flag_duplicate actions for each duplicate found (flags the newer one).
64
+ */
65
+ export declare function detectDuplicates(tickets: Ticket[]): ReconcileAction[];
66
+ /**
67
+ * Detect stale Triage tickets that have branches matching merged PRs.
68
+ * These tickets should have been moved to Done when the PR merged.
69
+ */
70
+ export declare function detectStaleTriage(tickets: Ticket[], mergedBranches: Set<string>): ReconcileAction[];
@@ -43,7 +43,7 @@ export function reconcileTicket(ctx) {
43
43
  targetStatus: 'Backlog',
44
44
  };
45
45
  }
46
- // Rule 2: Green CI + ticket In Progress → move to Review
46
+ // Rule 2a: Green CI + ticket In Progress → move to Review
47
47
  if (pr?.state === 'OPEN' &&
48
48
  !pr.isDraft &&
49
49
  category === 'started' &&
@@ -58,6 +58,20 @@ export function reconcileTicket(ctx) {
58
58
  targetStatus: 'Review',
59
59
  };
60
60
  }
61
+ // Rule 2b: PR opened (not draft) + ticket In Progress → move to Review
62
+ // Fires even without CI checks — the PR being opened signals readiness for review
63
+ if (pr?.state === 'OPEN' &&
64
+ !pr.isDraft &&
65
+ category === 'started' &&
66
+ !isReviewStatus(ticket)) {
67
+ return {
68
+ type: 'move_to_review',
69
+ ticketId: ticket.id,
70
+ ticketTitle: ticket.title,
71
+ reason: `PR #${pr.number} opened for review`,
72
+ targetStatus: 'Review',
73
+ };
74
+ }
61
75
  // Rule 3: Ticket In Progress + no active agent + no open PR → flag as stale
62
76
  if (category === 'started' &&
63
77
  !isReviewStatus(ticket) &&
@@ -85,4 +99,98 @@ function isReviewStatus(ticket) {
85
99
  const name = (ticket.statusName ?? '').toLowerCase();
86
100
  return name.includes('review') || name.includes('in review');
87
101
  }
102
+ /**
103
+ * Detect tickets whose agent has been spawned but status is still in triage/backlog.
104
+ * Rule: Agent spawned → ticket should be In Progress.
105
+ */
106
+ export function reconcileAgentSpawned(tickets, activeAgentTicketIds) {
107
+ const actions = [];
108
+ for (const ticket of tickets) {
109
+ const category = ticket.statusCategory;
110
+ // If an agent is running for this ticket but the ticket is still in backlog/todo
111
+ if (activeAgentTicketIds.has(ticket.id) &&
112
+ (category === 'backlog' || category === 'unstarted' || category === 'triage')) {
113
+ actions.push({
114
+ type: 'move_to_in_progress',
115
+ ticketId: ticket.id,
116
+ ticketTitle: ticket.title,
117
+ reason: 'Agent is actively working on this ticket',
118
+ targetStatus: 'In Progress',
119
+ });
120
+ }
121
+ }
122
+ return actions;
123
+ }
124
+ /**
125
+ * Detect duplicate tickets — tickets with the same title and similar descriptions.
126
+ * Returns flag_duplicate actions for each duplicate found (flags the newer one).
127
+ */
128
+ export function detectDuplicates(tickets) {
129
+ const actions = [];
130
+ const seen = new Map();
131
+ for (const ticket of tickets) {
132
+ // Skip completed/canceled tickets — they're done
133
+ if (ticket.statusCategory === 'completed' || ticket.statusCategory === 'canceled') {
134
+ continue;
135
+ }
136
+ const key = normalizeForDuplicateCheck(ticket.title);
137
+ if (!key)
138
+ continue;
139
+ const existing = seen.get(key);
140
+ if (existing) {
141
+ // Flag the newer ticket as a duplicate of the older one
142
+ const [newer, older] = ticket.createdAt > existing.createdAt
143
+ ? [ticket, existing]
144
+ : [existing, ticket];
145
+ actions.push({
146
+ type: 'flag_duplicate',
147
+ ticketId: newer.id,
148
+ ticketTitle: newer.title,
149
+ reason: `Possible duplicate of ${older.id} "${older.title}"`,
150
+ });
151
+ }
152
+ else {
153
+ seen.set(key, ticket);
154
+ }
155
+ }
156
+ return actions;
157
+ }
158
+ /**
159
+ * Detect stale Triage tickets that have branches matching merged PRs.
160
+ * These tickets should have been moved to Done when the PR merged.
161
+ */
162
+ export function detectStaleTriage(tickets, mergedBranches) {
163
+ const actions = [];
164
+ for (const ticket of tickets) {
165
+ const category = ticket.statusCategory;
166
+ // Only check backlog/todo (triage) tickets
167
+ if (category !== 'backlog' && category !== 'unstarted' && category !== 'triage')
168
+ continue;
169
+ // Must have a branch linked
170
+ if (!ticket.branch)
171
+ continue;
172
+ if (mergedBranches.has(ticket.branch)) {
173
+ actions.push({
174
+ type: 'flag_stale_triage',
175
+ ticketId: ticket.id,
176
+ ticketTitle: ticket.title,
177
+ reason: `Branch "${ticket.branch}" has a merged PR but ticket is still in ${ticket.statusName ?? category}`,
178
+ });
179
+ }
180
+ }
181
+ return actions;
182
+ }
183
+ /**
184
+ * Normalize a ticket title for duplicate comparison.
185
+ * Strips whitespace, lowercases, removes common prefixes like ticket IDs.
186
+ */
187
+ function normalizeForDuplicateCheck(title) {
188
+ return title
189
+ .toLowerCase()
190
+ .trim()
191
+ // Remove ticket ID prefixes like "PRLT-123:" or "[BUG]"
192
+ .replace(/^[A-Z]+-\d+[:\s]+/i, '')
193
+ .replace(/^\[.*?\]\s*/, '')
194
+ .replace(/\s+/g, ' ');
195
+ }
88
196
  //# sourceMappingURL=reconciler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../../src/lib/sync/reconciler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAqCH,gFAAgF;AAChF,aAAa;AACb,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAqB;IACnD,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,GAAG,GAAG,CAAA;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAA;IAEtC,qDAAqD;IACrD,IAAI,EAAE,EAAE,KAAK,KAAK,QAAQ,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAClF,OAAO;YACL,IAAI,EAAE,cAAc;YACpB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,qCAAqC,MAAM,CAAC,UAAU,IAAI,QAAQ,EAAE;YAC5F,YAAY,EAAE,MAAM;SACrB,CAAA;IACH,CAAC;IAED,sEAAsE;IACtE,oEAAoE;IACpE,IAAI,EAAE,EAAE,KAAK,KAAK,QAAQ,IAAI,QAAQ,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/E,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,6BAA6B;YACrD,YAAY,EAAE,SAAS;SACxB,CAAA;IACH,CAAC;IAED,yDAAyD;IACzD,IACE,EAAE,EAAE,KAAK,KAAK,MAAM;QACpB,CAAC,EAAE,CAAC,OAAO;QACX,QAAQ,KAAK,SAAS;QACtB,CAAC,cAAc,CAAC,MAAM,CAAC;QACvB,MAAM,CAAC,MAAM,GAAG,CAAC;QACjB,cAAc,CAAC,MAAM,CAAC,EACtB,CAAC;QACD,OAAO;YACL,IAAI,EAAE,gBAAgB;YACtB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,MAAM,EAAE,OAAO,EAAE,CAAC,MAAM,4BAA4B;YACpD,YAAY,EAAE,QAAQ;SACvB,CAAA;IACH,CAAC;IAED,4EAA4E;IAC5E,IACE,QAAQ,KAAK,SAAS;QACtB,CAAC,cAAc,CAAC,MAAM,CAAC;QACvB,CAAC,kBAAkB;QACnB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,EAC9B,CAAC;QACD,OAAO;YACL,IAAI,EAAE,YAAY;YAClB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,WAAW,EAAE,MAAM,CAAC,KAAK;YACzB,MAAM,EAAE,gCAAgC;SACzC,CAAA;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAiB;IACvC,OAAO,MAAM,CAAC,KAAK,CACjB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS,CAC5F,CAAA;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc;IACpC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;IACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC9D,CAAC"}
1
+ {"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../../src/lib/sync/reconciler.ts"],"names":[],"mappings":"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"}