@straiffi/archon 1.7.9 → 1.8.0

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 (170) hide show
  1. package/dist/client/assets/{ActivityView-CDLQOXZm.js → ActivityView-EVy76nes.js} +1 -1
  2. package/dist/client/assets/{GitHubActionsDialog-DYxLX2HS.js → GitHubActionsDialog-D53aA0Fv.js} +1 -1
  3. package/dist/client/assets/VerificationDialog-Dm5DcY8F.js +4 -0
  4. package/dist/client/assets/{architectureDiagram-3BPJPVTR-ByNXcCIO.js → architectureDiagram-3BPJPVTR-CmMRkze6.js} +1 -1
  5. package/dist/client/assets/{blockDiagram-GPEHLZMM-ByykLAaG.js → blockDiagram-GPEHLZMM-BgLsRgxM.js} +1 -1
  6. package/dist/client/assets/{c4Diagram-AAUBKEIU-CmWA4Pli.js → c4Diagram-AAUBKEIU-C3WJl13c.js} +1 -1
  7. package/dist/client/assets/channel-xqaERdN6.js +1 -0
  8. package/dist/client/assets/{chunk-2J33WTMH-CTgbXRh4.js → chunk-2J33WTMH-BfH4_PkQ.js} +1 -1
  9. package/dist/client/assets/{chunk-3OPIFGDE-D3FajVfq.js → chunk-3OPIFGDE-CkVGPLM4.js} +1 -1
  10. package/dist/client/assets/{chunk-5ZQYHXKU-CUMg_Vfo.js → chunk-5ZQYHXKU-CDTwT753.js} +1 -1
  11. package/dist/client/assets/{chunk-727SXJPM-Oc9MgxZD.js → chunk-727SXJPM-CKEhBrr_.js} +1 -1
  12. package/dist/client/assets/{chunk-AQP2D5EJ-5JZboHeP.js → chunk-AQP2D5EJ-D5QPK_k7.js} +1 -1
  13. package/dist/client/assets/{chunk-CSCIHK7Q-BpkSMHjB.js → chunk-CSCIHK7Q-BU4Ysr_2.js} +1 -1
  14. package/dist/client/assets/{chunk-KSCS5N6A-BPBMAswO.js → chunk-KSCS5N6A-B9lHLGg1.js} +1 -1
  15. package/dist/client/assets/{chunk-L5ZTLDWV-BA2sHmu7.js → chunk-L5ZTLDWV-BrNsmxtD.js} +1 -1
  16. package/dist/client/assets/{chunk-LZXEDZCA-Blc9q-fQ.js → chunk-LZXEDZCA-CVgZc1nv.js} +2 -2
  17. package/dist/client/assets/{chunk-ND2GUHAM-GlVS74JP.js → chunk-ND2GUHAM-DWWdi42a.js} +1 -1
  18. package/dist/client/assets/{chunk-NZK2D7GU-fctBFnAm.js → chunk-NZK2D7GU-46-aRMvO.js} +1 -1
  19. package/dist/client/assets/{chunk-O5CBEL6O-eGs4DDLJ.js → chunk-O5CBEL6O-BW6wHmzD.js} +1 -1
  20. package/dist/client/assets/{chunk-WU5MYG2G-vxa50E7g.js → chunk-WU5MYG2G-Wfk15Qtf.js} +1 -1
  21. package/dist/client/assets/classDiagram-4FO5ZUOK-BdwFrsZE.js +1 -0
  22. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DxAuXA1L.js +1 -0
  23. package/dist/client/assets/{dagre-BM42HDAG-DXGXNVUp.js → dagre-BM42HDAG-CZ_BDahz.js} +1 -1
  24. package/dist/client/assets/{diagram-2AECGRRQ-BRYr1GvB.js → diagram-2AECGRRQ-CQKXQvjO.js} +1 -1
  25. package/dist/client/assets/{diagram-5GNKFQAL-BcwgMag4.js → diagram-5GNKFQAL-Dgsh82oA.js} +1 -1
  26. package/dist/client/assets/{diagram-KO2AKTUF-Delk7lbr.js → diagram-KO2AKTUF-DUwmm3sV.js} +1 -1
  27. package/dist/client/assets/{diagram-LMA3HP47-BVtc_fjo.js → diagram-LMA3HP47-DLGz0g10.js} +1 -1
  28. package/dist/client/assets/{diagram-OG6HWLK6-weIPvUz5.js → diagram-OG6HWLK6-CjS6v8Zz.js} +1 -1
  29. package/dist/client/assets/{erDiagram-TEJ5UH35-DKde70dA.js → erDiagram-TEJ5UH35-DHaCFHn9.js} +1 -1
  30. package/dist/client/assets/{flowDiagram-I6XJVG4X-B7Jrk-6c.js → flowDiagram-I6XJVG4X-E4LSVqs6.js} +1 -1
  31. package/dist/client/assets/{ganttDiagram-6RSMTGT7-CDzWDgnA.js → ganttDiagram-6RSMTGT7-BWywa_xn.js} +1 -1
  32. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-DYZCryuN.js → gitGraphDiagram-PVQCEYII-BK4kWKuB.js} +1 -1
  33. package/dist/client/assets/index-CS2arNNP.js +274 -0
  34. package/dist/client/assets/index-Cb_ZVYaw.css +2 -0
  35. package/dist/client/assets/{infoDiagram-5YYISTIA-DmQOgVKK.js → infoDiagram-5YYISTIA-BX7HzDWX.js} +1 -1
  36. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-DCpu-q-Z.js → ishikawaDiagram-YF4QCWOH-CEnWCNes.js} +1 -1
  37. package/dist/client/assets/{journeyDiagram-JHISSGLW-DhBoglhI.js → journeyDiagram-JHISSGLW-MQPDgPxD.js} +1 -1
  38. package/dist/client/assets/{kanban-definition-UN3LZRKU-BSjvGFTY.js → kanban-definition-UN3LZRKU-PwVLKAnN.js} +1 -1
  39. package/dist/client/assets/{line-ClKBZwDr.js → line-BJMnG1sl.js} +1 -1
  40. package/dist/client/assets/{mermaid-parser.core-BRA4mJ40.js → mermaid-parser.core-Bwv8qN83.js} +1 -1
  41. package/dist/client/assets/{mermaid.core-BZ7kSfEt.js → mermaid.core-DpFOXZmb.js} +3 -3
  42. package/dist/client/assets/{mindmap-definition-RKZ34NQL-DoUdLHgj.js → mindmap-definition-RKZ34NQL-Dt-9JT_z.js} +1 -1
  43. package/dist/client/assets/{pieDiagram-4H26LBE5-NVnzqltb.js → pieDiagram-4H26LBE5-aD3cg6m3.js} +1 -1
  44. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-DOITgkan.js → quadrantDiagram-W4KKPZXB-DUh4hgmW.js} +1 -1
  45. package/dist/client/assets/{requirementDiagram-4Y6WPE33-D0VPxrFE.js → requirementDiagram-4Y6WPE33-DOgz-iLT.js} +1 -1
  46. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-Bx0uU7xV.js → sankeyDiagram-5OEKKPKP-BqpDXW6-.js} +1 -1
  47. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-B4lFL6cO.js → sequenceDiagram-3UESZ5HK-BM0Gvqia.js} +1 -1
  48. package/dist/client/assets/{stateDiagram-AJRCARHV-CsLVsMZ4.js → stateDiagram-AJRCARHV-XZMyDtEy.js} +1 -1
  49. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-C0Qe8FiL.js +1 -0
  50. package/dist/client/assets/{timeline-definition-PNZ67QCA-BkcYpPFI.js → timeline-definition-PNZ67QCA-gqiDwxVu.js} +1 -1
  51. package/dist/client/assets/{vennDiagram-CIIHVFJN-Xc5f2sRQ.js → vennDiagram-CIIHVFJN-MxeqqqyG.js} +1 -1
  52. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-n3Dpk02Q.js → wardleyDiagram-YWT4CUSO-pMgGO6cB.js} +1 -1
  53. package/dist/client/assets/{xychartDiagram-2RQKCTM6-BTMzF8zg.js → xychartDiagram-2RQKCTM6-_VK_NZDn.js} +1 -1
  54. package/dist/client/index.html +2 -2
  55. package/dist/server/db.js +467 -11
  56. package/dist/server/db.js.map +1 -1
  57. package/dist/server/index.js +356 -150
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/lib/activeAutomationChild.js +6 -1
  60. package/dist/server/lib/activeAutomationChild.js.map +1 -1
  61. package/dist/server/lib/agent.js +5 -4
  62. package/dist/server/lib/agent.js.map +1 -1
  63. package/dist/server/lib/automationCheckGate.js +211 -59
  64. package/dist/server/lib/automationCheckGate.js.map +1 -1
  65. package/dist/server/lib/automationProgression.js +78 -10
  66. package/dist/server/lib/automationProgression.js.map +1 -1
  67. package/dist/server/lib/automationReconciliation.js +65 -0
  68. package/dist/server/lib/automationReconciliation.js.map +1 -1
  69. package/dist/server/lib/automationResumeDecision.js +82 -20
  70. package/dist/server/lib/automationResumeDecision.js.map +1 -1
  71. package/dist/server/lib/automationReviewGate.js +147 -0
  72. package/dist/server/lib/automationReviewGate.js.map +1 -0
  73. package/dist/server/lib/bundleActivity.js +20 -0
  74. package/dist/server/lib/bundleActivity.js.map +1 -1
  75. package/dist/server/lib/bundleReviewOperations.js +36 -5
  76. package/dist/server/lib/bundleReviewOperations.js.map +1 -1
  77. package/dist/server/lib/chatTicketProposals.js +2 -1
  78. package/dist/server/lib/chatTicketProposals.js.map +1 -1
  79. package/dist/server/lib/checkDefinitions.js +11 -0
  80. package/dist/server/lib/checkDefinitions.js.map +1 -1
  81. package/dist/server/lib/checkDiagnosticParsers.js +301 -0
  82. package/dist/server/lib/checkDiagnosticParsers.js.map +1 -0
  83. package/dist/server/lib/checkDiagnostics.js +142 -0
  84. package/dist/server/lib/checkDiagnostics.js.map +1 -0
  85. package/dist/server/lib/checkGateEvaluations.js +92 -4
  86. package/dist/server/lib/checkGateEvaluations.js.map +1 -1
  87. package/dist/server/lib/checkRepair.js +1031 -0
  88. package/dist/server/lib/checkRepair.js.map +1 -0
  89. package/dist/server/lib/checkRepairLifecycle.js +56 -0
  90. package/dist/server/lib/checkRepairLifecycle.js.map +1 -0
  91. package/dist/server/lib/checkRepairReconciliation.js +145 -0
  92. package/dist/server/lib/checkRepairReconciliation.js.map +1 -0
  93. package/dist/server/lib/checkRunner.js +142 -25
  94. package/dist/server/lib/checkRunner.js.map +1 -1
  95. package/dist/server/lib/checkRuns.js +75 -9
  96. package/dist/server/lib/checkRuns.js.map +1 -1
  97. package/dist/server/lib/executionReconciliation.js +21 -11
  98. package/dist/server/lib/executionReconciliation.js.map +1 -1
  99. package/dist/server/lib/executionRetryPredicates.js +3 -1
  100. package/dist/server/lib/executionRetryPredicates.js.map +1 -1
  101. package/dist/server/lib/executionRunRetention.js +24 -3
  102. package/dist/server/lib/executionRunRetention.js.map +1 -1
  103. package/dist/server/lib/executionRuns.js +5 -2
  104. package/dist/server/lib/executionRuns.js.map +1 -1
  105. package/dist/server/lib/git.js +5 -1
  106. package/dist/server/lib/git.js.map +1 -1
  107. package/dist/server/lib/lightweightPrompt.js +2 -1
  108. package/dist/server/lib/lightweightPrompt.js.map +1 -1
  109. package/dist/server/lib/planModeQuestions.js +2 -0
  110. package/dist/server/lib/planModeQuestions.js.map +1 -1
  111. package/dist/server/lib/planQuestions.js +39 -7
  112. package/dist/server/lib/planQuestions.js.map +1 -1
  113. package/dist/server/lib/projectAutoConfig.js +2 -1
  114. package/dist/server/lib/projectAutoConfig.js.map +1 -1
  115. package/dist/server/lib/projectMemorySuggestions.js +2 -1
  116. package/dist/server/lib/projectMemorySuggestions.js.map +1 -1
  117. package/dist/server/lib/projects.js +57 -9
  118. package/dist/server/lib/projects.js.map +1 -1
  119. package/dist/server/lib/pullRequestContent.js +14 -0
  120. package/dist/server/lib/pullRequestContent.js.map +1 -1
  121. package/dist/server/lib/requiredCheckPolicy.js +88 -18
  122. package/dist/server/lib/requiredCheckPolicy.js.map +1 -1
  123. package/dist/server/lib/requiredCheckPolicyPrompt.js +46 -0
  124. package/dist/server/lib/requiredCheckPolicyPrompt.js.map +1 -0
  125. package/dist/server/lib/run.js +3 -2
  126. package/dist/server/lib/run.js.map +1 -1
  127. package/dist/server/lib/specDraft.js +6 -0
  128. package/dist/server/lib/specDraft.js.map +1 -1
  129. package/dist/server/lib/specResources.js +42 -0
  130. package/dist/server/lib/specResources.js.map +1 -0
  131. package/dist/server/lib/specs.js +9 -5
  132. package/dist/server/lib/specs.js.map +1 -1
  133. package/dist/server/lib/terminal.js +5 -7
  134. package/dist/server/lib/terminal.js.map +1 -1
  135. package/dist/server/lib/testSessions.js +2 -2
  136. package/dist/server/lib/testSessions.js.map +1 -1
  137. package/dist/server/lib/ticketAutomation.js +10 -3
  138. package/dist/server/lib/ticketAutomation.js.map +1 -1
  139. package/dist/server/lib/ticketAutomationCommit.js +37 -11
  140. package/dist/server/lib/ticketAutomationCommit.js.map +1 -1
  141. package/dist/server/lib/ticketFollowUpOperations.js +24 -9
  142. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  143. package/dist/server/lib/tickets.js +18 -0
  144. package/dist/server/lib/tickets.js.map +1 -1
  145. package/dist/server/lib/types.js +1 -0
  146. package/dist/server/lib/types.js.map +1 -1
  147. package/dist/server/lib/workspaceProcessEnvironment.js +21 -0
  148. package/dist/server/lib/workspaceProcessEnvironment.js.map +1 -0
  149. package/dist/server/workers/build.js +41 -28
  150. package/dist/server/workers/build.js.map +1 -1
  151. package/dist/server/workers/chat.js +4 -3
  152. package/dist/server/workers/chat.js.map +1 -1
  153. package/dist/server/workers/followUp.js +99 -103
  154. package/dist/server/workers/followUp.js.map +1 -1
  155. package/dist/server/workers/plan.js +9 -4
  156. package/dist/server/workers/plan.js.map +1 -1
  157. package/dist/server/workers/planFollowUp.js +5 -6
  158. package/dist/server/workers/planFollowUp.js.map +1 -1
  159. package/dist/server/workers/review.js +38 -6
  160. package/dist/server/workers/review.js.map +1 -1
  161. package/dist/server/workers/specSession.js +10 -4
  162. package/dist/server/workers/specSession.js.map +1 -1
  163. package/package.json +1 -1
  164. package/dist/client/assets/VerificationDialog-DEKvZG75.js +0 -4
  165. package/dist/client/assets/channel-BvcRv90i.js +0 -1
  166. package/dist/client/assets/classDiagram-4FO5ZUOK-IuovJyxl.js +0 -1
  167. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-BBJ3avX6.js +0 -1
  168. package/dist/client/assets/index-BlKOx9Vf.css +0 -2
  169. package/dist/client/assets/index-CmaBDvIB.js +0 -273
  170. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-CvrvaIdF.js +0 -1
@@ -1,21 +1,43 @@
1
1
  import db from '../db.js';
2
2
  import { getAutomationProgression, waitAutomationProgression } from './automationProgression.js';
3
- import { evaluateCheckGate, getCheckGateEvaluation, insertCheckGateEvaluation, } from './checkGateEvaluations.js';
3
+ import { createRequiredCheckGateFailure, evaluateCheckGate, formatRequiredCheckGateFailureMessage, getCheckGateEvaluation, insertCheckGateEvaluation, serializeRequiredCheckGateFailure, } from './checkGateEvaluations.js';
4
4
  import { startCheckBatch, waitForCheckBatch } from './checkRunner.js';
5
5
  import { findActiveCheckBatchForTarget, getCheckBatchDetails, listCheckAttemptDetails, } from './checkRuns.js';
6
6
  import { captureCheckWorkspaceIdentity } from './checkWorkspaceIdentity.js';
7
7
  import { getExecutionRun } from './executionRuns.js';
8
8
  import { getProjectById } from './projects.js';
9
- import { getRequiredCheckPolicySnapshotFingerprint, resolveRequiredCheckPolicy } from './requiredCheckPolicy.js';
9
+ import { getInvalidRequiredCheckPolicyFingerprint, getRequiredCheckPolicySnapshotFingerprint, resolveRequiredCheckPolicy, } from './requiredCheckPolicy.js';
10
10
  import { getBundle, getProjectRootBundle } from './tickets.js';
11
11
  import { isBuildTicketCommitCheckpointProgression } from './buildTicketCommit.js';
12
+ import { getActiveCheckRepairOwnerForRerun } from './checkRepairLifecycle.js';
12
13
  export class AutomationCheckGateError extends Error {
13
14
  reasonCode;
14
- constructor(reasonCode, message) {
15
- super(message);
15
+ automationPauseRecorded;
16
+ requiredCheckGateFailure;
17
+ constructor(reasonCode, message, automationPauseRecorded = false, requiredCheckGateFailure = null) {
18
+ const failure = typeof message === 'string' ? requiredCheckGateFailure : message;
19
+ const messageText = typeof message === 'string'
20
+ ? message
21
+ : formatRequiredCheckGateFailureMessage(message.boundaryKind, message.reasonCodes);
22
+ super(messageText);
16
23
  this.reasonCode = reasonCode;
24
+ this.automationPauseRecorded = automationPauseRecorded;
25
+ this.requiredCheckGateFailure = failure;
17
26
  }
18
27
  }
28
+ const getErrorMessage = (error) => error instanceof Error ? error.message : String(error);
29
+ const captureWorkspaceIdentityOrUnavailable = async (cwd) => {
30
+ try {
31
+ return await captureCheckWorkspaceIdentity(cwd);
32
+ }
33
+ catch {
34
+ return {
35
+ state: 'unavailable',
36
+ reason: 'worktree_unavailable',
37
+ message: 'Required-check workspace identity could not be captured',
38
+ };
39
+ }
40
+ };
19
41
  const getProgressionSnapshot = (projectId, bundleId, progressionRunId) => {
20
42
  const progression = getAutomationProgression(projectId, bundleId);
21
43
  if (!progression || progression.id !== progressionRunId || progression.status !== 'running') {
@@ -48,22 +70,69 @@ const getLiveContext = (input) => {
48
70
  const getTarget = (bundle) => bundle.kind === 'project_root'
49
71
  ? { targetKind: 'repo_root', targetBundleId: null }
50
72
  : { targetKind: 'bundle', targetBundleId: bundle.id };
51
- const getPolicy = (project, bundle) => {
73
+ const getPolicy = (project, bundle, boundaryKind) => {
52
74
  const target = getTarget(bundle);
53
- const resolution = resolveRequiredCheckPolicy(project);
75
+ const resolution = resolveRequiredCheckPolicy(project, { boundaryKind });
54
76
  if (resolution.status === 'invalid') {
55
- throw new AutomationCheckGateError('required_checks_failed', `Required-check policy is invalid: ${resolution.error}`);
77
+ throw new AutomationCheckGateError('required_checks_failed', createRequiredCheckGateFailure(boundaryKind, ['policy_invalid']));
56
78
  }
57
79
  const policy = resolution.policy;
58
80
  return {
59
81
  target,
60
82
  policy: {
61
83
  ...policy,
62
- fingerprint: getRequiredCheckPolicySnapshotFingerprint(policy, target),
84
+ status: 'valid',
85
+ fingerprint: getRequiredCheckPolicySnapshotFingerprint(policy, target, boundaryKind),
63
86
  },
64
87
  };
65
88
  };
66
- const listCompletedEvidence = (projectId, bundle, progressionRunId) => {
89
+ const getInvalidPolicySnapshot = (error, target, boundaryKind) => ({
90
+ status: 'invalid',
91
+ error,
92
+ definitionIds: [],
93
+ definitions: [],
94
+ fingerprint: getInvalidRequiredCheckPolicyFingerprint(error, target, boundaryKind),
95
+ });
96
+ const persistInvalidPolicyEvaluation = async (input, progression, project, bundle, error, batch = null) => {
97
+ let workspaceIdentity;
98
+ try {
99
+ workspaceIdentity = await captureCheckWorkspaceIdentity(input.cwd);
100
+ }
101
+ catch (captureError) {
102
+ workspaceIdentity = {
103
+ state: 'unavailable',
104
+ reason: 'worktree_unavailable',
105
+ message: `Workspace identity capture failed: ${getErrorMessage(captureError)}`,
106
+ };
107
+ }
108
+ const target = getTarget(bundle);
109
+ return insertCheckGateEvaluation({
110
+ project: { id: project.id, name: project.name, repoPath: project.repo_path },
111
+ target,
112
+ bundle: bundle.kind === 'project_root' ? null : { id: bundle.id, name: bundle.name, branch: bundle.branch },
113
+ progression,
114
+ boundaryKind: input.boundaryKind,
115
+ policy: getInvalidPolicySnapshot(error, target, input.boundaryKind),
116
+ workspaceIdentity,
117
+ intendedIdentity: {
118
+ kind: 'workspace',
119
+ fingerprint: workspaceIdentity.state === 'available' ? workspaceIdentity.fingerprint : 'unavailable',
120
+ },
121
+ batch,
122
+ attempts: batch ? listCheckAttemptDetails(project.id, batch.execution_run_id) : [],
123
+ });
124
+ };
125
+ const blockInvalidPolicy = async (input, progression, project, bundle, error, batch = null) => {
126
+ const failure = createRequiredCheckGateFailure(input.boundaryKind, ['policy_invalid']);
127
+ try {
128
+ await persistInvalidPolicyEvaluation(input, progression, project, bundle, error, batch);
129
+ }
130
+ catch {
131
+ return throwBlocked(input, 'required_checks_failed', failure, batch?.execution_run_id ?? null);
132
+ }
133
+ return throwBlocked(input, 'required_checks_failed', failure, batch?.execution_run_id ?? null);
134
+ };
135
+ const listCompletedEvidence = (projectId, bundle, progressionRunId, boundaryKind) => {
67
136
  const target = getTarget(bundle);
68
137
  const rows = db.prepare(`
69
138
  SELECT run.id
@@ -71,9 +140,11 @@ const listCompletedEvidence = (projectId, bundle, progressionRunId) => {
71
140
  JOIN check_batch_details details ON details.execution_run_id = run.id
72
141
  WHERE run.project_id = ? AND run.status = 'completed'
73
142
  AND details.target_kind = ? AND details.target_bundle_id IS ?
74
- AND (run.initiated_by <> 'automation' OR run.parent_run_id = ?)
143
+ AND run.initiated_by = 'automation'
144
+ AND run.parent_run_id = ?
145
+ AND details.automation_boundary_purpose = ?
75
146
  ORDER BY run.rowid DESC
76
- `).all(projectId, target.targetKind, target.targetBundleId, progressionRunId);
147
+ `).all(projectId, target.targetKind, target.targetBundleId, progressionRunId, boundaryKind);
77
148
  return rows.flatMap(row => {
78
149
  const batch = getCheckBatchDetails(projectId, row.id);
79
150
  return batch ? [batch] : [];
@@ -81,7 +152,7 @@ const listCompletedEvidence = (projectId, bundle, progressionRunId) => {
81
152
  };
82
153
  const buildEvaluationInput = (input, progression, workspaceIdentity, intendedIdentity, batch, blockingReasonCodes = []) => {
83
154
  const { project, bundle } = getLiveContext(input);
84
- const { target, policy } = getPolicy(project, bundle);
155
+ const { target, policy } = getPolicy(project, bundle, input.boundaryKind);
85
156
  return {
86
157
  project: { id: project.id, name: project.name, repoPath: project.repo_path },
87
158
  target,
@@ -110,15 +181,19 @@ const pauseBlockedGate = (input, reasonCode, reason, batchRunId) => {
110
181
  pauseReason: reason,
111
182
  reasonCode,
112
183
  pausedStageRunId: batchRun?.parent_run_id === input.progressionRunId ? batchRun.id : null,
184
+ pausedBoundaryPurpose: input.boundaryKind === 'check_completion' ? null : input.boundaryKind,
113
185
  broadcaster: input.broadcaster,
114
186
  });
115
187
  };
116
188
  const throwBlocked = (input, reasonCode, reason, batchRunId) => {
117
- pauseBlockedGate(input, reasonCode, reason, batchRunId);
118
- throw new AutomationCheckGateError(reasonCode, reason);
189
+ const failure = typeof reason === 'string' ? null : reason;
190
+ const resolvedFailure = failure ?? createRequiredCheckGateFailure(input.boundaryKind, ['missing_evidence']);
191
+ const pauseReason = serializeRequiredCheckGateFailure(resolvedFailure);
192
+ pauseBlockedGate(input, reasonCode, pauseReason, batchRunId);
193
+ throw new AutomationCheckGateError(reasonCode, resolvedFailure, true, resolvedFailure);
119
194
  };
120
195
  const findPassingEvidence = (input, progression, workspaceIdentity) => {
121
- for (const batch of listCompletedEvidence(input.project.id, input.bundle, input.progressionRunId)) {
196
+ for (const batch of listCompletedEvidence(input.project.id, input.bundle, input.progressionRunId, input.boundaryKind)) {
122
197
  const candidate = buildEvaluationInput(input, progression, workspaceIdentity, { kind: 'workspace', fingerprint: workspaceIdentity.fingerprint }, batch);
123
198
  if (evaluateCheckGate(candidate).decision === 'passed') {
124
199
  return batch;
@@ -128,7 +203,7 @@ const findPassingEvidence = (input, progression, workspaceIdentity) => {
128
203
  };
129
204
  const obtainEvidence = async (input, progression, workspaceIdentity) => {
130
205
  const { project, bundle } = getLiveContext(input);
131
- const { target, policy } = getPolicy(project, bundle);
206
+ const { target, policy } = getPolicy(project, bundle, input.boundaryKind);
132
207
  if (policy.definitionIds.length === 0) {
133
208
  return null;
134
209
  }
@@ -139,9 +214,14 @@ const obtainEvidence = async (input, progression, workspaceIdentity) => {
139
214
  const activeBatchId = findActiveCheckBatchForTarget(input.project.id, target.targetKind, target.targetBundleId);
140
215
  if (activeBatchId) {
141
216
  const activeRun = getExecutionRun(input.project.id, activeBatchId);
217
+ const activeBatch = getCheckBatchDetails(input.project.id, activeBatchId);
142
218
  if (activeRun?.parent_run_id !== input.progressionRunId || activeRun.initiated_by !== 'automation') {
143
219
  persistBlockedEvaluation(input, progression, workspaceIdentity, null, ['target_busy']);
144
- return throwBlocked(input, 'target_busy', 'Required checks are already running for this target', null);
220
+ return throwBlocked(input, 'target_busy', createRequiredCheckGateFailure(input.boundaryKind, ['target_busy']), null);
221
+ }
222
+ if (activeBatch?.automation_boundary_purpose !== input.boundaryKind) {
223
+ persistBlockedEvaluation(input, progression, workspaceIdentity, activeBatch ?? null);
224
+ return throwBlocked(input, 'invalid_lineage', createRequiredCheckGateFailure(input.boundaryKind, ['target_mismatch']), activeBatchId);
145
225
  }
146
226
  return waitForCheckBatch(input.project.id, activeBatchId);
147
227
  }
@@ -157,6 +237,7 @@ const obtainEvidence = async (input, progression, workspaceIdentity) => {
157
237
  availableDefinitions: policy.definitions,
158
238
  sourceReference: { kind: 'bundle', id: bundle.id, label: bundle.name },
159
239
  automationParentRunId: input.progressionRunId,
240
+ automationBoundaryKind: input.boundaryKind,
160
241
  }, input.broadcaster);
161
242
  }
162
243
  catch (error) {
@@ -165,32 +246,43 @@ const obtainEvidence = async (input, progression, workspaceIdentity) => {
165
246
  const conflictRun = getExecutionRun(project.id, conflict);
166
247
  if (conflictRun?.parent_run_id !== input.progressionRunId) {
167
248
  persistBlockedEvaluation(input, progression, workspaceIdentity, null, ['target_busy']);
168
- return throwBlocked(input, 'target_busy', 'Required checks are already running for this target', null);
249
+ return throwBlocked(input, 'target_busy', createRequiredCheckGateFailure(input.boundaryKind, ['target_busy']), null);
250
+ }
251
+ const conflictBatch = getCheckBatchDetails(input.project.id, conflict);
252
+ if (conflictBatch?.automation_boundary_purpose !== input.boundaryKind) {
253
+ persistBlockedEvaluation(input, progression, workspaceIdentity, conflictBatch ?? null);
254
+ return throwBlocked(input, 'invalid_lineage', createRequiredCheckGateFailure(input.boundaryKind, ['target_mismatch']), conflict);
169
255
  }
170
256
  return waitForCheckBatch(input.project.id, conflict);
171
257
  }
172
- throw error;
258
+ persistBlockedEvaluation(input, progression, workspaceIdentity, null, ['check_start_failed']);
259
+ return throwBlocked(input, 'required_checks_failed', createRequiredCheckGateFailure(input.boundaryKind, ['check_start_failed']), null);
173
260
  }
174
261
  return waitForCheckBatch(input.project.id, batch.execution_run_id);
175
262
  };
176
263
  const authorizeRequiredAutomationBoundary = async (input, progression) => {
177
- const initialWorkspace = await captureCheckWorkspaceIdentity(input.cwd);
264
+ const initialWorkspace = await captureWorkspaceIdentityOrUnavailable(input.cwd);
178
265
  if (initialWorkspace.state !== 'available') {
179
266
  persistBlockedEvaluation(input, progression, initialWorkspace, null);
180
- return throwBlocked(input, 'required_checks_failed', `Required-check workspace is unavailable: ${initialWorkspace.message}`, null);
267
+ return throwBlocked(input, 'required_checks_failed', createRequiredCheckGateFailure(input.boundaryKind, ['workspace_unavailable']), null);
181
268
  }
182
269
  const batch = await obtainEvidence(input, progression, initialWorkspace);
183
- const workspaceIdentity = await captureCheckWorkspaceIdentity(input.cwd);
270
+ const workspaceIdentity = await captureWorkspaceIdentityOrUnavailable(input.cwd);
184
271
  if (workspaceIdentity.state !== 'available') {
185
272
  persistBlockedEvaluation(input, progression, workspaceIdentity, batch);
186
- return throwBlocked(input, 'required_checks_failed', `Required-check workspace is unavailable: ${workspaceIdentity.message}`, batch?.execution_run_id ?? null);
273
+ return throwBlocked(input, 'required_checks_failed', createRequiredCheckGateFailure(input.boundaryKind, ['workspace_unavailable']), batch?.execution_run_id ?? null);
187
274
  }
188
275
  const value = await input.prepare();
189
276
  const intendedIdentity = input.resolveIntendedIdentity(value, workspaceIdentity);
190
- const finalWorkspace = await captureCheckWorkspaceIdentity(input.cwd);
277
+ const finalWorkspace = await captureWorkspaceIdentityOrUnavailable(input.cwd);
278
+ const finalLive = getLiveContext(input);
279
+ const finalResolution = resolveRequiredCheckPolicy(finalLive.project, { boundaryKind: input.boundaryKind });
280
+ if (finalResolution.status === 'invalid') {
281
+ return blockInvalidPolicy(input, progression, finalLive.project, finalLive.bundle, finalResolution.error, batch);
282
+ }
191
283
  const evaluation = insertCheckGateEvaluation(buildEvaluationInput(input, getProgressionSnapshot(input.project.id, input.bundle.id, input.progressionRunId), finalWorkspace, intendedIdentity, batch));
192
284
  if (evaluation.decision !== 'passed') {
193
- return throwBlocked(input, 'required_checks_failed', `Required checks did not authorize ${input.boundaryKind}: ${evaluation.reasonCodes.join(', ')}`, batch?.execution_run_id ?? null);
285
+ return throwBlocked(input, 'required_checks_failed', createRequiredCheckGateFailure(input.boundaryKind, evaluation.reasonCodes), batch?.execution_run_id ?? null);
194
286
  }
195
287
  return {
196
288
  requirement: 'required',
@@ -204,29 +296,47 @@ const authorizeRequiredAutomationBoundary = async (input, progression) => {
204
296
  export const authorizeAutomationBoundary = async (input) => {
205
297
  const progression = getProgressionSnapshot(input.project.id, input.bundle.id, input.progressionRunId);
206
298
  assertRequiredProgressionPurpose(input);
207
- try {
208
- const live = getLiveContext(input);
209
- const { policy } = getPolicy(live.project, live.bundle);
210
- if (policy.definitionIds.length === 0) {
211
- const value = await input.prepare();
212
- const currentLive = getLiveContext(input);
213
- const current = getPolicy(currentLive.project, currentLive.bundle).policy;
214
- if (current.definitionIds.length !== 0 || current.fingerprint !== policy.fingerprint) {
215
- throw new AutomationCheckGateError('required_checks_failed', 'Required-check policy changed while the automation stage was prepared');
216
- }
217
- return {
218
- requirement: 'not_required',
219
- policyFingerprint: policy.fingerprint,
220
- value,
221
- };
299
+ const live = getLiveContext(input);
300
+ const resolution = resolveRequiredCheckPolicy(live.project, { boundaryKind: input.boundaryKind });
301
+ if (resolution.status === 'invalid') {
302
+ return blockInvalidPolicy(input, progression, live.project, live.bundle, resolution.error);
303
+ }
304
+ const { policy } = getPolicy(live.project, live.bundle, input.boundaryKind);
305
+ if (policy.definitionIds.length === 0) {
306
+ const value = await input.prepare();
307
+ const currentLive = getLiveContext(input);
308
+ const currentResolution = resolveRequiredCheckPolicy(currentLive.project, { boundaryKind: input.boundaryKind });
309
+ if (currentResolution.status === 'invalid') {
310
+ return blockInvalidPolicy(input, progression, currentLive.project, currentLive.bundle, currentResolution.error);
222
311
  }
312
+ const current = getPolicy(currentLive.project, currentLive.bundle, input.boundaryKind).policy;
313
+ if (current.definitionIds.length !== 0 || current.fingerprint !== policy.fingerprint) {
314
+ persistBlockedEvaluation(input, progression, {
315
+ state: 'unavailable',
316
+ reason: 'worktree_unavailable',
317
+ message: 'Required-check policy changed while the automation stage was prepared',
318
+ }, null);
319
+ return throwBlocked(input, 'required_checks_failed', createRequiredCheckGateFailure(input.boundaryKind, ['policy_drift']), null);
320
+ }
321
+ return {
322
+ requirement: 'not_required',
323
+ policyFingerprint: policy.fingerprint,
324
+ value,
325
+ };
326
+ }
327
+ try {
223
328
  return await authorizeRequiredAutomationBoundary(input, progression);
224
329
  }
225
330
  catch (error) {
226
- if (error instanceof AutomationCheckGateError
227
- && error.reasonCode === 'required_checks_failed'
228
- && error.message.startsWith('Required-check policy')) {
229
- pauseBlockedGate(input, error.reasonCode, error.message, null);
331
+ if (error instanceof AutomationCheckGateError && !error.automationPauseRecorded) {
332
+ const currentLive = getLiveContext(input);
333
+ const currentResolution = resolveRequiredCheckPolicy(currentLive.project, { boundaryKind: input.boundaryKind });
334
+ if (currentResolution.status === 'invalid') {
335
+ return blockInvalidPolicy(input, progression, currentLive.project, currentLive.bundle, currentResolution.error);
336
+ }
337
+ if (error.requiredCheckGateFailure) {
338
+ return throwBlocked(input, error.reasonCode, error.requiredCheckGateFailure, null);
339
+ }
230
340
  }
231
341
  throw error;
232
342
  }
@@ -242,36 +352,42 @@ export const assertAutomationAuthorizationCurrent = async ({ project, bundle, pr
242
352
  || evaluation.boundaryKind !== boundaryKind) {
243
353
  throw new AutomationCheckGateError('invalid_lineage', 'Required-check authorization lineage is invalid');
244
354
  }
245
- const workspace = await captureCheckWorkspaceIdentity(cwd);
355
+ const workspace = await captureWorkspaceIdentityOrUnavailable(cwd);
246
356
  getProgressionSnapshot(project.id, bundle.id, progressionRunId);
247
357
  const liveProject = getProjectById(project.id);
248
358
  const liveBundle = getBundle(bundle.id, project.id);
249
359
  if (!liveProject || !liveBundle) {
250
360
  throw new AutomationCheckGateError('invalid_lineage', 'Automation project or bundle no longer exists');
251
361
  }
252
- const { policy } = getPolicy(liveProject, liveBundle);
362
+ const { policy } = getPolicy(liveProject, liveBundle, boundaryKind);
253
363
  const expectedFingerprint = evaluation.intendedIdentity.kind === 'workspace'
254
364
  ? evaluation.intendedIdentity.fingerprint
255
365
  : evaluation.intendedIdentity.workspaceFingerprint;
256
- if (policy.fingerprint !== evaluation.policy.fingerprint
257
- || workspace.state !== 'available'
258
- || workspace.fingerprint !== expectedFingerprint
259
- || evaluation.intendedIdentity.kind === 'git_tree'
260
- || (evaluation.intendedIdentity.kind === 'commit' && workspace.head !== evaluation.intendedIdentity.commitSha)) {
261
- throw new AutomationCheckGateError('required_checks_failed', 'Required-check authorization is no longer current');
366
+ const reasonCodes = [
367
+ ...(policy.fingerprint !== evaluation.policy.fingerprint ? ['policy_drift'] : []),
368
+ ...(workspace.state !== 'available' ? ['workspace_unavailable'] : []),
369
+ ...(workspace.state === 'available'
370
+ && (workspace.fingerprint !== expectedFingerprint
371
+ || evaluation.intendedIdentity.kind === 'git_tree'
372
+ || (evaluation.intendedIdentity.kind === 'commit' && workspace.head !== evaluation.intendedIdentity.commitSha))
373
+ ? ['intended_identity_mismatch']
374
+ : []),
375
+ ];
376
+ if (reasonCodes.length > 0) {
377
+ throw new AutomationCheckGateError('required_checks_failed', formatRequiredCheckGateFailureMessage(boundaryKind, reasonCodes), false, createRequiredCheckGateFailure(boundaryKind, reasonCodes));
262
378
  }
263
379
  return evaluation;
264
380
  };
265
- export const assertAutomationBoundaryNotRequired = ({ project, bundle, progressionRunId, policyFingerprint, }) => {
381
+ export const assertAutomationBoundaryNotRequired = ({ project, bundle, progressionRunId, policyFingerprint, boundaryKind, }) => {
266
382
  getProgressionSnapshot(project.id, bundle.id, progressionRunId);
267
383
  const liveProject = getProjectById(project.id);
268
384
  const liveBundle = getBundle(bundle.id, project.id);
269
385
  if (!liveProject || !liveBundle) {
270
386
  throw new AutomationCheckGateError('invalid_lineage', 'Automation project or bundle no longer exists');
271
387
  }
272
- const { policy } = getPolicy(liveProject, liveBundle);
388
+ const { policy } = getPolicy(liveProject, liveBundle, boundaryKind);
273
389
  if (policy.definitionIds.length !== 0 || policy.fingerprint !== policyFingerprint) {
274
- throw new AutomationCheckGateError('required_checks_failed', 'Required checks are now configured for this automation boundary');
390
+ throw new AutomationCheckGateError('required_checks_failed', createRequiredCheckGateFailure(boundaryKind, ['policy_drift']));
275
391
  }
276
392
  };
277
393
  export const blockInterruptedAutomationCheckBatch = (projectId, batchRunId) => {
@@ -280,6 +396,9 @@ export const blockInterruptedAutomationCheckBatch = (projectId, batchRunId) => {
280
396
  if (!run?.parent_run_id || run.initiated_by !== 'automation' || !batch) {
281
397
  return false;
282
398
  }
399
+ if (getActiveCheckRepairOwnerForRerun(projectId, batchRunId, run.parent_run_id)) {
400
+ return false;
401
+ }
283
402
  const project = getProjectById(projectId);
284
403
  const bundle = batch.target_kind === 'repo_root'
285
404
  ? getProjectRootBundle(projectId)
@@ -288,17 +407,50 @@ export const blockInterruptedAutomationCheckBatch = (projectId, batchRunId) => {
288
407
  return false;
289
408
  }
290
409
  const progression = getProgressionSnapshot(projectId, bundle.id, run.parent_run_id);
410
+ const boundaryKind = batch.automation_boundary_purpose ?? 'check_completion';
291
411
  let resolved;
292
412
  try {
293
- resolved = getPolicy(project, bundle);
413
+ resolved = getPolicy(project, bundle, boundaryKind);
294
414
  }
295
415
  catch (error) {
416
+ const resolution = resolveRequiredCheckPolicy(project, { boundaryKind });
417
+ const failure = error instanceof AutomationCheckGateError && error.requiredCheckGateFailure
418
+ ? error.requiredCheckGateFailure
419
+ : createRequiredCheckGateFailure(boundaryKind, ['policy_invalid']);
420
+ if (resolution.status === 'invalid') {
421
+ const target = getTarget(bundle);
422
+ const workspaceIdentity = {
423
+ state: 'unavailable',
424
+ reason: 'worktree_unavailable',
425
+ message: 'The server restarted before required checks completed',
426
+ };
427
+ try {
428
+ insertCheckGateEvaluation({
429
+ project: { id: project.id, name: project.name, repoPath: project.repo_path },
430
+ target,
431
+ bundle: bundle.kind === 'project_root' ? null : { id: bundle.id, name: bundle.name, branch: bundle.branch },
432
+ progression,
433
+ boundaryKind,
434
+ policy: getInvalidPolicySnapshot(resolution.error, target, boundaryKind),
435
+ workspaceIdentity,
436
+ intendedIdentity: {
437
+ kind: 'workspace',
438
+ fingerprint: batch.initial_workspace_identity.state === 'available'
439
+ ? batch.initial_workspace_identity.fingerprint
440
+ : 'unavailable',
441
+ },
442
+ batch,
443
+ attempts: listCheckAttemptDetails(projectId, batchRunId),
444
+ });
445
+ }
446
+ catch { }
447
+ }
296
448
  waitAutomationProgression({
297
449
  projectId,
298
450
  bundleId: bundle.id,
299
451
  progressionRunId: progression.runId,
300
452
  pauseCode: 'required_checks',
301
- pauseReason: error instanceof Error ? error.message : String(error),
453
+ pauseReason: serializeRequiredCheckGateFailure(failure),
302
454
  reasonCode: 'required_checks_failed',
303
455
  pausedStageRunId: batchRunId,
304
456
  });
@@ -315,7 +467,7 @@ export const blockInterruptedAutomationCheckBatch = (projectId, batchRunId) => {
315
467
  target,
316
468
  bundle: bundle.kind === 'project_root' ? null : { id: bundle.id, name: bundle.name, branch: bundle.branch },
317
469
  progression,
318
- boundaryKind: 'check_completion',
470
+ boundaryKind,
319
471
  policy,
320
472
  workspaceIdentity,
321
473
  intendedIdentity: {
@@ -332,7 +484,7 @@ export const blockInterruptedAutomationCheckBatch = (projectId, batchRunId) => {
332
484
  bundleId: bundle.id,
333
485
  progressionRunId: progression.runId,
334
486
  pauseCode: 'required_checks',
335
- pauseReason: 'Required checks were interrupted by a server restart',
487
+ pauseReason: serializeRequiredCheckGateFailure(createRequiredCheckGateFailure(boundaryKind, ['batch_not_completed'])),
336
488
  reasonCode: 'required_checks_failed',
337
489
  pausedStageRunId: batchRunId,
338
490
  });
@@ -1 +1 @@
1
- {"version":3,"file":"automationCheckGate.js","sourceRoot":"","sources":["../../../server/lib/automationCheckGate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"automationCheckGate.js","sourceRoot":"","sources":["../../../server/lib/automationCheckGate.ts"],"names":[],"mappings":"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"}