@on-par/factory-core 0.9.3 → 0.9.5-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/checkers/base-health.js +2 -2
- package/dist/checkers/base-health.js.map +1 -1
- package/dist/checkers/baseline-cache.d.ts +6 -4
- package/dist/checkers/baseline-cache.d.ts.map +1 -1
- package/dist/checkers/baseline-cache.js +24 -7
- package/dist/checkers/baseline-cache.js.map +1 -1
- package/dist/checkers/baseline.d.ts +2 -0
- package/dist/checkers/baseline.d.ts.map +1 -1
- package/dist/checkers/baseline.js +34 -3
- package/dist/checkers/baseline.js.map +1 -1
- package/dist/checkers/constitution-preflight.d.ts +8 -0
- package/dist/checkers/constitution-preflight.d.ts.map +1 -0
- package/dist/checkers/constitution-preflight.js +71 -0
- package/dist/checkers/constitution-preflight.js.map +1 -0
- package/dist/checkers/design-smells.d.ts.map +1 -1
- package/dist/checkers/design-smells.js +1 -0
- package/dist/checkers/design-smells.js.map +1 -1
- package/dist/checkers/index.d.ts +11 -0
- package/dist/checkers/index.d.ts.map +1 -1
- package/dist/checkers/index.js +87 -9
- package/dist/checkers/index.js.map +1 -1
- package/dist/config/config-lint.d.ts +28 -0
- package/dist/config/config-lint.d.ts.map +1 -0
- package/dist/config/config-lint.js +39 -0
- package/dist/config/config-lint.js.map +1 -0
- package/dist/config/config-schema-lint.d.ts +17 -0
- package/dist/config/config-schema-lint.d.ts.map +1 -0
- package/dist/config/config-schema-lint.js +104 -0
- package/dist/config/config-schema-lint.js.map +1 -0
- package/dist/config/example.d.ts.map +1 -1
- package/dist/config/example.js +23 -1
- package/dist/config/example.js.map +1 -1
- package/dist/config/index.d.ts +19 -3
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +38 -13
- package/dist/config/index.js.map +1 -1
- package/dist/config/repo.d.ts +3 -0
- package/dist/config/repo.d.ts.map +1 -1
- package/dist/config/repo.js +12 -1
- package/dist/config/repo.js.map +1 -1
- package/dist/config/template-tokens.d.ts +21 -0
- package/dist/config/template-tokens.d.ts.map +1 -0
- package/dist/config/template-tokens.js +62 -0
- package/dist/config/template-tokens.js.map +1 -0
- package/dist/constitutions/index.d.ts.map +1 -1
- package/dist/constitutions/index.js +2 -0
- package/dist/constitutions/index.js.map +1 -1
- package/dist/events/kinds.d.ts +1 -1
- package/dist/events/kinds.d.ts.map +1 -1
- package/dist/events/kinds.js +4 -0
- package/dist/events/kinds.js.map +1 -1
- package/dist/filing/index.d.ts.map +1 -1
- package/dist/filing/index.js +1 -0
- package/dist/filing/index.js.map +1 -1
- package/dist/harness/catalog.d.ts +4 -1
- package/dist/harness/catalog.d.ts.map +1 -1
- package/dist/harness/catalog.js +7 -1
- package/dist/harness/catalog.js.map +1 -1
- package/dist/harness/classify.d.ts.map +1 -1
- package/dist/harness/classify.js +5 -0
- package/dist/harness/classify.js.map +1 -1
- package/dist/harness/codex-cli.d.ts.map +1 -1
- package/dist/harness/codex-cli.js +7 -0
- package/dist/harness/codex-cli.js.map +1 -1
- package/dist/harness/contract.d.ts.map +1 -1
- package/dist/harness/contract.js +1 -0
- package/dist/harness/contract.js.map +1 -1
- package/dist/harness/opencode.d.ts +17 -2
- package/dist/harness/opencode.d.ts.map +1 -1
- package/dist/harness/opencode.js +150 -36
- package/dist/harness/opencode.js.map +1 -1
- package/dist/internal.d.ts +25 -6
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +17 -5
- package/dist/internal.js.map +1 -1
- package/dist/models/index.d.ts +5 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +33 -3
- package/dist/models/index.js.map +1 -1
- package/dist/phases/build.d.ts +6 -0
- package/dist/phases/build.d.ts.map +1 -1
- package/dist/phases/build.js +19 -4
- package/dist/phases/build.js.map +1 -1
- package/dist/phases/check.d.ts +5 -1
- package/dist/phases/check.d.ts.map +1 -1
- package/dist/phases/check.js +33 -7
- package/dist/phases/check.js.map +1 -1
- package/dist/phases/plan.d.ts +16 -3
- package/dist/phases/plan.d.ts.map +1 -1
- package/dist/phases/plan.js +104 -30
- package/dist/phases/plan.js.map +1 -1
- package/dist/phases/ship-stack.d.ts +43 -0
- package/dist/phases/ship-stack.d.ts.map +1 -0
- package/dist/phases/ship-stack.js +91 -0
- package/dist/phases/ship-stack.js.map +1 -0
- package/dist/phases/ship.d.ts +5 -0
- package/dist/phases/ship.d.ts.map +1 -1
- package/dist/phases/ship.js +2 -1
- package/dist/phases/ship.js.map +1 -1
- package/dist/queue/index.d.ts.map +1 -1
- package/dist/queue/index.js +2 -11
- package/dist/queue/index.js.map +1 -1
- package/dist/readiness/decompose.d.ts +4 -2
- package/dist/readiness/decompose.d.ts.map +1 -1
- package/dist/readiness/decompose.js +6 -2
- package/dist/readiness/decompose.js.map +1 -1
- package/dist/readiness/enrich.d.ts +6 -0
- package/dist/readiness/enrich.d.ts.map +1 -1
- package/dist/readiness/enrich.js +20 -1
- package/dist/readiness/enrich.js.map +1 -1
- package/dist/readiness/slice-gate.d.ts +5 -0
- package/dist/readiness/slice-gate.d.ts.map +1 -1
- package/dist/readiness/slice-gate.js +10 -4
- package/dist/readiness/slice-gate.js.map +1 -1
- package/dist/readiness/slice-plan-github.d.ts +25 -0
- package/dist/readiness/slice-plan-github.d.ts.map +1 -1
- package/dist/readiness/slice-plan-github.js +23 -1
- package/dist/readiness/slice-plan-github.js.map +1 -1
- package/dist/readiness/slice-plan.d.ts +11 -2
- package/dist/readiness/slice-plan.d.ts.map +1 -1
- package/dist/readiness/slice-plan.js +19 -4
- package/dist/readiness/slice-plan.js.map +1 -1
- package/dist/reports/benchmark-artifacts.d.ts +1 -1
- package/dist/reports/benchmark-artifacts.d.ts.map +1 -1
- package/dist/reports/evidence-pack.d.ts +4 -0
- package/dist/reports/evidence-pack.d.ts.map +1 -1
- package/dist/reports/evidence-pack.js +5 -1
- package/dist/reports/evidence-pack.js.map +1 -1
- package/dist/router/index.d.ts +17 -0
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/index.js +84 -1
- package/dist/router/index.js.map +1 -1
- package/dist/run/outcome.d.ts +3 -1
- package/dist/run/outcome.d.ts.map +1 -1
- package/dist/run/outcome.js.map +1 -1
- package/dist/run/resume-context.d.ts +51 -0
- package/dist/run/resume-context.d.ts.map +1 -1
- package/dist/run/resume-context.js +97 -0
- package/dist/run/resume-context.js.map +1 -1
- package/dist/run/run-issue.d.ts +16 -1
- package/dist/run/run-issue.d.ts.map +1 -1
- package/dist/run/run-issue.js +290 -187
- package/dist/run/run-issue.js.map +1 -1
- package/dist/sandbox/egress-proxy.d.ts +16 -0
- package/dist/sandbox/egress-proxy.d.ts.map +1 -1
- package/dist/sandbox/egress-proxy.js +91 -7
- package/dist/sandbox/egress-proxy.js.map +1 -1
- package/dist/sandbox/index.d.ts +2 -0
- package/dist/sandbox/index.d.ts.map +1 -1
- package/dist/sandbox/index.js +3 -1
- package/dist/sandbox/index.js.map +1 -1
- package/dist/steward/diagnose.d.ts +5 -1
- package/dist/steward/diagnose.d.ts.map +1 -1
- package/dist/steward/diagnose.js +13 -5
- package/dist/steward/diagnose.js.map +1 -1
- package/dist/steward/run.d.ts +2 -0
- package/dist/steward/run.d.ts.map +1 -1
- package/dist/steward/run.js +1 -0
- package/dist/steward/run.js.map +1 -1
- package/dist/triage/index.d.ts +25 -0
- package/dist/triage/index.d.ts.map +1 -0
- package/dist/triage/index.js +95 -0
- package/dist/triage/index.js.map +1 -0
- package/dist/types/index.d.ts +10 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/usage/index.d.ts +19 -1
- package/dist/usage/index.d.ts.map +1 -1
- package/dist/usage/index.js +27 -1
- package/dist/usage/index.js.map +1 -1
- package/dist/utils/codex-config.d.ts +19 -1
- package/dist/utils/codex-config.d.ts.map +1 -1
- package/dist/utils/codex-config.js +51 -2
- package/dist/utils/codex-config.js.map +1 -1
- package/dist/utils/opencode-config.d.ts +12 -0
- package/dist/utils/opencode-config.d.ts.map +1 -0
- package/dist/utils/opencode-config.js +24 -0
- package/dist/utils/opencode-config.js.map +1 -0
- package/dist/work/github-issue.d.ts +2 -0
- package/dist/work/github-issue.d.ts.map +1 -1
- package/dist/work/github-issue.js +18 -0
- package/dist/work/github-issue.js.map +1 -1
- package/package.json +5 -5
package/dist/phases/plan.js
CHANGED
|
@@ -8,7 +8,7 @@ import { withLifecycle } from '../bus/index.js';
|
|
|
8
8
|
import { buildConstitutionContext } from '../constitutions/index.js';
|
|
9
9
|
import { findUnresolvedRegressions, parseDesignArtifact, renderDesignArtifact } from '../design/index.js';
|
|
10
10
|
import { buildFastPathSpec, isFastPathEligible } from '../efficiency/fast-path.js';
|
|
11
|
-
import { buildReadinessEnrichmentPrompt, buildReadinessEnrichmentRetryPrompt, composeEnrichedIssueBody, stripEnrichedBlock, } from '../readiness/enrich.js';
|
|
11
|
+
import { buildReadinessEnrichmentPrompt, buildReadinessEnrichmentRetryPrompt, composeEnrichedIssueBody, scoreEnrichedIssueReadiness, stripEnrichedBlock, } from '../readiness/enrich.js';
|
|
12
12
|
import { decomposeOversizedIssue, renderChildIssueBody } from '../readiness/decompose.js';
|
|
13
13
|
import { resolveSliceGate } from '../readiness/slice-gate.js';
|
|
14
14
|
import { DEFAULT_MAX_SLICES } from '../readiness/slice-plan.js';
|
|
@@ -27,8 +27,56 @@ import { createDefaultWorkSourceRegistry } from '../work/index.js';
|
|
|
27
27
|
* on other endpoints (e.g. merge_commit_sha, singular assignee).
|
|
28
28
|
*/
|
|
29
29
|
const GITHUB_ISSUE_UPDATE_API_VERSION = '2026-03-10';
|
|
30
|
+
/** Order PLAN falls back through when its chosen route cannot run here. */
|
|
31
|
+
const ROUTE_FALLBACK_ORDER = ['claude', 'codex', 'opencode'];
|
|
32
|
+
/** Build routes whose task resolves to at least one runnable model, in fallback order.
|
|
33
|
+
* Returns [] when the router cannot answer, which callers treat as "no restriction". */
|
|
34
|
+
export function runnableBuildRoutes(router) {
|
|
35
|
+
try {
|
|
36
|
+
return ROUTE_FALLBACK_ORDER.filter((route) => router.resolveAll(`build_${route}`).length > 0);
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/** The route PLAN should use when it chose none, or chose one that cannot run here. */
|
|
43
|
+
export function defaultBuildRoute(runnable) {
|
|
44
|
+
return runnable[0] ?? 'claude';
|
|
45
|
+
}
|
|
46
|
+
/** Keep the requested route when it can run here (or the router cannot say); otherwise fall back. */
|
|
47
|
+
export function resolveRunnableBuildRoute(requested, runnable) {
|
|
48
|
+
if (runnable.length === 0 || runnable.includes(requested))
|
|
49
|
+
return { route: requested, rerouted: false };
|
|
50
|
+
return { route: defaultBuildRoute(runnable), rerouted: true };
|
|
51
|
+
}
|
|
52
|
+
/** Step-3 route bullets, in display order. */
|
|
53
|
+
const ROUTE_BULLETS = {
|
|
54
|
+
codex: ` - route: codex — when the implementation from a frozen spec is bounded and mechanical
|
|
55
|
+
(known-repro fixes, well-scoped features, refactors, test writing, CI/tooling)`,
|
|
56
|
+
claude: ` - route: claude — when the work needs UX, design, or architecture judgment; naming/API
|
|
57
|
+
design calls; is a tiny diff (<20 lines); needs session tools; or when the repo's
|
|
58
|
+
pinned build worker is a claude-cli model (e.g. claude-sonnet-5 in .factory/config.json)`,
|
|
59
|
+
opencode: ` - route: opencode — when the repo's pinned build worker is an opencode-harness model
|
|
60
|
+
(e.g. opencode-deepseek-v4-flash in .factory/config.json); bounded mechanical work`,
|
|
61
|
+
};
|
|
30
62
|
export function buildPlanPrompt(opts) {
|
|
31
63
|
const { issue, issueTitle, issueBody, specPath, constitutionCtx, adrCtx } = opts;
|
|
64
|
+
const runnable = opts.runnableRoutes ?? [];
|
|
65
|
+
const fallbackRoute = defaultBuildRoute(runnable);
|
|
66
|
+
const offered = runnable.length > 0 ? runnable : ROUTE_FALLBACK_ORDER;
|
|
67
|
+
const routeBullets = ['codex', 'claude', 'opencode']
|
|
68
|
+
.filter((r) => offered.includes(r))
|
|
69
|
+
.map((r) => ROUTE_BULLETS[r])
|
|
70
|
+
.join('\n');
|
|
71
|
+
const exampleRoute = offered.includes('codex') ? 'codex' : fallbackRoute;
|
|
72
|
+
const replaceNote = offered.includes('codex') && offered.includes('claude')
|
|
73
|
+
? `(Replace 'codex' in the frontmatter with 'claude' if that's the route you chose.)\n`
|
|
74
|
+
: offered.length > 1
|
|
75
|
+
? `(Set route: in the frontmatter to the route you chose.)\n`
|
|
76
|
+
: '';
|
|
77
|
+
const runnableNote = runnable.length > 0 && runnable.length < ROUTE_FALLBACK_ORDER.length
|
|
78
|
+
? `\n Only these routes can run on this machine: ${runnable.join(', ')}. Choose one of them.`
|
|
79
|
+
: '';
|
|
32
80
|
return `You are the PLAN phase of a multi-agent software factory for issue #${issue}.
|
|
33
81
|
Do NOT implement anything. You are already inside the isolated worktree (cwd).
|
|
34
82
|
|
|
@@ -48,15 +96,9 @@ Steps:
|
|
|
48
96
|
2. Explore the codebase (read/search only) enough to name the exact files, functions,
|
|
49
97
|
and existing patterns/tests this issue touches, and any edge cases.
|
|
50
98
|
3. Decide the build route:
|
|
51
|
-
|
|
52
|
-
(known-repro fixes, well-scoped features, refactors, test writing, CI/tooling)
|
|
53
|
-
- route: claude — when the work needs UX, design, or architecture judgment; naming/API
|
|
54
|
-
design calls; is a tiny diff (<20 lines); needs session tools; or when the repo's
|
|
55
|
-
pinned build worker is a claude-cli model (e.g. claude-sonnet-5 in .factory/config.json)
|
|
56
|
-
- route: opencode — when the repo's pinned build worker is an opencode-harness model
|
|
57
|
-
(e.g. opencode-deepseek-v4-flash in .factory/config.json); bounded mechanical work
|
|
99
|
+
${routeBullets}
|
|
58
100
|
A pinned build worker's harness always wins over your judgment: the factory forces the
|
|
59
|
-
route to match it after PLAN. Default to route:
|
|
101
|
+
route to match it after PLAN. Default to route: ${fallbackRoute} when genuinely unsure.${runnableNote}
|
|
60
102
|
4. RIGHT-SIZE THE SLICE. A single BUILD pass must be bounded: aim for roughly
|
|
61
103
|
5-15 minutes of agent work, a handful of files, at most ~6 target types /
|
|
62
104
|
~8 signatures / ~10 call edges in the design block. If the issue genuinely
|
|
@@ -96,7 +138,7 @@ ${constitutionCtx ? '5. The constitution above defines the standards for this pr
|
|
|
96
138
|
|
|
97
139
|
Write EXACTLY ONE file, at ${specPath}, in this shape:
|
|
98
140
|
---
|
|
99
|
-
route:
|
|
141
|
+
route: ${exampleRoute}
|
|
100
142
|
design:
|
|
101
143
|
restatedProblem: >-
|
|
102
144
|
<one paragraph, the problem in your own words — if this is wrong, stop>
|
|
@@ -166,8 +208,7 @@ ${constitutionCtx ? `## Constitution compliance\nFor each standard in the consti
|
|
|
166
208
|
## Non-goals
|
|
167
209
|
<explicitly out of scope, from the issue>
|
|
168
210
|
|
|
169
|
-
|
|
170
|
-
The design: block is machine-validated — keys must match exactly as shown.
|
|
211
|
+
${replaceNote}The design: block is machine-validated — keys must match exactly as shown.
|
|
171
212
|
targetTypes / signatures / callGraph must be grounded in the real checkout: every
|
|
172
213
|
file must be one that exists (or one you are creating), and every name/symbol must
|
|
173
214
|
be one you actually read or are adding — omit an entry rather than guess. Quote
|
|
@@ -201,16 +242,17 @@ function blockedNoChangeSpecReason(body) {
|
|
|
201
242
|
return null;
|
|
202
243
|
return 'PLAN returned a blocked/no-change note instead of a frozen spec';
|
|
203
244
|
}
|
|
204
|
-
/** The file-mode size-gate escalation:
|
|
205
|
-
|
|
245
|
+
/** The file-mode size-gate escalation: logs size-gate-decomposed when children were filed and
|
|
246
|
+
* size-gate-escalated otherwise, and builds the parked (or decomposed) PlanResult. */
|
|
247
|
+
function fileModeEscalation(childIssues, readiness, specPath, route, log, prefix = '') {
|
|
206
248
|
const reason = prefix +
|
|
207
249
|
(childIssues.length > 0
|
|
208
250
|
? `issue exceeds the size gate (${readiness.sizeReason ?? 'too big'}) — decomposed into ${childIssues.map((n) => `#${n}`).join(', ')}`
|
|
209
251
|
: `issue exceeds the size gate (${readiness.sizeReason ?? 'too big'}) — parked for decomposition`);
|
|
210
|
-
log('size-gate-escalated', reason, { readiness });
|
|
252
|
+
log(childIssues.length > 0 ? 'size-gate-decomposed' : 'size-gate-escalated', reason, { readiness });
|
|
211
253
|
return {
|
|
212
254
|
ok: false,
|
|
213
|
-
route
|
|
255
|
+
route,
|
|
214
256
|
specPath,
|
|
215
257
|
model: '',
|
|
216
258
|
escalate: reason,
|
|
@@ -234,7 +276,9 @@ async function planPhaseImpl(opts) {
|
|
|
234
276
|
let issueBody = work.brief;
|
|
235
277
|
log('work_request', `resolved work request ${work.id} (${work.kind}, ${work.acceptanceCriteria.length} acceptance criteria)`);
|
|
236
278
|
const constitutionCtx = buildConstitutionContext(constitution);
|
|
237
|
-
|
|
279
|
+
const runnableRoutes = runnableBuildRoutes(router);
|
|
280
|
+
const failureRoute = defaultBuildRoute(runnableRoutes);
|
|
281
|
+
let readiness = scoreEnrichedIssueReadiness({ title: issueTitle, body: issueBody });
|
|
238
282
|
if (opts.enforceReadiness &&
|
|
239
283
|
source.kind === GITHUB_ISSUE_SOURCE &&
|
|
240
284
|
readiness.template === 'factory-task' &&
|
|
@@ -289,7 +333,14 @@ async function planPhaseImpl(opts) {
|
|
|
289
333
|
previous = { previousOutput: enrichment.output, template: candidate.template, stillMissing: candidate.missing };
|
|
290
334
|
}
|
|
291
335
|
if (!enriched) {
|
|
292
|
-
return {
|
|
336
|
+
return {
|
|
337
|
+
ok: false,
|
|
338
|
+
route: failureRoute,
|
|
339
|
+
specPath,
|
|
340
|
+
model: lastModel,
|
|
341
|
+
escalate: lastReason,
|
|
342
|
+
designArtifact: null,
|
|
343
|
+
};
|
|
293
344
|
}
|
|
294
345
|
}
|
|
295
346
|
catch (error) {
|
|
@@ -297,7 +348,7 @@ async function planPhaseImpl(opts) {
|
|
|
297
348
|
log('readiness_enrichment_failed', `enrichment failed: ${reason}`);
|
|
298
349
|
return {
|
|
299
350
|
ok: false,
|
|
300
|
-
route:
|
|
351
|
+
route: failureRoute,
|
|
301
352
|
specPath,
|
|
302
353
|
model: '',
|
|
303
354
|
escalate: `readiness enrichment failed: ${reason}`,
|
|
@@ -305,10 +356,15 @@ async function planPhaseImpl(opts) {
|
|
|
305
356
|
};
|
|
306
357
|
}
|
|
307
358
|
}
|
|
359
|
+
// ADR-0161: stack PRs are not built yet; stack runs the slice-mode gates (its fallback).
|
|
360
|
+
const sliceMode = opts.sizeGateMode === 'slice' || opts.sizeGateMode === 'stack';
|
|
361
|
+
if (enforceSizeGate && opts.sizeGateMode === 'stack') {
|
|
362
|
+
log('plan', 'sizeGate.mode stack: stacked PRs are not built yet — using slice mode');
|
|
363
|
+
}
|
|
308
364
|
let planningSlice = false;
|
|
309
365
|
let sliceLabel = '';
|
|
310
366
|
let plannedSlice;
|
|
311
|
-
if (enforceSizeGate &&
|
|
367
|
+
if (enforceSizeGate && sliceMode && source.kind === GITHUB_ISSUE_SOURCE) {
|
|
312
368
|
const params = source.params;
|
|
313
369
|
const gate = await resolveSliceGate({
|
|
314
370
|
issue: params.issue,
|
|
@@ -327,7 +383,7 @@ async function planPhaseImpl(opts) {
|
|
|
327
383
|
});
|
|
328
384
|
const park = (reason) => ({
|
|
329
385
|
ok: false,
|
|
330
|
-
route:
|
|
386
|
+
route: failureRoute,
|
|
331
387
|
specPath,
|
|
332
388
|
model: '',
|
|
333
389
|
escalate: reason,
|
|
@@ -337,7 +393,7 @@ async function planPhaseImpl(opts) {
|
|
|
337
393
|
log('escalate', gate.reason);
|
|
338
394
|
return park(gate.reason);
|
|
339
395
|
}
|
|
340
|
-
if (gate.kind === 'over-cap') {
|
|
396
|
+
if (gate.kind === 'over-cap' || gate.kind === 'unsliceable') {
|
|
341
397
|
log('size-gate-escalated', gate.reason);
|
|
342
398
|
return park(gate.reason);
|
|
343
399
|
}
|
|
@@ -358,7 +414,7 @@ async function planPhaseImpl(opts) {
|
|
|
358
414
|
}
|
|
359
415
|
}
|
|
360
416
|
if (enforceSizeGate &&
|
|
361
|
-
|
|
417
|
+
!sliceMode &&
|
|
362
418
|
source.kind === GITHUB_ISSUE_SOURCE &&
|
|
363
419
|
readiness.template === 'factory-task' &&
|
|
364
420
|
readiness.sizeOk === false) {
|
|
@@ -376,7 +432,7 @@ async function planPhaseImpl(opts) {
|
|
|
376
432
|
onProviderFailure,
|
|
377
433
|
fileSubIssues: true,
|
|
378
434
|
});
|
|
379
|
-
return fileModeEscalation(decomposeResult.childIssues, readiness, specPath, log);
|
|
435
|
+
return fileModeEscalation(decomposeResult.childIssues, readiness, specPath, failureRoute, log);
|
|
380
436
|
}
|
|
381
437
|
// The fast path emits a compact Codex spec, so it is only valid when the route may be codex:
|
|
382
438
|
// a pinned claude/opencode build route (#1367) must go through model PLAN like any other issue.
|
|
@@ -436,7 +492,7 @@ async function planPhaseImpl(opts) {
|
|
|
436
492
|
let steering;
|
|
437
493
|
let replans = 0;
|
|
438
494
|
while (true) {
|
|
439
|
-
const prompt = applySteering(buildPlanPrompt({ issue, issueTitle, issueBody, specPath, constitutionCtx, adrCtx }), steering);
|
|
495
|
+
const prompt = applySteering(buildPlanPrompt({ issue, issueTitle, issueBody, specPath, constitutionCtx, adrCtx, runnableRoutes }), steering);
|
|
440
496
|
if (replans > 0) {
|
|
441
497
|
log('plan', `Re-planning after operator redirect (attempt ${replans + 1})`);
|
|
442
498
|
}
|
|
@@ -463,7 +519,7 @@ async function planPhaseImpl(opts) {
|
|
|
463
519
|
log('escalate', escalateLine ?? 'plan escalated');
|
|
464
520
|
return {
|
|
465
521
|
ok: false,
|
|
466
|
-
route:
|
|
522
|
+
route: failureRoute,
|
|
467
523
|
specPath,
|
|
468
524
|
model: result.model,
|
|
469
525
|
escalate: escalateLine,
|
|
@@ -477,7 +533,9 @@ async function planPhaseImpl(opts) {
|
|
|
477
533
|
}
|
|
478
534
|
// Read route from spec frontmatter (single normalization site: parseSpec)
|
|
479
535
|
const parsed = await readSpec(specPath);
|
|
480
|
-
|
|
536
|
+
// Re-read after the PLAN call: a CLI that failed sign-in during PLAN is no longer runnable (#2495).
|
|
537
|
+
const runnableNow = runnableBuildRoutes(router);
|
|
538
|
+
let route = parsed.route ?? defaultBuildRoute(runnableNow);
|
|
481
539
|
if (localOnly && route !== 'codex') {
|
|
482
540
|
log('warn', 'local-only mode requires a local Codex harness — forcing route to codex');
|
|
483
541
|
route = 'codex';
|
|
@@ -490,6 +548,13 @@ async function planPhaseImpl(opts) {
|
|
|
490
548
|
// since it's the frozen artifact downstream consumers (eval scoring, PR review) read.
|
|
491
549
|
await updateSpecRoute(specPath, 'claude', 'codex-disabled');
|
|
492
550
|
}
|
|
551
|
+
const resolved = resolveRunnableBuildRoute(route, runnableNow);
|
|
552
|
+
if (resolved.rerouted) {
|
|
553
|
+
const next = resolved.route;
|
|
554
|
+
log('model-override', `route ${route} has no runnable model on this machine, rerouting to ${next}`);
|
|
555
|
+
route = next;
|
|
556
|
+
await updateSpecRoute(specPath, next, 'route-unavailable');
|
|
557
|
+
}
|
|
493
558
|
if (opts.preferredRoute && route !== opts.preferredRoute) {
|
|
494
559
|
log('model-override', `pinned build route ${opts.preferredRoute} — overriding plan's ${route}`);
|
|
495
560
|
route = opts.preferredRoute;
|
|
@@ -522,6 +587,7 @@ async function planPhaseImpl(opts) {
|
|
|
522
587
|
// ~40 min of agent churn is a planning failure, not a build problem.
|
|
523
588
|
// Decompose the issue instead of handing a mega-slice to BUILD: detect
|
|
524
589
|
// complexity at planning time and keep each build pass short (2026-08-15).
|
|
590
|
+
// File mode files the decomposition as sub-issues and re-queues them (#2662).
|
|
525
591
|
if (enforceSizeGate &&
|
|
526
592
|
source.kind === GITHUB_ISSUE_SOURCE &&
|
|
527
593
|
(designArtifact.targetTypes.length > MAX_BUILD_TARGET_TYPES ||
|
|
@@ -540,7 +606,7 @@ async function planPhaseImpl(opts) {
|
|
|
540
606
|
designArtifact: null,
|
|
541
607
|
});
|
|
542
608
|
// ADR-0147: in slice mode the post-plan gate slices a whole issue; a slice is never sliced again.
|
|
543
|
-
if (
|
|
609
|
+
if (sliceMode) {
|
|
544
610
|
if (planningSlice) {
|
|
545
611
|
const reason = `${sliceLabel} exceeds the bounded-build budget (${scope}) — parked; a slice is never sliced again`;
|
|
546
612
|
log('size-gate-escalated', reason);
|
|
@@ -565,7 +631,7 @@ async function planPhaseImpl(opts) {
|
|
|
565
631
|
const reason = `plan scope exceeds the bounded-build budget (${scope}) — sliced into ${gate.plan.slices.length} slice(s); the next run plans slice ${gate.slice.index}`;
|
|
566
632
|
return { ...park(reason), sliced: { sliceCount: gate.plan.slices.length } };
|
|
567
633
|
}
|
|
568
|
-
if (gate.kind === 'over-cap') {
|
|
634
|
+
if (gate.kind === 'over-cap' || gate.kind === 'unsliceable') {
|
|
569
635
|
log('size-gate-escalated', gate.reason);
|
|
570
636
|
return park(gate.reason);
|
|
571
637
|
}
|
|
@@ -573,7 +639,8 @@ async function planPhaseImpl(opts) {
|
|
|
573
639
|
log('escalate', reason);
|
|
574
640
|
return park(reason);
|
|
575
641
|
}
|
|
576
|
-
|
|
642
|
+
// File mode (#2662): file the decomposition as sub-issues and re-queue them instead of parking.
|
|
643
|
+
const decomposeResult = await decomposeOversizedIssue({
|
|
577
644
|
issue: params.issue,
|
|
578
645
|
repo: params.repo,
|
|
579
646
|
title: issueTitle,
|
|
@@ -584,7 +651,14 @@ async function planPhaseImpl(opts) {
|
|
|
584
651
|
log: (type, msg) => log(type, msg),
|
|
585
652
|
timeoutSeconds: Math.min(timeoutSeconds ?? 1800, 300),
|
|
586
653
|
onProviderFailure,
|
|
654
|
+
fileSubIssues: true,
|
|
587
655
|
});
|
|
656
|
+
const { childIssues } = decomposeResult;
|
|
657
|
+
if (childIssues.length > 0) {
|
|
658
|
+
const reason = `plan scope exceeds the bounded-build budget (${scope}) — decomposed into ${childIssues.map((n) => `#${n}`).join(', ')}`;
|
|
659
|
+
log('size-gate-decomposed', reason);
|
|
660
|
+
return { ...park(reason), decomposed: { childIssues } };
|
|
661
|
+
}
|
|
588
662
|
log('size-gate-escalated', fileReason);
|
|
589
663
|
return park(fileReason);
|
|
590
664
|
}
|
package/dist/phases/plan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/phases/plan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/phases/plan.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { Octokit } from '@octokit/rest';
|
|
2
|
+
import type { EventKind } from '../events/kinds.js';
|
|
3
|
+
import { type SlicePlan } from '../readiness/slice-plan.js';
|
|
4
|
+
import type { CheckSummary } from '../types/index.js';
|
|
5
|
+
/** One built, already-pushed slice branch, bottom to top. */
|
|
6
|
+
export interface StackSliceInput {
|
|
7
|
+
/** 1-based slice index from the slice plan. */
|
|
8
|
+
index: number;
|
|
9
|
+
/** Pushed head branch of this slice. */
|
|
10
|
+
branch: string;
|
|
11
|
+
diffStat: string;
|
|
12
|
+
specBody?: string;
|
|
13
|
+
risk?: string;
|
|
14
|
+
checkSummary?: CheckSummary;
|
|
15
|
+
reworkRounds?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface StackedPr {
|
|
18
|
+
index: number;
|
|
19
|
+
prNumber: number;
|
|
20
|
+
branch: string;
|
|
21
|
+
base: string;
|
|
22
|
+
}
|
|
23
|
+
export type SliceStackResult = {
|
|
24
|
+
ok: true;
|
|
25
|
+
stackNumber: number;
|
|
26
|
+
prs: StackedPr[];
|
|
27
|
+
} | {
|
|
28
|
+
ok: false;
|
|
29
|
+
reason: string;
|
|
30
|
+
prs: StackedPr[];
|
|
31
|
+
};
|
|
32
|
+
/** Opens one draft PR per built slice (slice 1 on main, slice k on slice k-1's branch), links them as one
|
|
33
|
+
* GitHub stack, and records every PR and branch in the slice-plan comment. Only the top PR closes the issue. */
|
|
34
|
+
export declare function openSliceStack(opts: {
|
|
35
|
+
octokit: Octokit;
|
|
36
|
+
repo: string;
|
|
37
|
+
issue: number;
|
|
38
|
+
title: string;
|
|
39
|
+
plan: SlicePlan;
|
|
40
|
+
slices: readonly StackSliceInput[];
|
|
41
|
+
log: (type: EventKind, msg: string) => void;
|
|
42
|
+
}): Promise<SliceStackResult>;
|
|
43
|
+
//# sourceMappingURL=ship-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship-stack.d.ts","sourceRoot":"","sources":["../../src/phases/ship-stack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,4BAA4B,CAAC;AAG5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,6DAA6D;AAC7D,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,gBAAgB,GAC1B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAE,CAAC;AAMxG;iHACiH;AACjH,wBAAsB,cAAc,CAAC,IAAI,EAAE;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;IACnC,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+E5B"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// src/phases/ship-stack.ts — ADR-0161 stack mode SHIP: open every built slice PR and link them as one GitHub stack.
|
|
2
|
+
import { withSliceState } from '../readiness/slice-plan.js';
|
|
3
|
+
import { upsertSlicePlanComment } from '../readiness/slice-plan-github.js';
|
|
4
|
+
import { renderPrBody } from '../reports/pr-body.js';
|
|
5
|
+
import { findOpenPR, isPullAlreadyExistsError } from './ship.js';
|
|
6
|
+
function messageOf(err) {
|
|
7
|
+
return err instanceof Error ? err.message : String(err);
|
|
8
|
+
}
|
|
9
|
+
/** Opens one draft PR per built slice (slice 1 on main, slice k on slice k-1's branch), links them as one
|
|
10
|
+
* GitHub stack, and records every PR and branch in the slice-plan comment. Only the top PR closes the issue. */
|
|
11
|
+
export async function openSliceStack(opts) {
|
|
12
|
+
const { octokit, repo, issue, plan, log } = opts;
|
|
13
|
+
const [owner, repoName] = repo.split('/');
|
|
14
|
+
const count = plan.slices.length;
|
|
15
|
+
const sorted = [...opts.slices].sort((a, b) => a.index - b.index);
|
|
16
|
+
if (sorted.length === 0)
|
|
17
|
+
return { ok: false, reason: 'no built slices to open', prs: [] };
|
|
18
|
+
const prs = [];
|
|
19
|
+
let failure;
|
|
20
|
+
for (const [i, slice] of sorted.entries()) {
|
|
21
|
+
const base = i === 0 ? 'main' : sorted[i - 1].branch;
|
|
22
|
+
const top = slice.index === count;
|
|
23
|
+
const label = `slice ${slice.index}/${count}`;
|
|
24
|
+
let prNumber;
|
|
25
|
+
try {
|
|
26
|
+
const { data: pr } = await octokit.rest.pulls.create({
|
|
27
|
+
owner,
|
|
28
|
+
repo: repoName,
|
|
29
|
+
head: slice.branch,
|
|
30
|
+
base,
|
|
31
|
+
title: `${opts.title} — ${label} (#${issue})`,
|
|
32
|
+
draft: true,
|
|
33
|
+
body: renderPrBody({
|
|
34
|
+
summaryLine: `Implements ${label} of #${issue}.`,
|
|
35
|
+
specBody: slice.specBody,
|
|
36
|
+
diffStat: slice.diffStat,
|
|
37
|
+
checkSummary: slice.checkSummary,
|
|
38
|
+
reworkRounds: slice.reworkRounds,
|
|
39
|
+
risk: slice.risk,
|
|
40
|
+
closes: top ? issue : undefined,
|
|
41
|
+
partOf: top ? undefined : issue,
|
|
42
|
+
}),
|
|
43
|
+
});
|
|
44
|
+
prNumber = pr.number;
|
|
45
|
+
log('pr_opened', `opened PR #${prNumber} for ${label} on ${slice.branch} (base ${base})`);
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
const existing = isPullAlreadyExistsError(err)
|
|
49
|
+
? await findOpenPR(octokit, owner, repoName, slice.branch)
|
|
50
|
+
: undefined;
|
|
51
|
+
if (existing?.status === 'found') {
|
|
52
|
+
prNumber = existing.prNumber;
|
|
53
|
+
log('recovered', `PR #${prNumber} already existed for ${label} on ${slice.branch}; reusing it`);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
failure = `could not open the PR for ${label} (${slice.branch}): ${messageOf(err)}`;
|
|
57
|
+
log('ship', failure);
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
prs.push({ index: slice.index, prNumber, branch: slice.branch, base });
|
|
62
|
+
}
|
|
63
|
+
let stackNumber = 0;
|
|
64
|
+
if (failure === undefined) {
|
|
65
|
+
try {
|
|
66
|
+
const { data } = await octokit.request('POST /repos/{owner}/{repo}/stacks', {
|
|
67
|
+
owner,
|
|
68
|
+
repo: repoName,
|
|
69
|
+
pull_requests: prs.map((p) => p.prNumber),
|
|
70
|
+
});
|
|
71
|
+
stackNumber = data.number;
|
|
72
|
+
log('ship', `linked PRs ${prs.map((p) => `#${p.prNumber}`).join(', ')} as stack ${stackNumber}`);
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
failure = `could not link the slice PRs as a stack: ${messageOf(err)}`;
|
|
76
|
+
log('ship', failure);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (prs.length > 0) {
|
|
80
|
+
try {
|
|
81
|
+
const recorded = prs.reduce((p, s) => withSliceState(p, s.index, 'pr-open', s.prNumber, s.branch), plan);
|
|
82
|
+
await upsertSlicePlanComment({ octokit, repo, issue, plan: recorded });
|
|
83
|
+
log('ship', `recorded slices ${prs.map((p) => p.index).join(', ')} as pr-open in the slice plan comment`);
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
return { ok: false, reason: `could not record the slice plan comment: ${messageOf(err)}`, prs };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return failure === undefined ? { ok: true, stackNumber, prs } : { ok: false, reason: failure, prs };
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=ship-stack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ship-stack.js","sourceRoot":"","sources":["../../src/phases/ship-stack.ts"],"names":[],"mappings":"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"}
|
package/dist/phases/ship.d.ts
CHANGED
|
@@ -48,6 +48,8 @@ declare function shipPhaseImpl(opts: {
|
|
|
48
48
|
reworkRounds?: number;
|
|
49
49
|
/** PR classifier decision (#1724), rendered into the evidence pack. */
|
|
50
50
|
reviewRouting?: ReviewRouting;
|
|
51
|
+
/** Model pins that were not honored (#2511), rendered into the evidence pack. */
|
|
52
|
+
pinNotes?: string[];
|
|
51
53
|
/** The run's resolved work request; when its kind is not 'github-issue', the PR
|
|
52
54
|
* title/body come from it instead of fetching the (nonexistent) issue (#507). */
|
|
53
55
|
work?: Pick<WorkRequest, 'id' | 'kind' | 'title'>;
|
|
@@ -66,6 +68,9 @@ declare function shipPhaseImpl(opts: {
|
|
|
66
68
|
}): Promise<ShipResult>;
|
|
67
69
|
export declare function findOpenPR(octokit: Octokit, owner: string, repo: string, branch: string): Promise<PrLookup>;
|
|
68
70
|
export declare function findMergedPR(octokit: Octokit, owner: string, repo: string, branch: string): Promise<PrLookup>;
|
|
71
|
+
/** A `pulls.create` 422 whose message says the PR already exists — recoverable by re-querying,
|
|
72
|
+
* unlike every other 422 (e.g. "No commits between ..."), which still propagates (#641). */
|
|
73
|
+
export declare function isPullAlreadyExistsError(err: unknown): boolean;
|
|
69
74
|
/** The result of asking GitHub whether a PR exists for a branch. `error` is never collapsed
|
|
70
75
|
* into `absent` — an unanswered lookup makes ship fail closed rather than open a duplicate
|
|
71
76
|
* PR (#641). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ship.d.ts","sourceRoot":"","sources":["../../src/phases/ship.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAiB,MAAM,iBAAiB,CAAC;AAEnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAEL,KAAK,iBAAiB,EAGvB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,KAAK,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEpH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B;2EACuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAiB9F;AAED,iBAAe,aAAa,CAAC,IAAI,EAAE;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,kFAAkF;IAClF,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC9D,6IAA6I;IAC7I,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;sFACkF;IAClF,IAAI,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IAClD,8GAA8G;IAC9G,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,yFAAyF;IACzF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sFAAsF;IACtF,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB;4GACwG;IACxG,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"ship.d.ts","sourceRoot":"","sources":["../../src/phases/ship.ts"],"names":[],"mappings":"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"}
|
package/dist/phases/ship.js
CHANGED
|
@@ -227,6 +227,7 @@ async function shipPhaseImpl(opts) {
|
|
|
227
227
|
startedAt: opts.startedAt,
|
|
228
228
|
logsDir: opts.logsDir,
|
|
229
229
|
reviewRouting: opts.reviewRouting,
|
|
230
|
+
pinNotes: opts.pinNotes,
|
|
230
231
|
});
|
|
231
232
|
await octokit.rest.issues.createComment({ owner, repo: repoName, issue_number: prNumber, body });
|
|
232
233
|
log('evidence', `posted evidence pack to PR #${prNumber}`);
|
|
@@ -350,7 +351,7 @@ export async function findMergedPR(octokit, owner, repo, branch) {
|
|
|
350
351
|
}
|
|
351
352
|
/** A `pulls.create` 422 whose message says the PR already exists — recoverable by re-querying,
|
|
352
353
|
* unlike every other 422 (e.g. "No commits between ..."), which still propagates (#641). */
|
|
353
|
-
function isPullAlreadyExistsError(err) {
|
|
354
|
+
export function isPullAlreadyExistsError(err) {
|
|
354
355
|
const e = err;
|
|
355
356
|
if (e?.status !== 422)
|
|
356
357
|
return false;
|