@straiffi/archon 1.10.8 → 1.10.10

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 (169) hide show
  1. package/dist/client/assets/ActivityView-CRkM5TeN.js +1 -0
  2. package/dist/client/assets/GitHubActionsDialog-KFUiR00H.js +1 -0
  3. package/dist/client/assets/VerificationDialog-BIDttgiW.js +4 -0
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-CzUKSWJZ.js → architectureDiagram-3BPJPVTR-u0PSZlNP.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-DoNm6BnS.js → blockDiagram-GPEHLZMM-DFXLHRIk.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-C7ocs3wQ.js → c4Diagram-AAUBKEIU-Dvic8tCt.js} +1 -1
  7. package/dist/client/assets/channel-Dhv_uSKx.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-DUmaxCq8.js → chunk-2J33WTMH-t5CxhRXJ.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-CX2MPsMQ.js → chunk-3OPIFGDE-YHT1dP8Q.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-B103kU_y.js → chunk-5ZQYHXKU-DcxuI7lb.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-BmLJ4h5X.js → chunk-727SXJPM-D1F6DmrT.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-Cnv1b4Vd.js → chunk-AQP2D5EJ-BIx6Ohbk.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-CkIUhpY9.js → chunk-CSCIHK7Q-B355h6HA.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-wmkCuZ5U.js → chunk-KSCS5N6A-CLHGYOLQ.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-D9AdL5mv.js → chunk-L5ZTLDWV-DFLYcMx8.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-rMyTvR3J.js → chunk-LZXEDZCA-DtljFujX.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-19HTozu8.js → chunk-ND2GUHAM-CIuUQ86K.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-DBHgwKcS.js → chunk-NZK2D7GU-CIwqlxek.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-4WpSG06s.js → chunk-O5CBEL6O-W42BEPu4.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-loqCl7ki.js → chunk-WU5MYG2G-C_zuaNxV.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-9XKvSSLq.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-Dbr5_49Y.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-FVpIr0qZ.js → dagre-BM42HDAG-UKfIUJTP.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-Dgj8FaDO.js → diagram-2AECGRRQ-Xn6yojqq.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-DNpYKz_a.js → diagram-5GNKFQAL-BzpY1ZEl.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-N7R7efvN.js → diagram-KO2AKTUF-Dyrvzvsg.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-hoOvd_tG.js → diagram-LMA3HP47-AqImKwAr.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-ze25ZIy6.js → diagram-OG6HWLK6-CaQQ46mi.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-780zvNNZ.js → erDiagram-TEJ5UH35-Dkw4Aa5u.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-x4UB_M_4.js → flowDiagram-I6XJVG4X-CJTuGX9h.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-B5Wl0y91.js → ganttDiagram-6RSMTGT7-CidgOdS-.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CZtVHpBH.js → gitGraphDiagram-PVQCEYII-Bj02mIQj.js} +1 -1
  33. package/dist/client/assets/index-ClRB9YWJ.css +2 -0
  34. package/dist/client/assets/index-DBMdsTvy.js +276 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-BOzLwsnA.js → infoDiagram-5YYISTIA-GwJWfo_r.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-ButBhNg6.js → ishikawaDiagram-YF4QCWOH-rbrlWbUn.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-CO0Db0Gn.js → journeyDiagram-JHISSGLW-BLi_uzQM.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-B6KT8yln.js → kanban-definition-UN3LZRKU-ynlywm-_.js} +1 -1
  39. package/dist/client/assets/{line-Cv-WaOjt.js → line-BNyTZBB4.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-DgJy4Qlx.js → mermaid-parser.core-CzUOsZAD.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-YpvipwZo.js → mermaid.core-K0QR6SzN.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-DGgtT98Y.js → mindmap-definition-RKZ34NQL-BKcgqXm0.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-CgqnLewO.js → pieDiagram-4H26LBE5-Bjx0lvDI.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-Ci_0SzdR.js → quadrantDiagram-W4KKPZXB-CmUlgyUv.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-wJl0DP74.js → requirementDiagram-4Y6WPE33-Dj2mzg1y.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-CE7aDnzF.js → sankeyDiagram-5OEKKPKP-DC--H6qf.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-CW0bF1i6.js → sequenceDiagram-3UESZ5HK-BkNrt6Ra.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-Ccl0RXsJ.js → stateDiagram-AJRCARHV-BuxxRu1Y.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Cyo85GPN.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-TuF6SUnb.js → timeline-definition-PNZ67QCA-Db3pCVSp.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-D8OvSROI.js → vennDiagram-CIIHVFJN-BgBSGThQ.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DXW3R5NJ.js → wardleyDiagram-YWT4CUSO-BJhPdjYS.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-qdiUQDW9.js → xychartDiagram-2RQKCTM6-BY4Ra0kX.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +341 -4
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +197 -270
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/agentRuns.js +14 -1
  60. package/dist/server/lib/agentRuns.js.map +1 -1
  61. package/dist/server/lib/automationLoopProjection.js +55 -12
  62. package/dist/server/lib/automationLoopProjection.js.map +1 -1
  63. package/dist/server/lib/automationProgression.js +2 -5
  64. package/dist/server/lib/automationProgression.js.map +1 -1
  65. package/dist/server/lib/automationResumeDecision.js +19 -1
  66. package/dist/server/lib/automationResumeDecision.js.map +1 -1
  67. package/dist/server/lib/boundedProcess.js +129 -0
  68. package/dist/server/lib/boundedProcess.js.map +1 -0
  69. package/dist/server/lib/buildControlEligibility.js +4 -0
  70. package/dist/server/lib/buildControlEligibility.js.map +1 -0
  71. package/dist/server/lib/buildExecutionAdmission.js +76 -0
  72. package/dist/server/lib/buildExecutionAdmission.js.map +1 -0
  73. package/dist/server/lib/buildSequenceResume.js +79 -0
  74. package/dist/server/lib/buildSequenceResume.js.map +1 -0
  75. package/dist/server/lib/buildWorkload.js +11 -0
  76. package/dist/server/lib/buildWorkload.js.map +1 -0
  77. package/dist/server/lib/bundleReviewOperations.js +7 -0
  78. package/dist/server/lib/bundleReviewOperations.js.map +1 -1
  79. package/dist/server/lib/chats.js +12 -0
  80. package/dist/server/lib/chats.js.map +1 -1
  81. package/dist/server/lib/checkAutoFixDetails.js +36 -1
  82. package/dist/server/lib/checkAutoFixDetails.js.map +1 -1
  83. package/dist/server/lib/executionRetry.js +13 -1
  84. package/dist/server/lib/executionRetry.js.map +1 -1
  85. package/dist/server/lib/executionRunAuthority.js +2 -2
  86. package/dist/server/lib/executionRunAuthority.js.map +1 -1
  87. package/dist/server/lib/executionTargets.js +7 -4
  88. package/dist/server/lib/executionTargets.js.map +1 -1
  89. package/dist/server/lib/executionTimeline.js +8 -13
  90. package/dist/server/lib/executionTimeline.js.map +1 -1
  91. package/dist/server/lib/executionTimelineHierarchy.js +83 -0
  92. package/dist/server/lib/executionTimelineHierarchy.js.map +1 -0
  93. package/dist/server/lib/failedBuildSequenceRecovery.js +133 -0
  94. package/dist/server/lib/failedBuildSequenceRecovery.js.map +1 -0
  95. package/dist/server/lib/git.js +89 -48
  96. package/dist/server/lib/git.js.map +1 -1
  97. package/dist/server/lib/hostRunSession.js +62 -0
  98. package/dist/server/lib/hostRunSession.js.map +1 -0
  99. package/dist/server/lib/hostServiceRecovery.js +159 -0
  100. package/dist/server/lib/hostServiceRecovery.js.map +1 -0
  101. package/dist/server/lib/hostServiceRunProvider.js +32 -0
  102. package/dist/server/lib/hostServiceRunProvider.js.map +1 -0
  103. package/dist/server/lib/integrations/github.js +49 -105
  104. package/dist/server/lib/integrations/github.js.map +1 -1
  105. package/dist/server/lib/mobileAccess.js +6 -2
  106. package/dist/server/lib/mobileAccess.js.map +1 -1
  107. package/dist/server/lib/projectAutoConfig.js +5 -2
  108. package/dist/server/lib/projectAutoConfig.js.map +1 -1
  109. package/dist/server/lib/projectTargets.js +8 -2
  110. package/dist/server/lib/projectTargets.js.map +1 -1
  111. package/dist/server/lib/projects.js +25 -1
  112. package/dist/server/lib/projects.js.map +1 -1
  113. package/dist/server/lib/reviewFindingReconciliation.js +9 -2
  114. package/dist/server/lib/reviewFindingReconciliation.js.map +1 -1
  115. package/dist/server/lib/reviewFindings.js +113 -23
  116. package/dist/server/lib/reviewFindings.js.map +1 -1
  117. package/dist/server/lib/reviewRepairAssessmentRecords.js +41 -0
  118. package/dist/server/lib/reviewRepairAssessmentRecords.js.map +1 -0
  119. package/dist/server/lib/reviewRepairCompletion.js +78 -18
  120. package/dist/server/lib/reviewRepairCompletion.js.map +1 -1
  121. package/dist/server/lib/reviewRepairIterationRecords.js +4 -2
  122. package/dist/server/lib/reviewRepairIterationRecords.js.map +1 -1
  123. package/dist/server/lib/reviewRepairIterations.js +8 -2
  124. package/dist/server/lib/reviewRepairIterations.js.map +1 -1
  125. package/dist/server/lib/reviewRepairProgress.js +177 -0
  126. package/dist/server/lib/reviewRepairProgress.js.map +1 -0
  127. package/dist/server/lib/reviewRepairReconciliation.js +119 -140
  128. package/dist/server/lib/reviewRepairReconciliation.js.map +1 -1
  129. package/dist/server/lib/reviewRepairResumeOverride.js +55 -0
  130. package/dist/server/lib/reviewRepairResumeOverride.js.map +1 -0
  131. package/dist/server/lib/run.js +523 -504
  132. package/dist/server/lib/run.js.map +1 -1
  133. package/dist/server/lib/runProcessIdentity.js +71 -0
  134. package/dist/server/lib/runProcessIdentity.js.map +1 -0
  135. package/dist/server/lib/runProcesses.js +261 -0
  136. package/dist/server/lib/runProcesses.js.map +1 -0
  137. package/dist/server/lib/runServices.js +221 -0
  138. package/dist/server/lib/runServices.js.map +1 -0
  139. package/dist/server/lib/runSessionLifecycle.js +68 -0
  140. package/dist/server/lib/runSessionLifecycle.js.map +1 -0
  141. package/dist/server/lib/runStatus.js +7 -0
  142. package/dist/server/lib/runStatus.js.map +1 -0
  143. package/dist/server/lib/serviceRuns.js +273 -16
  144. package/dist/server/lib/serviceRuns.js.map +1 -1
  145. package/dist/server/lib/ticketAutomation.js +4 -27
  146. package/dist/server/lib/ticketAutomation.js.map +1 -1
  147. package/dist/server/lib/ticketRunOperations.js +103 -34
  148. package/dist/server/lib/ticketRunOperations.js.map +1 -1
  149. package/dist/server/lib/tickets.js +46 -21
  150. package/dist/server/lib/tickets.js.map +1 -1
  151. package/dist/server/lib/types.js.map +1 -1
  152. package/dist/server/workers/build.js +44 -69
  153. package/dist/server/workers/build.js.map +1 -1
  154. package/dist/server/workers/plan.js +0 -7
  155. package/dist/server/workers/plan.js.map +1 -1
  156. package/dist/server/workers/review.js +95 -146
  157. package/dist/server/workers/review.js.map +1 -1
  158. package/package.json +1 -1
  159. package/dist/client/assets/ActivityView-PGEex8sS.js +0 -1
  160. package/dist/client/assets/GitHubActionsDialog-CwsZRevc.js +0 -1
  161. package/dist/client/assets/VerificationDialog-BYE1M9T2.js +0 -4
  162. package/dist/client/assets/channel-b-KoJfeL.js +0 -1
  163. package/dist/client/assets/classDiagram-4FO5ZUOK-2c5Acffy.js +0 -1
  164. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-ClrW9LEB.js +0 -1
  165. package/dist/client/assets/index-BXsDja_y.css +0 -2
  166. package/dist/client/assets/index-Cy3ZoenG.js +0 -276
  167. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-k65NSsdn.js +0 -1
  168. package/dist/server/lib/automationDeliveryDecision.js +0 -34
  169. package/dist/server/lib/automationDeliveryDecision.js.map +0 -1
@@ -4,19 +4,32 @@ import { isBuildAgentRunning, isReviewAgentRunning, stopBuildAgent, stopReviewAg
4
4
  import { getPostBuildCheckSummary } from './postBuildCheckRuns.js';
5
5
  import { getProjectBranch, resolveExistingWorktreePath, resolveWorktreePath } from './git.js';
6
6
  import { getEffectiveProject, getProjectById } from './projects.js';
7
- import { getActiveRunStatusForContextKey, getActiveRunStatusForProject, hasRunConfig, isRunning, resolveProjectRunContextKey, runProject, runTicketInWorkspace, stopProjectRun, stopTicket, } from './run.js';
7
+ import { getActiveRunStatusForContextKey, getActiveRunStatusForProject, hasRunConfig, isRunning, resolveProjectRunContextKey, runProject, runTicketInWorkspace, stopProjectRun, stopTicket, validateRunControl, startActiveRunServices, } from './run.js';
8
8
  import { createServiceExecutionProfileSelection } from './executionRunAuthority.js';
9
9
  import { isTicketRunSetupReady } from './ticketDependencies.js';
10
10
  import { stopPlan } from '../workers/plan.js';
11
11
  import { stopPlanFollowUp } from '../workers/planFollowUp.js';
12
- import { getBundle, getTicket, isProjectRootBundle, listTicketsInRunContext, resolveTicketBranch, } from './tickets.js';
12
+ import { getBundle, getTicket, isProjectRootBundle, listTicketsInRunContext, resolveTicketBranch, resolveTicketContextKey, } from './tickets.js';
13
13
  import { resumeBuild } from '../workers/build.js';
14
+ import { canUseBuildControls as isBuildControlEligible } from './buildControlEligibility.js';
15
+ const admitServiceStart = (start) => {
16
+ try {
17
+ void start().catch(error => console.error('[run] admitted service startup failed:', error));
18
+ return null;
19
+ }
20
+ catch (error) {
21
+ return {
22
+ ok: false,
23
+ status: 409,
24
+ error: error instanceof Error ? error.message : String(error),
25
+ details: { code: error instanceof Error && 'code' in error ? error.code : 'service_start_rejected' },
26
+ };
27
+ }
28
+ };
14
29
  const isWorktreeReady = (branch, project) => {
15
30
  return existsSync(resolveWorktreePath(branch, project));
16
31
  };
17
- export const canUseBuildControls = (ticket) => {
18
- return ticket.state === 'build' || (ticket.state === 'review' && ticket.review_follow_up_active === true);
19
- };
32
+ export const canUseBuildControls = isBuildControlEligible;
20
33
  export const getTicketRunReadinessError = (ticket, project) => {
21
34
  const branch = resolveTicketBranch(ticket);
22
35
  if (!branch || !isWorktreeReady(branch, project)) {
@@ -153,7 +166,7 @@ export const formatActiveRunConflict = (projectId) => {
153
166
  : 'Another ticket is already running. Stop it before starting another run.',
154
167
  };
155
168
  };
156
- export const runTicketRun = ({ ticketId, requestedProjectId, broadcaster, }) => {
169
+ export const runTicketRun = ({ ticketId, requestedProjectId, broadcaster, serviceId, sessionId, }) => {
157
170
  const ticket = getTicket(ticketId);
158
171
  if (!ticket) {
159
172
  return { ok: false, status: 404, error: 'Not found' };
@@ -161,6 +174,24 @@ export const runTicketRun = ({ ticketId, requestedProjectId, broadcaster, }) =>
161
174
  if (!matchesRequestedProject(ticket, requestedProjectId)) {
162
175
  return { ok: false, status: 404, error: 'Not found' };
163
176
  }
177
+ const project = getEffectiveProject(ticket);
178
+ if (!project) {
179
+ return { ok: false, status: 404, error: 'Ticket project no longer exists' };
180
+ }
181
+ const active = getActiveRunStatusForProject(project.id);
182
+ const contextKey = active?.kind === 'ticket' && active.ticket_id === ticket.id
183
+ ? active.context_key : resolveTicketContextKey(ticket) ?? undefined;
184
+ const controlError = validateRunControl(project, { serviceId, sessionId, contextKey, starting: true });
185
+ if (controlError) {
186
+ return { ok: false, status: 409, error: controlError, details: { code: 'service_control_conflict' } };
187
+ }
188
+ if (active?.session_id) {
189
+ const rejected = admitServiceStart(() => startActiveRunServices(active.context_key, serviceId, sessionId));
190
+ if (rejected) {
191
+ return rejected;
192
+ }
193
+ return { ok: true, status: 200, value: { ...ticket, is_running: isRunning(ticket), has_run_config: true } };
194
+ }
164
195
  const workspace = resolveTicketRunWorkspace(ticket);
165
196
  if ('error' in workspace) {
166
197
  return { ok: false, status: workspace.status, error: workspace.error };
@@ -182,29 +213,45 @@ export const runTicketRun = ({ ticketId, requestedProjectId, broadcaster, }) =>
182
213
  return { ok: false, status: 409, error: activeRunConflict.error, details: activeRunConflict };
183
214
  }
184
215
  const running = { ...ticket, is_running: true, has_run_config: true };
216
+ const rejected = admitServiceStart(() => runTicketInWorkspace(ticket, broadcaster, workspace.project, workspace.cwd, createServiceExecutionProfileSelection(workspace.project.id, 'project_default'), { serviceId, sessionId }));
217
+ if (rejected) {
218
+ return rejected;
219
+ }
185
220
  emitRunStateForContext(broadcaster, ticket, true);
186
221
  return {
187
222
  ok: true,
188
223
  status: 200,
189
224
  value: running,
190
- afterResponse: () => {
191
- void runTicketInWorkspace(ticket, broadcaster, workspace.project, workspace.cwd);
192
- },
193
225
  };
194
226
  };
195
- export const runProjectTarget = ({ projectId, executionProvider = 'project_default', }) => {
227
+ export const runProjectTarget = ({ projectId, executionProvider = 'project_default', serviceId, sessionId, }) => {
196
228
  const project = getProjectById(projectId);
197
229
  if (!project) {
198
230
  return { ok: false, status: 404, error: 'Not found' };
199
231
  }
200
- if (!hasRunConfig(project)) {
201
- return { ok: false, status: 400, error: 'No run config' };
202
- }
203
232
  const workspace = resolveProjectTargetRunWorkspace(project);
204
233
  if ('error' in workspace) {
205
234
  return { ok: false, status: workspace.status, error: workspace.error };
206
235
  }
207
236
  const contextKey = workspace.run_context_key;
237
+ const controlError = validateRunControl(project, { serviceId, sessionId, executionProvider, contextKey, starting: true });
238
+ if (controlError) {
239
+ return { ok: false, status: 409, error: controlError, details: { code: 'service_control_conflict' } };
240
+ }
241
+ const active = getActiveRunStatusForProject(project.id);
242
+ if (active?.session_id) {
243
+ if (active.context_key !== contextKey) {
244
+ return { ok: false, status: 409, error: 'Active service session does not match the selected workspace', details: { code: 'service_control_conflict' } };
245
+ }
246
+ const rejected = admitServiceStart(() => startActiveRunServices(active.context_key, serviceId, sessionId));
247
+ if (rejected) {
248
+ return rejected;
249
+ }
250
+ return { ok: true, status: 200, value: { active_run: active } };
251
+ }
252
+ if (!hasRunConfig(project)) {
253
+ return { ok: false, status: 400, error: 'No run config' };
254
+ }
208
255
  if (isRunning(contextKey)) {
209
256
  return {
210
257
  ok: true,
@@ -231,23 +278,25 @@ export const runProjectTarget = ({ projectId, executionProvider = 'project_defau
231
278
  target_kind: workspace.target_kind,
232
279
  target_bundle_id: workspace.target_bundle_id,
233
280
  };
234
- const profileSelection = createServiceExecutionProfileSelection(project.id, executionProvider);
281
+ const rejected = admitServiceStart(() => runProject(project, {
282
+ cwd: workspace.cwd,
283
+ targetKind: workspace.target_kind,
284
+ targetBundleId: workspace.target_bundle_id,
285
+ targetBranch: workspace.branch,
286
+ profileSelection: createServiceExecutionProfileSelection(project.id, executionProvider),
287
+ serviceId,
288
+ sessionId,
289
+ }));
290
+ if (rejected) {
291
+ return rejected;
292
+ }
235
293
  return {
236
294
  ok: true,
237
295
  status: 200,
238
- value: { active_run: activeRun },
239
- afterResponse: () => {
240
- void runProject(project, {
241
- cwd: workspace.cwd,
242
- targetKind: workspace.target_kind,
243
- targetBundleId: workspace.target_bundle_id,
244
- targetBranch: workspace.branch,
245
- profileSelection,
246
- });
247
- },
296
+ value: { active_run: getActiveRunStatusForProject(project.id) ?? activeRun },
248
297
  };
249
298
  };
250
- export const stopTicketRun = async ({ ticketId, requestedProjectId, broadcaster, }) => {
299
+ export const stopTicketRun = async ({ ticketId, requestedProjectId, broadcaster, serviceId, sessionId, }) => {
251
300
  const ticket = getTicket(ticketId);
252
301
  if (!ticket) {
253
302
  return { ok: false, status: 404, error: 'Not found' };
@@ -255,26 +304,46 @@ export const stopTicketRun = async ({ ticketId, requestedProjectId, broadcaster,
255
304
  if (!matchesRequestedProject(ticket, requestedProjectId)) {
256
305
  return { ok: false, status: 404, error: 'Not found' };
257
306
  }
258
- if (ticket.state === 'plan') {
307
+ const project = getEffectiveProject(ticket);
308
+ const active = project ? getActiveRunStatusForProject(project.id) : null;
309
+ const contextKey = active?.kind === 'ticket' && active.ticket_id === ticket.id
310
+ ? active.context_key : resolveTicketContextKey(ticket) ?? undefined;
311
+ const controlError = project && (serviceId !== undefined || sessionId !== undefined)
312
+ ? validateRunControl(project, { serviceId, sessionId, contextKey }) : null;
313
+ if (controlError) {
314
+ return { ok: false, status: 409, error: controlError };
315
+ }
316
+ if (ticket.state === 'plan' && serviceId === undefined && sessionId === undefined) {
259
317
  const stoppedFollowUp = await stopPlanFollowUp(ticket.id);
260
318
  if (!stoppedFollowUp) {
261
319
  await stopPlan(ticket.id);
262
320
  }
263
321
  }
264
- await stopTicket(ticket);
265
- emitRunStateForContext(broadcaster, ticket, false);
266
- const updated = listTicketsInRunContext(ticket).find(entry => entry.id === ticket.id) ?? { ...ticket, is_running: false };
322
+ try {
323
+ await stopTicket(contextKey ?? ticket, { serviceId, sessionId });
324
+ }
325
+ catch (error) {
326
+ return { ok: false, status: 409, error: error instanceof Error ? error.message : String(error) };
327
+ }
328
+ emitRunStateForContext(broadcaster, ticket, isRunning(ticket));
329
+ const updated = listTicketsInRunContext(ticket).find(entry => entry.id === ticket.id) ?? { ...ticket, is_running: isRunning(ticket) };
267
330
  return { ok: true, status: 200, value: updated };
268
331
  };
269
- export const stopProjectTargetRun = async ({ projectId, }) => {
332
+ export const stopProjectTargetRun = async ({ projectId, serviceId, sessionId, }) => {
270
333
  const project = getProjectById(projectId);
271
334
  if (!project) {
272
335
  return { ok: false, status: 404, error: 'Not found' };
273
336
  }
274
- await stopProjectRun(project.id, {
275
- kind: project.active_target_kind,
276
- bundleId: project.active_target_bundle_id,
277
- });
337
+ const controlError = validateRunControl(project, { serviceId, sessionId });
338
+ if (controlError) {
339
+ return { ok: false, status: 409, error: controlError };
340
+ }
341
+ try {
342
+ await stopProjectRun(project.id, { serviceId, sessionId });
343
+ }
344
+ catch (error) {
345
+ return { ok: false, status: 409, error: error instanceof Error ? error.message : String(error) };
346
+ }
278
347
  return { ok: true, status: 200, value: { active_run: getActiveRunStatusForProject(project.id) } };
279
348
  };
280
349
  export const stopActiveRunByContextKey = async ({ runContextKey, broadcaster, }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"ticketRunOperations.js","sourceRoot":"","sources":["../../../server/lib/ticketRunOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ticketRunOperations.js","sourceRoot":"","sources":["../../../server/lib/ticketRunOperations.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { getBundlePullRequestRecord, hasTerminalBundlePullRequest, serializeBund
6
6
  import { getBuildChainTicketState } from './buildChains.js';
7
7
  import { getLatestBuildOpenQuestionBatchStatus, loadBuildOpenQuestionsByTicketIds } from './buildOpenQuestions.js';
8
8
  import { getCheckGateEvaluationSummaryTargetKey, getLatestCheckGateEvaluationSummary, loadLatestCheckGateEvaluationSummaryMap } from './checkGateEvaluations.js';
9
+ import { hasActiveBundleChatSession } from './chats.js';
9
10
  import { getBoardGitStatus, getBoardWorktreeGitStatus, getGitDiffFiles, getGitStatus, getProjectBranch, getWorktreeDiffStats, getWorktreeGitStatus, resolveExistingWorktreePath, summarizeTicketDiffFiles } from './git.js';
10
11
  import { getGitHubConnectionConfig } from './integrations/index.js';
11
12
  import { getEffectiveProject, getProjectById, hasProjectRunIde } from './projects.js';
@@ -13,9 +14,8 @@ import { getPostBuildCheckSummary } from './postBuildCheckRuns.js';
13
14
  import { resolveEffectiveRequiredCheckPolicyMembership } from './requiredCheckPolicy.js';
14
15
  import { resolveReviewerConfig } from './reviewerConfig.js';
15
16
  import { parseStoredAgentModelConfig } from './agentModelConfig.js';
16
- import { getReviewContextState } from './reviewFindings.js';
17
+ import { getReviewContextState, resolveReviewRerunEligibility } from './reviewFindings.js';
17
18
  import { resolveAutomationResumeDecision } from './automationResumeDecision.js';
18
- import { resolveAutomationDeliveryDecision } from './automationDeliveryDecision.js';
19
19
  import { hasRunConfig, isRunning } from './run.js';
20
20
  import { loadBundleAutomationStateMap, resolveAutomationConfig, resolveBundleAutomationState, } from './ticketAutomation.js';
21
21
  import { listTicketMessages, upsertTicketDescriptionMessage } from './ticketMessages.js';
@@ -473,7 +473,6 @@ const applyAutomationResumeDecisions = (tickets, bundleAutomationStateCache) =>
473
473
  ticketsByBundle.set(key, bundleTickets);
474
474
  }
475
475
  const decisions = new Map();
476
- const deliveryDecisions = new Map();
477
476
  for (const [key, bundleTickets] of ticketsByBundle) {
478
477
  const state = bundleAutomationStateCache.get(key);
479
478
  const representative = bundleTickets[0];
@@ -493,15 +492,6 @@ const applyAutomationResumeDecisions = (tickets, bundleAutomationStateCache) =>
493
492
  questionResolutionActive: batchStatus === 'pending' || batchStatus === 'running',
494
493
  }));
495
494
  }
496
- deliveryDecisions.set(key, state && representative?.project_id && representative.worktree_bundle_id
497
- ? resolveAutomationDeliveryDecision({
498
- projectId: representative.project_id,
499
- bundleId: representative.worktree_bundle_id,
500
- state,
501
- config: representative.automation_config ?? resolveAutomationConfig(representative.bundle ?? null, null),
502
- tickets: bundleTickets,
503
- })
504
- : null);
505
495
  }
506
496
  return tickets.map(ticket => {
507
497
  if (!ticket.project_id || !ticket.worktree_bundle_id) {
@@ -510,7 +500,6 @@ const applyAutomationResumeDecisions = (tickets, bundleAutomationStateCache) =>
510
500
  return {
511
501
  ...ticket,
512
502
  automation_resume_decision: decisions.get(`${ticket.project_id}:${ticket.worktree_bundle_id}`) ?? null,
513
- automation_delivery_decision: deliveryDecisions.get(`${ticket.project_id}:${ticket.worktree_bundle_id}`) ?? null,
514
503
  };
515
504
  });
516
505
  };
@@ -587,14 +576,15 @@ export const serializeTicket = (row, options = {}) => {
587
576
  const branch = bundle?.branch ?? row.branch ?? null;
588
577
  const includeResolvedDiffStats = shouldIncludeBoardDiffStats(row, includeDetail, includeDiffStats);
589
578
  const includeResolvedStaleState = shouldResolveStaleGitStatus(row, includeStaleState);
590
- const shouldResolveWorktreeState = includeWorktreeState || includeResolvedDiffStats || includeResolvedStaleState;
579
+ const shouldResolveReviewSignature = includeDetail && row.state === 'review';
580
+ const shouldResolveWorktreeState = includeWorktreeState || includeResolvedDiffStats || includeResolvedStaleState || shouldResolveReviewSignature;
591
581
  const hasWorktree = (project?.repo_path && branch && shouldResolveWorktreeState)
592
582
  ? resolveTicketWorktree(row, project.repo_path, branch, existingWorktreePaths, worktreeRecordsCache) !== null
593
583
  : undefined;
594
584
  const diffStats = includeResolvedDiffStats
595
585
  ? resolveTicketDiffStats(row, project?.repo_path ?? null, branch, hasWorktree === true, diffStatsCache)
596
586
  : null;
597
- const gitStatus = includeResolvedStaleState
587
+ const gitStatus = includeResolvedStaleState || shouldResolveReviewSignature
598
588
  ? resolveTicketGitStatus(row, project?.repo_path ?? null, branch, hasWorktree === true, gitStatusCache)
599
589
  : null;
600
590
  const messages = includeMessages
@@ -638,9 +628,14 @@ export const serializeTicket = (row, options = {}) => {
638
628
  const canRestartStoppedReview = row.state === 'review'
639
629
  && row.agent_status === 'stopped'
640
630
  && reviewFollowUpActive !== true;
641
- const canReReview = canRestartStoppedReview || (reviewContextState.hasCompletedReview
642
- && reviewContextState.hasFollowUpSinceLastReview
643
- && row.agent_status !== 'running');
631
+ const rerunEligibility = resolveReviewRerunEligibility({
632
+ reviewContextState,
633
+ currentWorkspaceSignature: gitStatus?.workspace_signature ?? null,
634
+ isContextRunning: row.agent_status === 'running' || Boolean(row.project_id
635
+ && row.worktree_bundle_id
636
+ && hasActiveBundleChatSession(row.project_id, row.worktree_bundle_id)),
637
+ canRestartStoppedReview,
638
+ });
644
639
  const ticketBase = {
645
640
  id: row.id,
646
641
  title: row.title,
@@ -648,7 +643,8 @@ export const serializeTicket = (row, options = {}) => {
648
643
  state: row.state,
649
644
  has_completed_review: reviewContextState.hasCompletedReview || undefined,
650
645
  has_follow_up_since_last_review: reviewContextState.hasFollowUpSinceLastReview || undefined,
651
- can_re_review: canReReview || undefined,
646
+ can_re_review: rerunEligibility.canReReview || undefined,
647
+ re_review_eligibility_reason: rerunEligibility.reason,
652
648
  agent_status: row.agent_status,
653
649
  parked_at: row.parked_at,
654
650
  auto_park_dismissed_at: row.auto_park_dismissed_at ?? null,
@@ -688,7 +684,6 @@ export const serializeTicket = (row, options = {}) => {
688
684
  automation_pause_reason_code: bundleAutomationState?.automation_pause_reason_code ?? null,
689
685
  automation_paused_reason: bundleAutomationState?.automation_paused_reason ?? null,
690
686
  automation_paused_at: bundleAutomationState?.automation_paused_at ?? null,
691
- automation_delivery_decision: null,
692
687
  automation_review_iteration_count: bundleAutomationState?.review_iteration_count ?? 0,
693
688
  automation_fix_loop_active: Boolean(bundleAutomationState?.fix_loop_active),
694
689
  latest_check_gate_evaluation: latestCheckGateEvaluation,
@@ -866,6 +861,7 @@ export const listBoardTicketEnrichment = (projectId) => {
866
861
  let worktreeMs = 0;
867
862
  let diffStatsMs = 0;
868
863
  let gitStatusMs = 0;
864
+ const activeBundleChatCache = new Map();
869
865
  const enrichment = rows.map((row) => {
870
866
  const project = getEffectiveProject(row);
871
867
  const projectRepoPath = project?.repo_path ?? null;
@@ -913,7 +909,7 @@ export const listBoardTicketEnrichment = (projectId) => {
913
909
  }
914
910
  hasWorktree = cached.hasWorktree;
915
911
  const shouldResolveDiffStats = row.state !== 'plan';
916
- const shouldResolveGitStatus = shouldResolveStaleGitStatus(row, true);
912
+ const shouldResolveGitStatus = row.state === 'review' || shouldResolveStaleGitStatus(row, true);
917
913
  if (hasWorktree && shouldResolveDiffStats) {
918
914
  if (cached.diffStats === undefined) {
919
915
  const diffStatsStartedAt = performance.now();
@@ -941,6 +937,33 @@ export const listBoardTicketEnrichment = (projectId) => {
941
937
  gitStatus = cached.gitStatus ?? null;
942
938
  }
943
939
  }
940
+ const reviewContextState = row.state === 'review'
941
+ ? getReviewContextState({
942
+ ticketId: row.id,
943
+ projectId: row.project_id,
944
+ worktreeBundleId: row.worktree_bundle_id,
945
+ })
946
+ : null;
947
+ const bundleChatRunning = row.project_id && row.worktree_bundle_id
948
+ ? (() => {
949
+ const key = `${row.project_id}:${row.worktree_bundle_id}`;
950
+ const cached = activeBundleChatCache.get(key);
951
+ if (cached !== undefined) {
952
+ return cached;
953
+ }
954
+ const active = hasActiveBundleChatSession(row.project_id, row.worktree_bundle_id);
955
+ activeBundleChatCache.set(key, active);
956
+ return active;
957
+ })()
958
+ : false;
959
+ const rerunEligibility = reviewContextState
960
+ ? resolveReviewRerunEligibility({
961
+ reviewContextState,
962
+ currentWorkspaceSignature: gitStatus?.workspace_signature ?? null,
963
+ isContextRunning: row.agent_status === 'running' || bundleChatRunning,
964
+ canRestartStoppedReview: row.agent_status === 'stopped',
965
+ })
966
+ : null;
944
967
  return {
945
968
  id: row.id,
946
969
  diff_stats: diffStats,
@@ -950,6 +973,8 @@ export const listBoardTicketEnrichment = (projectId) => {
950
973
  project_id: row.project_id,
951
974
  worktree_bundle_id: row.worktree_bundle_id,
952
975
  }, gitStatus, bundle, hasGitHubConnection),
976
+ can_re_review: rerunEligibility?.canReReview,
977
+ re_review_eligibility_reason: rerunEligibility?.reason,
953
978
  };
954
979
  });
955
980
  if (TICKET_TIMING_ENABLED) {