@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.
- package/dist/commands/orchestrate/index.js +30 -3
- package/dist/commands/orchestrate/index.js.map +1 -1
- package/dist/commands/qa/index.js +1 -1
- package/dist/commands/ticket/create.d.ts +44 -0
- package/dist/commands/ticket/create.js +754 -0
- package/dist/commands/ticket/create.js.map +1 -0
- package/dist/commands/ticket/delete.d.ts +17 -0
- package/dist/commands/ticket/delete.js +204 -0
- package/dist/commands/ticket/delete.js.map +1 -0
- package/dist/commands/ticket/edit.d.ts +28 -0
- package/dist/commands/ticket/edit.js +402 -0
- package/dist/commands/ticket/edit.js.map +1 -0
- package/dist/commands/ticket/index.d.ts +13 -0
- package/dist/commands/ticket/index.js +74 -0
- package/dist/commands/ticket/index.js.map +1 -0
- package/dist/commands/ticket/list.d.ts +33 -0
- package/dist/commands/ticket/list.js +519 -0
- package/dist/commands/ticket/list.js.map +1 -0
- package/dist/commands/ticket/move.d.ts +27 -0
- package/dist/commands/ticket/move.js +413 -0
- package/dist/commands/ticket/move.js.map +1 -0
- package/dist/commands/ticket/show.d.ts +14 -0
- package/dist/commands/ticket/show.js +110 -0
- package/dist/commands/ticket/show.js.map +1 -0
- package/dist/commands/ticket/update.d.ts +28 -0
- package/dist/commands/ticket/update.js +458 -0
- package/dist/commands/ticket/update.js.map +1 -0
- package/dist/lib/execution/preflight.js +1 -1
- package/dist/lib/execution/preflight.js.map +1 -1
- package/dist/lib/mcp/tools/action.d.ts +6 -0
- package/dist/lib/mcp/tools/action.js +123 -0
- package/dist/lib/mcp/tools/action.js.map +1 -0
- package/dist/lib/mcp/tools/index.d.ts +2 -0
- package/dist/lib/mcp/tools/index.js +2 -0
- package/dist/lib/mcp/tools/index.js.map +1 -1
- package/dist/lib/mcp/tools/ticket.d.ts +6 -0
- package/dist/lib/mcp/tools/ticket.js +464 -0
- package/dist/lib/mcp/tools/ticket.js.map +1 -0
- package/dist/lib/orchestrate/poller.d.ts +22 -0
- package/dist/lib/orchestrate/poller.js +109 -0
- package/dist/lib/orchestrate/poller.js.map +1 -1
- package/dist/lib/sync/engine.js +47 -5
- package/dist/lib/sync/engine.js.map +1 -1
- package/dist/lib/sync/reconciler.d.ts +27 -1
- package/dist/lib/sync/reconciler.js +109 -1
- package/dist/lib/sync/reconciler.js.map +1 -1
- package/oclif.manifest.json +2021 -1153
- 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":"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"}
|
package/dist/lib/sync/engine.js
CHANGED
|
@@ -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
|
-
//
|
|
70
|
-
log?.(
|
|
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":"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,
|
|
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
|
|
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;
|
|
1
|
+
{"version":3,"file":"reconciler.js","sourceRoot":"","sources":["../../../src/lib/sync/reconciler.ts"],"names":[],"mappings":"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"}
|