@straiffi/archon 1.8.12 → 1.8.14

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 (139) hide show
  1. package/dist/client/assets/{ActivityView-CEETnHri.js → ActivityView-DYDYyqIN.js} +1 -1
  2. package/dist/client/assets/{GitHubActionsDialog-CjBW65OR.js → GitHubActionsDialog-jhi4GOyV.js} +1 -1
  3. package/dist/client/assets/{RepositoryGraphDialog-F3C0n89W.js → RepositoryGraphDialog-BZV0vHu6.js} +1 -1
  4. package/dist/client/assets/{VerificationDialog-DD1CLydA.js → VerificationDialog-Sc6e8AKH.js} +1 -1
  5. package/dist/client/assets/{architectureDiagram-3BPJPVTR-COl_GdZ6.js → architectureDiagram-3BPJPVTR-DFbki8mi.js} +1 -1
  6. package/dist/client/assets/{blockDiagram-GPEHLZMM-qojIlH-q.js → blockDiagram-GPEHLZMM-BZFehG8P.js} +1 -1
  7. package/dist/client/assets/{c4Diagram-AAUBKEIU-DFtG4fMg.js → c4Diagram-AAUBKEIU-FVDXRu1t.js} +1 -1
  8. package/dist/client/assets/channel-D1kOpezG.js +1 -0
  9. package/dist/client/assets/{chunk-2J33WTMH-TJkOJXbn.js → chunk-2J33WTMH-4tuVZaT0.js} +1 -1
  10. package/dist/client/assets/{chunk-3OPIFGDE-CELQ603z.js → chunk-3OPIFGDE-DSn14S35.js} +1 -1
  11. package/dist/client/assets/{chunk-5ZQYHXKU-BgPEJ16b.js → chunk-5ZQYHXKU-Cwx1KNjg.js} +1 -1
  12. package/dist/client/assets/{chunk-727SXJPM-Biph-aPf.js → chunk-727SXJPM-Odza4hes.js} +1 -1
  13. package/dist/client/assets/{chunk-AQP2D5EJ-CPVToZH6.js → chunk-AQP2D5EJ-BmVoQT7M.js} +1 -1
  14. package/dist/client/assets/{chunk-CSCIHK7Q-BHO9oB4A.js → chunk-CSCIHK7Q-Bg7Ktx0B.js} +1 -1
  15. package/dist/client/assets/{chunk-KSCS5N6A-B8vatrko.js → chunk-KSCS5N6A-2tnhar2x.js} +1 -1
  16. package/dist/client/assets/{chunk-L5ZTLDWV-DvzBHR4-.js → chunk-L5ZTLDWV-dAyg8qMJ.js} +1 -1
  17. package/dist/client/assets/{chunk-LZXEDZCA-Bm8cj-JK.js → chunk-LZXEDZCA-0gElxrlR.js} +2 -2
  18. package/dist/client/assets/{chunk-ND2GUHAM-BPQZvPl9.js → chunk-ND2GUHAM-Bu-8Lz91.js} +1 -1
  19. package/dist/client/assets/{chunk-NZK2D7GU-DEQVA6Ya.js → chunk-NZK2D7GU-CInZFdzd.js} +1 -1
  20. package/dist/client/assets/{chunk-O5CBEL6O-hPGqWilt.js → chunk-O5CBEL6O-rAzpvdNR.js} +1 -1
  21. package/dist/client/assets/{chunk-WU5MYG2G-D0VvFXkQ.js → chunk-WU5MYG2G-DOOw2vq7.js} +1 -1
  22. package/dist/client/assets/classDiagram-4FO5ZUOK-C253nwny.js +1 -0
  23. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-DFgDA23g.js +1 -0
  24. package/dist/client/assets/{dagre-BM42HDAG-rmJlMuw_.js → dagre-BM42HDAG-Dgua1iuh.js} +1 -1
  25. package/dist/client/assets/{diagram-2AECGRRQ-BqejYr09.js → diagram-2AECGRRQ-odacwlwu.js} +1 -1
  26. package/dist/client/assets/{diagram-5GNKFQAL-DGSf1BNT.js → diagram-5GNKFQAL-BiKjFmJ1.js} +1 -1
  27. package/dist/client/assets/{diagram-KO2AKTUF-e_TRdqvx.js → diagram-KO2AKTUF-CmYcvFri.js} +1 -1
  28. package/dist/client/assets/{diagram-LMA3HP47-CTSnwgUq.js → diagram-LMA3HP47-ncx0RBuX.js} +1 -1
  29. package/dist/client/assets/{diagram-OG6HWLK6-mUn9Y0aC.js → diagram-OG6HWLK6-DbchKIzw.js} +1 -1
  30. package/dist/client/assets/{erDiagram-TEJ5UH35-TmdWUwfA.js → erDiagram-TEJ5UH35-CMnpvRyQ.js} +1 -1
  31. package/dist/client/assets/{flowDiagram-I6XJVG4X-CoE0KTIp.js → flowDiagram-I6XJVG4X-Bi02_PK5.js} +1 -1
  32. package/dist/client/assets/{ganttDiagram-6RSMTGT7-FkX1d1D7.js → ganttDiagram-6RSMTGT7-BiS992US.js} +1 -1
  33. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CXze3DV2.js → gitGraphDiagram-PVQCEYII-Cc1hrTsT.js} +1 -1
  34. package/dist/client/assets/index-B1gdJKwK.js +275 -0
  35. package/dist/client/assets/index-CCQwWUKF.css +2 -0
  36. package/dist/client/assets/{infoDiagram-5YYISTIA-CO0CivOy.js → infoDiagram-5YYISTIA-BKVfqJCe.js} +1 -1
  37. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-pEp8gScG.js → ishikawaDiagram-YF4QCWOH-B-IbFOty.js} +1 -1
  38. package/dist/client/assets/{journeyDiagram-JHISSGLW-BAnBAX-u.js → journeyDiagram-JHISSGLW-DAZBgAQW.js} +1 -1
  39. package/dist/client/assets/{kanban-definition-UN3LZRKU-Cqe-m5fR.js → kanban-definition-UN3LZRKU-Bkr_fXev.js} +1 -1
  40. package/dist/client/assets/{line-CKXoUXdX.js → line-CROuuXDO.js} +1 -1
  41. package/dist/client/assets/{mermaid-parser.core-7XZHbu9R.js → mermaid-parser.core-DrBw_Rsc.js} +1 -1
  42. package/dist/client/assets/{mermaid.core-CsF9gbdO.js → mermaid.core-pPd6OYYj.js} +3 -3
  43. package/dist/client/assets/{mindmap-definition-RKZ34NQL-88fK1Uq_.js → mindmap-definition-RKZ34NQL-BXSd3TZU.js} +1 -1
  44. package/dist/client/assets/{pieDiagram-4H26LBE5-DHFlSAwL.js → pieDiagram-4H26LBE5-DoT7PIZC.js} +1 -1
  45. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-D5WyQ5EU.js → quadrantDiagram-W4KKPZXB-ycZkLowm.js} +1 -1
  46. package/dist/client/assets/{requirementDiagram-4Y6WPE33-DGkMfp_N.js → requirementDiagram-4Y6WPE33-BPkO1yLu.js} +1 -1
  47. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-loJAHDiT.js → sankeyDiagram-5OEKKPKP-D7AvhhCw.js} +1 -1
  48. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-xgcwtjyW.js → sequenceDiagram-3UESZ5HK-C982swnH.js} +1 -1
  49. package/dist/client/assets/{stateDiagram-AJRCARHV-BB95DmQX.js → stateDiagram-AJRCARHV-xvJ3u8lc.js} +1 -1
  50. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-BKQG8NCn.js +1 -0
  51. package/dist/client/assets/{timeline-definition-PNZ67QCA-OCHTEVfL.js → timeline-definition-PNZ67QCA-D89qjzb5.js} +1 -1
  52. package/dist/client/assets/{vennDiagram-CIIHVFJN-Bo_7YNy2.js → vennDiagram-CIIHVFJN-CoKeC__u.js} +1 -1
  53. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-DquywRz0.js → wardleyDiagram-YWT4CUSO-DKhjzvSE.js} +1 -1
  54. package/dist/client/assets/{xychartDiagram-2RQKCTM6-BLNrbCwd.js → xychartDiagram-2RQKCTM6-DFn9ass1.js} +1 -1
  55. package/dist/client/index.html +2 -2
  56. package/dist/server/db.js +77 -2
  57. package/dist/server/db.js.map +1 -1
  58. package/dist/server/index.js +90 -17
  59. package/dist/server/index.js.map +1 -1
  60. package/dist/server/lib/agent.js +205 -242
  61. package/dist/server/lib/agent.js.map +1 -1
  62. package/dist/server/lib/agentProvider.js +64 -0
  63. package/dist/server/lib/agentProvider.js.map +1 -0
  64. package/dist/server/lib/agentRuns.js +1 -0
  65. package/dist/server/lib/agentRuns.js.map +1 -1
  66. package/dist/server/lib/automationProgression.js +6 -2
  67. package/dist/server/lib/automationProgression.js.map +1 -1
  68. package/dist/server/lib/automationReconciliation.js +20 -0
  69. package/dist/server/lib/automationReconciliation.js.map +1 -1
  70. package/dist/server/lib/automationResumeDecision.js +6 -5
  71. package/dist/server/lib/automationResumeDecision.js.map +1 -1
  72. package/dist/server/lib/buildCompletionContinuation.js +1 -1
  73. package/dist/server/lib/buildCompletionContinuation.js.map +1 -1
  74. package/dist/server/lib/claudeAgentProvider.js +48 -0
  75. package/dist/server/lib/claudeAgentProvider.js.map +1 -0
  76. package/dist/server/lib/executionEnvironment.js +20 -0
  77. package/dist/server/lib/executionEnvironment.js.map +1 -0
  78. package/dist/server/lib/executionReconciliation.js +43 -4
  79. package/dist/server/lib/executionReconciliation.js.map +1 -1
  80. package/dist/server/lib/executionRetry.js +16 -9
  81. package/dist/server/lib/executionRetry.js.map +1 -1
  82. package/dist/server/lib/executionRetryPredicates.js +12 -3
  83. package/dist/server/lib/executionRetryPredicates.js.map +1 -1
  84. package/dist/server/lib/git.js +4 -4
  85. package/dist/server/lib/git.js.map +1 -1
  86. package/dist/server/lib/hostExecutionEnvironment.js +77 -0
  87. package/dist/server/lib/hostExecutionEnvironment.js.map +1 -0
  88. package/dist/server/lib/lightweightPrompt.js +17 -54
  89. package/dist/server/lib/lightweightPrompt.js.map +1 -1
  90. package/dist/server/lib/opencodeAgentProvider.js +139 -0
  91. package/dist/server/lib/opencodeAgentProvider.js.map +1 -0
  92. package/dist/server/lib/opencodeErrors.js +35 -0
  93. package/dist/server/lib/opencodeErrors.js.map +1 -0
  94. package/dist/server/lib/opencodePromptOutput.js +112 -0
  95. package/dist/server/lib/opencodePromptOutput.js.map +1 -0
  96. package/dist/server/lib/opencodeSessionOperations.js +348 -0
  97. package/dist/server/lib/opencodeSessionOperations.js.map +1 -0
  98. package/dist/server/lib/opencodeTaskSessions.js +13 -225
  99. package/dist/server/lib/opencodeTaskSessions.js.map +1 -1
  100. package/dist/server/lib/postBuildCheckRuns.js +16 -12
  101. package/dist/server/lib/postBuildCheckRuns.js.map +1 -1
  102. package/dist/server/lib/postBuildChecks.js +45 -43
  103. package/dist/server/lib/postBuildChecks.js.map +1 -1
  104. package/dist/server/lib/previewProxy.js +36 -4
  105. package/dist/server/lib/previewProxy.js.map +1 -1
  106. package/dist/server/lib/projectAutoConfig.js +27 -97
  107. package/dist/server/lib/projectAutoConfig.js.map +1 -1
  108. package/dist/server/lib/projects.js +34 -6
  109. package/dist/server/lib/projects.js.map +1 -1
  110. package/dist/server/lib/reviewContext.js +10 -5
  111. package/dist/server/lib/reviewContext.js.map +1 -1
  112. package/dist/server/lib/reviewFindings.js +201 -27
  113. package/dist/server/lib/reviewFindings.js.map +1 -1
  114. package/dist/server/lib/reviewerConfig.js +23 -0
  115. package/dist/server/lib/reviewerConfig.js.map +1 -0
  116. package/dist/server/lib/specReviewOperations.js +64 -9
  117. package/dist/server/lib/specReviewOperations.js.map +1 -1
  118. package/dist/server/lib/ticketFollowUpOperations.js +28 -0
  119. package/dist/server/lib/ticketFollowUpOperations.js.map +1 -1
  120. package/dist/server/lib/tickets.js +15 -0
  121. package/dist/server/lib/tickets.js.map +1 -1
  122. package/dist/server/lib/types.js.map +1 -1
  123. package/dist/server/workers/build.js +8 -1
  124. package/dist/server/workers/build.js.map +1 -1
  125. package/dist/server/workers/followUp.js +15 -6
  126. package/dist/server/workers/followUp.js.map +1 -1
  127. package/dist/server/workers/plan.js +5 -21
  128. package/dist/server/workers/plan.js.map +1 -1
  129. package/dist/server/workers/review.js +176 -70
  130. package/dist/server/workers/review.js.map +1 -1
  131. package/dist/server/workers/specReview.js +26 -11
  132. package/dist/server/workers/specReview.js.map +1 -1
  133. package/package.json +1 -1
  134. package/dist/client/assets/channel-DJLjk5--.js +0 -1
  135. package/dist/client/assets/classDiagram-4FO5ZUOK-aHXCyXE_.js +0 -1
  136. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-CRPsGis_.js +0 -1
  137. package/dist/client/assets/index-B9S66NLn.css +0 -2
  138. package/dist/client/assets/index-CHsj9z-M.js +0 -275
  139. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-DKhxPOLT.js +0 -1
@@ -2,10 +2,24 @@ import { randomUUID } from 'crypto';
2
2
  import db from '../db.js';
3
3
  const ARCHON_REVIEW_OPENING_PATTERN = /^[ \t]*<archon-review-findings>[ \t]*$/gim;
4
4
  const ARCHON_REVIEW_CLOSING_PATTERN = /^[ \t]*<\\?\/archon-review-findings>[ \t]*$/im;
5
- const TERMINAL_REVIEW_RUN_STATUSES = ['completed', 'parse_failed'];
5
+ export const COMPLETED_REVIEW_RUN_STATUSES = ['completed', 'parse_failed'];
6
+ export const VISIBLE_TERMINAL_REVIEW_RUN_STATUSES = ['completed', 'parse_failed', 'error', 'stopped'];
6
7
  const insertReviewRunStatement = db.prepare(`
7
- INSERT INTO review_runs (id, ticket_id, project_id, worktree_bundle_id, stage, diff_signature, workspace_signature, message_id, status)
8
- VALUES (?, ?, ?, ?, 'review', ?, ?, ?, ?)
8
+ INSERT INTO review_runs (
9
+ id, ticket_id, project_id, worktree_bundle_id, stage, diff_signature,
10
+ workspace_signature, message_id, model, variant, failure_message, status
11
+ )
12
+ VALUES (?, ?, ?, ?, 'review', ?, ?, ?, ?, ?, ?, ?)
13
+ `);
14
+ const updateReviewRunPreparationStatement = db.prepare(`
15
+ UPDATE review_runs
16
+ SET diff_signature = ?, workspace_signature = ?, updated_at = CURRENT_TIMESTAMP
17
+ WHERE id = ? AND status = 'running'
18
+ `);
19
+ const finalizeReviewRunStatement = db.prepare(`
20
+ UPDATE review_runs
21
+ SET message_id = ?, status = ?, failure_message = ?, updated_at = CURRENT_TIMESTAMP
22
+ WHERE id = ? AND status = 'running'
9
23
  `);
10
24
  const insertReviewFindingStatement = db.prepare(`
11
25
  INSERT INTO review_findings (
@@ -55,11 +69,15 @@ const getLatestTicketReviewRunStatement = db.prepare(`
55
69
  diff_signature,
56
70
  workspace_signature,
57
71
  message_id,
72
+ model,
73
+ variant,
74
+ failure_message,
58
75
  status,
59
- created_at
76
+ created_at,
77
+ updated_at
60
78
  FROM review_runs
61
79
  WHERE ticket_id = ?
62
- AND status IN (${TERMINAL_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
80
+ AND status IN (${VISIBLE_TERMINAL_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
63
81
  ORDER BY created_at DESC, rowid DESC
64
82
  LIMIT 1
65
83
  `);
@@ -73,12 +91,33 @@ const getLatestBundleReviewRunStatement = db.prepare(`
73
91
  diff_signature,
74
92
  workspace_signature,
75
93
  message_id,
94
+ model,
95
+ variant,
96
+ failure_message,
76
97
  status,
77
- created_at
98
+ created_at,
99
+ updated_at
100
+ FROM review_runs
101
+ WHERE project_id = ?
102
+ AND worktree_bundle_id = ?
103
+ AND status IN (${VISIBLE_TERMINAL_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
104
+ ORDER BY created_at DESC, rowid DESC
105
+ LIMIT 1
106
+ `);
107
+ const getLatestCompletedTicketReviewRunStatement = db.prepare(`
108
+ SELECT *
109
+ FROM review_runs
110
+ WHERE ticket_id = ?
111
+ AND status IN (${COMPLETED_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
112
+ ORDER BY created_at DESC, rowid DESC
113
+ LIMIT 1
114
+ `);
115
+ const getLatestCompletedBundleReviewRunStatement = db.prepare(`
116
+ SELECT *
78
117
  FROM review_runs
79
118
  WHERE project_id = ?
80
119
  AND worktree_bundle_id = ?
81
- AND status IN (${TERMINAL_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
120
+ AND status IN (${COMPLETED_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
82
121
  ORDER BY created_at DESC, rowid DESC
83
122
  LIMIT 1
84
123
  `);
@@ -87,7 +126,7 @@ const getLatestTicketReviewMessageStatement = db.prepare(`
87
126
  FROM review_runs
88
127
  INNER JOIN ticket_messages ON ticket_messages.id = review_runs.message_id
89
128
  WHERE review_runs.ticket_id = ?
90
- AND review_runs.status IN (${TERMINAL_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
129
+ AND review_runs.status IN (${COMPLETED_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
91
130
  ORDER BY review_runs.created_at DESC, review_runs.rowid DESC
92
131
  LIMIT 1
93
132
  `);
@@ -97,7 +136,7 @@ const getLatestBundleReviewMessageStatement = db.prepare(`
97
136
  INNER JOIN ticket_messages ON ticket_messages.id = review_runs.message_id
98
137
  WHERE review_runs.project_id = ?
99
138
  AND review_runs.worktree_bundle_id = ?
100
- AND review_runs.status IN (${TERMINAL_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
139
+ AND review_runs.status IN (${COMPLETED_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
101
140
  ORDER BY review_runs.created_at DESC, review_runs.rowid DESC
102
141
  LIMIT 1
103
142
  `);
@@ -126,7 +165,7 @@ const hasPriorReviewRunForBundleStatement = db.prepare(`
126
165
  FROM review_runs
127
166
  WHERE project_id = ?
128
167
  AND worktree_bundle_id = ?
129
- AND status IN (${TERMINAL_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
168
+ AND status IN (${COMPLETED_REVIEW_RUN_STATUSES.map(() => '?').join(', ')})
130
169
  LIMIT 1
131
170
  `);
132
171
  const normalizeText = (value) => {
@@ -141,6 +180,110 @@ const normalizeOptionalInteger = (value) => {
141
180
  const isSeverity = (value) => {
142
181
  return value === 'high' || value === 'medium' || value === 'low';
143
182
  };
183
+ const normalizeDiffPath = (value) => {
184
+ const path = value.trim().split('\t')[0] ?? '';
185
+ if (path === '/dev/null') {
186
+ return null;
187
+ }
188
+ return path.replace(/^[ab]\//, '');
189
+ };
190
+ const buildDiffScope = (diffText) => {
191
+ const scope = new Map();
192
+ let oldPath = null;
193
+ let currentPath = null;
194
+ let oldLine = 0;
195
+ let newLine = 0;
196
+ let inHunk = false;
197
+ for (const line of diffText.replace(/\r\n/g, '\n').split('\n')) {
198
+ if (line.startsWith('diff --git ')) {
199
+ oldPath = null;
200
+ currentPath = null;
201
+ inHunk = false;
202
+ continue;
203
+ }
204
+ if (line.startsWith('--- ')) {
205
+ oldPath = normalizeDiffPath(line.slice(4));
206
+ continue;
207
+ }
208
+ if (line.startsWith('+++ ')) {
209
+ currentPath = normalizeDiffPath(line.slice(4)) ?? oldPath;
210
+ if (currentPath && !scope.has(currentPath)) {
211
+ scope.set(currentPath, { oldLines: new Set(), newLines: new Set() });
212
+ }
213
+ continue;
214
+ }
215
+ const hunkMatch = line.match(/^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@/);
216
+ if (hunkMatch) {
217
+ oldLine = Number.parseInt(hunkMatch[1] ?? '', 10);
218
+ newLine = Number.parseInt(hunkMatch[2] ?? '', 10);
219
+ inHunk = true;
220
+ continue;
221
+ }
222
+ if (!inHunk || !currentPath) {
223
+ continue;
224
+ }
225
+ const fileScope = scope.get(currentPath);
226
+ if (!fileScope) {
227
+ continue;
228
+ }
229
+ if (line.startsWith('+')) {
230
+ fileScope.newLines.add(newLine);
231
+ newLine += 1;
232
+ continue;
233
+ }
234
+ if (line.startsWith('-')) {
235
+ fileScope.oldLines.add(oldLine);
236
+ oldLine += 1;
237
+ continue;
238
+ }
239
+ if (!line.startsWith('\\')) {
240
+ oldLine += 1;
241
+ newLine += 1;
242
+ }
243
+ }
244
+ return scope;
245
+ };
246
+ const formatFindingMarkdown = (finding) => {
247
+ const lineNumber = finding.new_line_number ?? finding.old_line_number;
248
+ const location = finding.file_path && lineNumber
249
+ ? ` (\`${finding.file_path}:${lineNumber}\`)`
250
+ : finding.file_path
251
+ ? ` (\`${finding.file_path}\`)`
252
+ : '';
253
+ return [
254
+ `${finding.ordinal}. ${finding.title}${location}`,
255
+ ` - Severity: ${finding.severity}`,
256
+ ` - What: ${finding.what_text}`,
257
+ finding.why_text ? ` - Why it matters: ${finding.why_text}` : '',
258
+ finding.fix_text ? ` - Fix: ${finding.fix_text}` : '',
259
+ ].filter(Boolean).join('\n');
260
+ };
261
+ export const constrainReviewOutputToDiff = (output, diffText) => {
262
+ if (output.status !== 'completed') {
263
+ return output;
264
+ }
265
+ const scope = buildDiffScope(diffText);
266
+ const findings = output.findings
267
+ .filter(finding => {
268
+ if (!finding.file_path) {
269
+ return false;
270
+ }
271
+ const fileScope = scope.get(finding.file_path);
272
+ if (!fileScope) {
273
+ return false;
274
+ }
275
+ return (finding.old_line_number != null && fileScope.oldLines.has(finding.old_line_number))
276
+ || (finding.new_line_number != null && fileScope.newLines.has(finding.new_line_number));
277
+ })
278
+ .map((finding, index) => ({ ...finding, ordinal: index + 1 }));
279
+ return {
280
+ ...output,
281
+ findings,
282
+ cleanedMarkdown: findings.length > 0
283
+ ? `## Findings\n${findings.map(formatFindingMarkdown).join('\n\n')}`
284
+ : '## Findings\nNo genuine issues found.',
285
+ };
286
+ };
144
287
  const serializeReviewRun = (row) => {
145
288
  if (!row) {
146
289
  return null;
@@ -312,9 +455,15 @@ const parseMarkdownReviewFindings = (value) => {
312
455
  };
313
456
  const getLatestReviewRunRowForContext = ({ ticketId, projectId, worktreeBundleId }) => {
314
457
  if (projectId && worktreeBundleId) {
315
- return getLatestBundleReviewRunStatement.get(projectId, worktreeBundleId, ...TERMINAL_REVIEW_RUN_STATUSES);
458
+ return getLatestBundleReviewRunStatement.get(projectId, worktreeBundleId, ...VISIBLE_TERMINAL_REVIEW_RUN_STATUSES);
316
459
  }
317
- return getLatestTicketReviewRunStatement.get(ticketId, ...TERMINAL_REVIEW_RUN_STATUSES);
460
+ return getLatestTicketReviewRunStatement.get(ticketId, ...VISIBLE_TERMINAL_REVIEW_RUN_STATUSES);
461
+ };
462
+ export const getLatestCompletedReviewRunForContext = ({ ticketId, projectId, worktreeBundleId }) => {
463
+ const row = projectId && worktreeBundleId
464
+ ? getLatestCompletedBundleReviewRunStatement.get(projectId, worktreeBundleId, ...COMPLETED_REVIEW_RUN_STATUSES)
465
+ : getLatestCompletedTicketReviewRunStatement.get(ticketId, ...COMPLETED_REVIEW_RUN_STATUSES);
466
+ return serializeReviewRun(row);
318
467
  };
319
468
  export const computeDiffSignature = (diffText) => {
320
469
  let hash = 5381;
@@ -362,11 +511,17 @@ export const parseStructuredReviewOutput = (output) => {
362
511
  status: 'parse_failed',
363
512
  };
364
513
  };
365
- export const createReviewRun = ({ ticketId, projectId, worktreeBundleId, diffSignature, workspaceSignature, messageId, status, }) => {
514
+ export const createReviewRun = ({ ticketId, projectId, worktreeBundleId, diffSignature, workspaceSignature, messageId, model, variant, failureMessage = null, status, }) => {
366
515
  const id = randomUUID();
367
- insertReviewRunStatement.run(id, ticketId, projectId, worktreeBundleId, diffSignature, workspaceSignature, messageId, status);
516
+ insertReviewRunStatement.run(id, ticketId, projectId, worktreeBundleId, diffSignature, workspaceSignature, messageId, model, variant, failureMessage, status);
368
517
  return id;
369
518
  };
519
+ export const updateReviewRunPreparation = (reviewRunId, diffSignature, workspaceSignature) => {
520
+ return updateReviewRunPreparationStatement.run(diffSignature, workspaceSignature, reviewRunId).changes > 0;
521
+ };
522
+ export const finalizeReviewRun = ({ reviewRunId, status, messageId = null, failureMessage = null, }) => {
523
+ return finalizeReviewRunStatement.run(messageId, status, failureMessage, reviewRunId).changes > 0;
524
+ };
370
525
  export const insertReviewFindings = (reviewRunId, findings) => {
371
526
  for (const finding of findings) {
372
527
  insertReviewFindingStatement.run(randomUUID(), reviewRunId, finding.ordinal, finding.title, finding.severity, finding.file_path, finding.old_line_number, finding.new_line_number, finding.line_content, finding.hunk_header, finding.what_text, finding.why_text, finding.fix_text);
@@ -375,48 +530,67 @@ export const insertReviewFindings = (reviewRunId, findings) => {
375
530
  export const listReviewFindings = (reviewRunId) => {
376
531
  return listReviewFindingsStatement.all(reviewRunId);
377
532
  };
533
+ const severityRank = {
534
+ high: 3,
535
+ medium: 2,
536
+ low: 1,
537
+ };
538
+ export const formatReviewFindingsForFix = (reviewRunId, minimumSeverity) => listReviewFindings(reviewRunId)
539
+ .filter(finding => severityRank[finding.severity] >= severityRank[minimumSeverity])
540
+ .map((finding, index) => {
541
+ const line = finding.new_line_number ?? finding.old_line_number;
542
+ const location = finding.file_path
543
+ ? `${finding.file_path}${line === null ? '' : `:${line}`}`
544
+ : 'unknown location';
545
+ return `${index + 1}. ${finding.title}\n - Severity: ${finding.severity}\n - Location: ${location}\n - What: ${finding.what_text}${finding.why_text ? `\n - Why: ${finding.why_text}` : ''}${finding.fix_text ? `\n - Fix: ${finding.fix_text}` : ''}`;
546
+ })
547
+ .join('\n\n');
378
548
  export const getLatestReviewRunForContext = (context) => {
379
549
  return serializeReviewRun(getLatestReviewRunRowForContext(context));
380
550
  };
381
551
  export const hasPriorReviewRunForBundle = (projectId, bundleId) => {
382
- return Boolean(hasPriorReviewRunForBundleStatement.get(projectId, bundleId, ...TERMINAL_REVIEW_RUN_STATUSES));
552
+ return Boolean(hasPriorReviewRunForBundleStatement.get(projectId, bundleId, ...COMPLETED_REVIEW_RUN_STATUSES));
383
553
  };
384
554
  export const getLatestReviewMarkdownForContext = ({ ticketId, projectId, worktreeBundleId }) => {
385
555
  const row = projectId && worktreeBundleId
386
- ? getLatestBundleReviewMessageStatement.get(projectId, worktreeBundleId, ...TERMINAL_REVIEW_RUN_STATUSES)
387
- : getLatestTicketReviewMessageStatement.get(ticketId, ...TERMINAL_REVIEW_RUN_STATUSES);
556
+ ? getLatestBundleReviewMessageStatement.get(projectId, worktreeBundleId, ...COMPLETED_REVIEW_RUN_STATUSES)
557
+ : getLatestTicketReviewMessageStatement.get(ticketId, ...COMPLETED_REVIEW_RUN_STATUSES);
388
558
  return typeof row?.content === 'string' ? row.content : '';
389
559
  };
390
560
  export const getReviewContextState = ({ ticketId, projectId, worktreeBundleId }) => {
391
561
  const latestReviewRun = getLatestReviewRunForContext({ ticketId, projectId, worktreeBundleId });
392
- if (!latestReviewRun) {
562
+ const latestCompletedReviewRun = getLatestCompletedReviewRunForContext({ ticketId, projectId, worktreeBundleId });
563
+ if (!latestCompletedReviewRun) {
393
564
  return {
394
- latestReviewRun: null,
565
+ latestReviewRun,
566
+ latestCompletedReviewRun: null,
395
567
  hasCompletedReview: false,
396
568
  hasFollowUpSinceLastReview: false,
397
569
  };
398
570
  }
399
571
  const hasFollowUpSinceLastReview = projectId && worktreeBundleId
400
- ? Boolean(hasBundleFollowUpSinceReviewStatement.get(projectId, worktreeBundleId, latestReviewRun.created_at))
401
- : Boolean(hasTicketFollowUpSinceReviewStatement.get(ticketId, latestReviewRun.created_at));
572
+ ? Boolean(hasBundleFollowUpSinceReviewStatement.get(projectId, worktreeBundleId, latestCompletedReviewRun.created_at))
573
+ : Boolean(hasTicketFollowUpSinceReviewStatement.get(ticketId, latestCompletedReviewRun.created_at));
402
574
  return {
403
575
  latestReviewRun,
576
+ latestCompletedReviewRun,
404
577
  hasCompletedReview: true,
405
578
  hasFollowUpSinceLastReview,
406
579
  };
407
580
  };
408
581
  export const buildReviewFindingsResponse = ({ context, isContextRunning, currentWorkspaceSignature, currentDiffSignature, }) => {
409
582
  const reviewContextState = getReviewContextState(context);
410
- const findings = reviewContextState.latestReviewRun ? listReviewFindings(reviewContextState.latestReviewRun.id) : [];
411
- const isCurrentDiff = reviewContextState.latestReviewRun
412
- ? reviewContextState.latestReviewRun.workspace_signature
583
+ const findings = reviewContextState.latestCompletedReviewRun ? listReviewFindings(reviewContextState.latestCompletedReviewRun.id) : [];
584
+ const isCurrentDiff = reviewContextState.latestCompletedReviewRun
585
+ ? reviewContextState.latestCompletedReviewRun.workspace_signature
413
586
  ? Boolean(currentWorkspaceSignature
414
- && reviewContextState.latestReviewRun.workspace_signature === currentWorkspaceSignature)
587
+ && reviewContextState.latestCompletedReviewRun.workspace_signature === currentWorkspaceSignature)
415
588
  : Boolean(currentDiffSignature
416
- && reviewContextState.latestReviewRun.diff_signature === currentDiffSignature)
589
+ && reviewContextState.latestCompletedReviewRun.diff_signature === currentDiffSignature)
417
590
  : false;
418
591
  return {
419
- review_run: reviewContextState.latestReviewRun,
592
+ review_run: reviewContextState.latestCompletedReviewRun,
593
+ latest_review_attempt: reviewContextState.latestReviewRun,
420
594
  findings,
421
595
  is_current_diff: isCurrentDiff,
422
596
  has_completed_review: reviewContextState.hasCompletedReview,
@@ -1 +1 @@
1
- {"version":3,"file":"reviewFindings.js","sourceRoot":"","sources":["../../../server/lib/reviewFindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reviewFindings.js","sourceRoot":"","sources":["../../../server/lib/reviewFindings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export const resolveReviewerConfig = (bundle, project, fallback = null) => {
2
+ if (bundle?.reviewer_model) {
3
+ return {
4
+ model: bundle.reviewer_model,
5
+ variant: bundle.reviewer_variant ?? null,
6
+ source: 'bundle',
7
+ };
8
+ }
9
+ if (project?.reviewer_model) {
10
+ return {
11
+ model: project.reviewer_model,
12
+ variant: project.reviewer_variant ?? null,
13
+ source: 'project',
14
+ };
15
+ }
16
+ const model = fallback?.model ?? null;
17
+ return {
18
+ model,
19
+ variant: model ? fallback?.variant ?? null : null,
20
+ source: 'fallback',
21
+ };
22
+ };
23
+ //# sourceMappingURL=reviewerConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewerConfig.js","sourceRoot":"","sources":["../../../server/lib/reviewerConfig.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,MAAyC,EACzC,OAAgF,EAChF,WAAsD,IAAI,EAC1C,EAAE;IAClB,IAAI,MAAM,EAAE,cAAc,EAAE,CAAC;QAC3B,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,cAAc;YAC5B,OAAO,EAAE,MAAM,CAAC,gBAAgB,IAAI,IAAI;YACxC,MAAM,EAAE,QAAQ;SACjB,CAAA;IACH,CAAC;IAED,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;QAC5B,OAAO;YACL,KAAK,EAAE,OAAO,CAAC,cAAc;YAC7B,OAAO,EAAE,OAAO,CAAC,gBAAgB,IAAI,IAAI;YACzC,MAAM,EAAE,SAAS;SAClB,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAA;IACrC,OAAO;QACL,KAAK;QACL,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI;QACjD,MAAM,EAAE,UAAU;KACnB,CAAA;AACH,CAAC,CAAA"}
@@ -6,6 +6,8 @@ import { buildSpecReviewRevisionDraft } from './specReviewDraft.js';
6
6
  import { isSpecReviewRunning, startSpecReview } from '../workers/specReview.js';
7
7
  import { getExecutionRun, getQueuedSpecReviewExecutionRun, transitionExecutionRun, withExecutionRunTransaction } from './executionRuns.js';
8
8
  import { resolveSessionTargetForExecution } from './sessionTargets.js';
9
+ import { resolveReviewerConfig } from './reviewerConfig.js';
10
+ import { getBundle } from './tickets.js';
9
11
  const getPayloadValue = (payload, key) => {
10
12
  return payload?.[key];
11
13
  };
@@ -15,6 +17,28 @@ const resolveSpecTool = (value, fallback) => {
15
17
  const resolveStringOrNull = (value) => {
16
18
  return typeof value === 'string' ? value : null;
17
19
  };
20
+ const validateExplicitModelSelection = (payload) => {
21
+ const hasModel = Object.prototype.hasOwnProperty.call(payload ?? {}, 'model');
22
+ const hasVariant = Object.prototype.hasOwnProperty.call(payload ?? {}, 'variant');
23
+ if (!hasModel && !hasVariant) {
24
+ return null;
25
+ }
26
+ const model = getPayloadValue(payload, 'model');
27
+ const variant = getPayloadValue(payload, 'variant');
28
+ if (!hasModel) {
29
+ return 'variant requires an explicitly selected model';
30
+ }
31
+ if (model !== null && (typeof model !== 'string' || !model.trim())) {
32
+ return 'model must be a non-empty string or null';
33
+ }
34
+ if (hasVariant && variant !== null && (typeof variant !== 'string' || !variant.trim())) {
35
+ return 'variant must be a non-empty string or null';
36
+ }
37
+ if (model === null && variant !== null && variant !== undefined) {
38
+ return 'variant must be null when model is null';
39
+ }
40
+ return null;
41
+ };
18
42
  const resolveStringArray = (value) => {
19
43
  if (!Array.isArray(value)) {
20
44
  return [];
@@ -35,15 +59,35 @@ const resolveProjectSpecSnapshot = (projectId, specSessionId, snapshotId) => {
35
59
  }
36
60
  return { specSession, snapshot };
37
61
  };
38
- const resolveRunConfig = (payload, specSessionModel, specSessionVariant, specSessionTool, specSessionSkills) => {
39
- const tool = resolveSpecTool(getPayloadValue(payload, 'tool'), specSessionTool);
40
- const requestedModel = resolveStringOrNull(getPayloadValue(payload, 'model'));
41
- const model = requestedModel ?? specSessionModel ?? null;
42
- const requestedVariant = resolveStringOrNull(getPayloadValue(payload, 'variant'));
43
- const variant = requestedVariant ?? specSessionVariant ?? null;
62
+ const resolveRunConfig = (payload, specSession, project) => {
63
+ const tool = resolveSpecTool(getPayloadValue(payload, 'tool'), specSession.tool);
64
+ const hasModel = Object.prototype.hasOwnProperty.call(payload ?? {}, 'model');
65
+ const hasVariant = Object.prototype.hasOwnProperty.call(payload ?? {}, 'variant');
66
+ const selectionSource = hasModel || hasVariant ? 'explicit' : 'inherited';
67
+ let model;
68
+ let variant;
69
+ if (selectionSource === 'explicit') {
70
+ model = hasModel ? resolveStringOrNull(getPayloadValue(payload, 'model')) : specSession.model;
71
+ variant = hasVariant ? resolveStringOrNull(getPayloadValue(payload, 'variant')) : null;
72
+ }
73
+ else if (tool === 'opencode') {
74
+ const bundle = specSession.target_kind === 'bundle' && specSession.target_bundle_id
75
+ ? getBundle(specSession.target_bundle_id, project.id)
76
+ : null;
77
+ const reviewer = resolveReviewerConfig(bundle, project, {
78
+ model: specSession.model,
79
+ variant: specSession.variant,
80
+ });
81
+ model = reviewer.model;
82
+ variant = reviewer.variant;
83
+ }
84
+ else {
85
+ model = specSession.model;
86
+ variant = specSession.variant;
87
+ }
44
88
  const requestedSkills = resolveStringArray(getPayloadValue(payload, 'skills'));
45
- const skills = requestedSkills.length > 0 ? requestedSkills : specSessionSkills;
46
- return { tool, model, variant, skills };
89
+ const skills = requestedSkills.length > 0 ? requestedSkills : specSession.skills;
90
+ return { tool, model, variant, skills, selectionSource };
47
91
  };
48
92
  export const startProjectSpecReview = ({ projectId, specSessionId, snapshotId, payload, broadcaster, retrySourceRunId, retryRunConfig, transcriptBoundaryMessageId, }) => {
49
93
  const project = getProjectById(projectId);
@@ -55,6 +99,10 @@ export const startProjectSpecReview = ({ projectId, specSessionId, snapshotId, p
55
99
  return { ok: false, status: 404, error: 'Not found' };
56
100
  }
57
101
  const { specSession, snapshot } = resolved;
102
+ const modelSelectionError = retryRunConfig ? null : validateExplicitModelSelection(payload);
103
+ if (modelSelectionError) {
104
+ return { ok: false, status: 400, error: modelSelectionError };
105
+ }
58
106
  const runnableTarget = resolveSessionTargetForExecution(specSession, project, 'Spec session');
59
107
  if (!runnableTarget.ok) {
60
108
  return { ok: false, status: 409, error: runnableTarget.error, reason: 'retry_workspace_unavailable' };
@@ -62,7 +110,13 @@ export const startProjectSpecReview = ({ projectId, specSessionId, snapshotId, p
62
110
  if (isSpecReviewRunning(snapshot.id)) {
63
111
  return { ok: false, status: 409, error: 'A spec review is already running for this snapshot.' };
64
112
  }
65
- const runConfig = retryRunConfig ?? resolveRunConfig(payload, specSession.model, specSession.variant, specSession.tool, specSession.skills);
113
+ const runConfig = retryRunConfig?.selectionSource === 'inherited'
114
+ ? {
115
+ ...resolveRunConfig({ tool: retryRunConfig.tool }, specSession, project),
116
+ tool: retryRunConfig.tool,
117
+ skills: retryRunConfig.skills,
118
+ }
119
+ : retryRunConfig ?? resolveRunConfig(payload, specSession, project);
66
120
  const lastMessageId = transcriptBoundaryMessageId === undefined
67
121
  ? specSession.messages?.at(-1)?.id ?? null
68
122
  : transcriptBoundaryMessageId;
@@ -86,6 +140,7 @@ export const startProjectSpecReview = ({ projectId, specSessionId, snapshotId, p
86
140
  retry_model: runConfig.model,
87
141
  retry_variant: runConfig.variant,
88
142
  retry_skills: runConfig.skills,
143
+ retry_selection_source: runConfig.selectionSource,
89
144
  retry_transcript_boundary_message_id: lastMessageId ?? 'none',
90
145
  },
91
146
  eventType: retrySourceRunId ? 'retry_started' : 'spec_review_queued',
@@ -1 +1 @@
1
- {"version":3,"file":"specReviewOperations.js","sourceRoot":"","sources":["../../../server/lib/specReviewOperations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specReviewOperations.js","sourceRoot":"","sources":["../../../server/lib/specReviewOperations.ts"],"names":[],"mappings":"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"}