@on-par/factory-cli 0.9.25-next.9 → 0.9.26-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.
Files changed (104) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/__fixtures__/land-octokit.d.ts +98 -0
  3. package/dist/cli/__fixtures__/land-octokit.d.ts.map +1 -0
  4. package/dist/cli/__fixtures__/land-octokit.js +33 -0
  5. package/dist/cli/__fixtures__/land-octokit.js.map +1 -0
  6. package/dist/cli/base-health-ci.d.ts +1 -0
  7. package/dist/cli/base-health-ci.d.ts.map +1 -1
  8. package/dist/cli/base-health-ci.js +1 -1
  9. package/dist/cli/base-health-ci.js.map +1 -1
  10. package/dist/cli/doctor-codex-sandbox.d.ts +8 -4
  11. package/dist/cli/doctor-codex-sandbox.d.ts.map +1 -1
  12. package/dist/cli/doctor-codex-sandbox.js +25 -5
  13. package/dist/cli/doctor-codex-sandbox.js.map +1 -1
  14. package/dist/cli/doctor-config.d.ts.map +1 -1
  15. package/dist/cli/doctor-config.js +13 -2
  16. package/dist/cli/doctor-config.js.map +1 -1
  17. package/dist/cli/doctor.d.ts +2 -0
  18. package/dist/cli/doctor.d.ts.map +1 -1
  19. package/dist/cli/doctor.js +5 -6
  20. package/dist/cli/doctor.js.map +1 -1
  21. package/dist/cli/index.d.ts +2 -9
  22. package/dist/cli/index.d.ts.map +1 -1
  23. package/dist/cli/index.js +39 -95
  24. package/dist/cli/index.js.map +1 -1
  25. package/dist/cli/json-contract.d.ts.map +1 -1
  26. package/dist/cli/json-contract.js +5 -1
  27. package/dist/cli/json-contract.js.map +1 -1
  28. package/dist/cli/land-base-gate.d.ts +15 -0
  29. package/dist/cli/land-base-gate.d.ts.map +1 -0
  30. package/dist/cli/land-base-gate.js +37 -0
  31. package/dist/cli/land-base-gate.js.map +1 -0
  32. package/dist/cli/land-merge.d.ts +13 -0
  33. package/dist/cli/land-merge.d.ts.map +1 -0
  34. package/dist/cli/land-merge.js +25 -0
  35. package/dist/cli/land-merge.js.map +1 -0
  36. package/dist/cli/land-pr.d.ts +7 -13
  37. package/dist/cli/land-pr.d.ts.map +1 -1
  38. package/dist/cli/land-pr.js +19 -28
  39. package/dist/cli/land-pr.js.map +1 -1
  40. package/dist/cli/land.d.ts +1 -3
  41. package/dist/cli/land.d.ts.map +1 -1
  42. package/dist/cli/land.js +12 -9
  43. package/dist/cli/land.js.map +1 -1
  44. package/dist/cli/merge-base-gate.d.ts +21 -0
  45. package/dist/cli/merge-base-gate.d.ts.map +1 -0
  46. package/dist/cli/merge-base-gate.js +86 -0
  47. package/dist/cli/merge-base-gate.js.map +1 -0
  48. package/dist/cli/program-run-work.d.ts.map +1 -1
  49. package/dist/cli/program-run-work.js +4 -4
  50. package/dist/cli/program-run-work.js.map +1 -1
  51. package/dist/cli/repo-router.js +3 -1
  52. package/dist/cli/repo-router.js.map +1 -1
  53. package/dist/cli/run-branch.d.ts +5 -1
  54. package/dist/cli/run-branch.d.ts.map +1 -1
  55. package/dist/cli/run-branch.js +7 -4
  56. package/dist/cli/run-branch.js.map +1 -1
  57. package/dist/cli/run-brief.d.ts.map +1 -1
  58. package/dist/cli/run-brief.js +38 -10
  59. package/dist/cli/run-brief.js.map +1 -1
  60. package/dist/cli/run-lane-deps.d.ts +0 -4
  61. package/dist/cli/run-lane-deps.d.ts.map +1 -1
  62. package/dist/cli/run-lane.d.ts.map +1 -1
  63. package/dist/cli/run-lane.js +9 -26
  64. package/dist/cli/run-lane.js.map +1 -1
  65. package/dist/cli/ship-options.d.ts +3 -1
  66. package/dist/cli/ship-options.d.ts.map +1 -1
  67. package/dist/cli/ship-options.js +3 -3
  68. package/dist/cli/ship-options.js.map +1 -1
  69. package/dist/cli/ship-runtime.d.ts +1 -2
  70. package/dist/cli/ship-runtime.d.ts.map +1 -1
  71. package/dist/cli/ship-runtime.js.map +1 -1
  72. package/dist/cli/ship-steps.d.ts +1 -7
  73. package/dist/cli/ship-steps.d.ts.map +1 -1
  74. package/dist/cli/ship-steps.js +3 -23
  75. package/dist/cli/ship-steps.js.map +1 -1
  76. package/dist/cli/ship.d.ts +4 -2
  77. package/dist/cli/ship.d.ts.map +1 -1
  78. package/dist/cli/ship.js +16 -7
  79. package/dist/cli/ship.js.map +1 -1
  80. package/dist/cli/slice-index.d.ts +1 -1
  81. package/dist/cli/slice-index.d.ts.map +1 -1
  82. package/dist/cli/slice-index.js +4 -8
  83. package/dist/cli/slice-index.js.map +1 -1
  84. package/dist/cli/stack-run.d.ts +14 -2
  85. package/dist/cli/stack-run.d.ts.map +1 -1
  86. package/dist/cli/stack-run.js +50 -5
  87. package/dist/cli/stack-run.js.map +1 -1
  88. package/dist/cli/status-json.d.ts +1 -2
  89. package/dist/cli/status-json.d.ts.map +1 -1
  90. package/dist/cli/status-json.js +2 -7
  91. package/dist/cli/status-json.js.map +1 -1
  92. package/dist/cli/status.d.ts.map +1 -1
  93. package/dist/cli/status.js +4 -23
  94. package/dist/cli/status.js.map +1 -1
  95. package/package.json +4 -4
  96. package/schemas/status.schema.json +3 -1
  97. package/dist/cli/run-children.d.ts +0 -24
  98. package/dist/cli/run-children.d.ts.map +0 -1
  99. package/dist/cli/run-children.js +0 -73
  100. package/dist/cli/run-children.js.map +0 -1
  101. package/dist/cli/run-lane-decompose.d.ts +0 -12
  102. package/dist/cli/run-lane-decompose.d.ts.map +0 -1
  103. package/dist/cli/run-lane-decompose.js +0 -27
  104. package/dist/cli/run-lane-decompose.js.map +0 -1
@@ -0,0 +1,21 @@
1
+ import type { EventKind } from '@on-par/factory-core';
2
+ import type { RequiredChecksVerdict } from '@on-par/factory-core/internal';
3
+ export declare class BaseCiPendingError extends Error {
4
+ prNumber?: number;
5
+ }
6
+ type Options = {
7
+ file: string;
8
+ repo: string;
9
+ head: () => Promise<string>;
10
+ verdict: (sha: string) => Promise<RequiredChecksVerdict>;
11
+ descends?: (merge: string, head: string) => Promise<boolean>;
12
+ log: (kind: EventKind, message: string) => void;
13
+ now?: () => number;
14
+ sleep?: (ms: number) => Promise<void>;
15
+ };
16
+ export declare function createMergeBaseGate(opts: Options): {
17
+ check: (wait?: boolean) => Promise<void>;
18
+ record: (merge: string) => void;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=merge-base-gate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-base-gate.d.ts","sourceRoot":"","sources":["../../src/cli/merge-base-gate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAE3E,qBAAa,kBAAmB,SAAQ,KAAK;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,KAAK,OAAO,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACzD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,OAAO;+BAyDZ,OAAO,CAAC,IAAI,CAAC;oBAYhB,MAAM;EACvC"}
@@ -0,0 +1,86 @@
1
+ import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { dirname } from 'node:path';
3
+ export class BaseCiPendingError extends Error {
4
+ prNumber;
5
+ }
6
+ export function createMergeBaseGate(opts) {
7
+ const read = () => {
8
+ try {
9
+ const value = JSON.parse(readFileSync(opts.file, 'utf8'));
10
+ if (typeof value !== 'object' || value === null)
11
+ return undefined;
12
+ const entry = value[opts.repo];
13
+ return entry?.repo === opts.repo && typeof entry.merge === 'string' ? entry : undefined;
14
+ }
15
+ catch {
16
+ return undefined;
17
+ }
18
+ };
19
+ const write = (entry) => {
20
+ let all = {};
21
+ try {
22
+ all = JSON.parse(readFileSync(opts.file, 'utf8'));
23
+ }
24
+ catch {
25
+ all = {};
26
+ }
27
+ mkdirSync(dirname(opts.file), { recursive: true });
28
+ writeFileSync(opts.file, `${JSON.stringify({ ...all, [opts.repo]: entry }, null, 2)}\n`);
29
+ };
30
+ const once = async () => {
31
+ let sha;
32
+ let verdict;
33
+ try {
34
+ sha = await opts.head();
35
+ verdict = await opts.verdict(sha);
36
+ }
37
+ catch (err) {
38
+ throw new BaseCiPendingError(`base CI lookup failed: ${String(err)}`);
39
+ }
40
+ const entry = read();
41
+ if (verdict.green) {
42
+ if (entry?.paused) {
43
+ write({ ...entry, paused: false });
44
+ opts.log('red-main-cleared', `base CI green; merge pause cleared for ${entry.merge}`);
45
+ }
46
+ return true;
47
+ }
48
+ if (entry?.paused)
49
+ throw new BaseCiPendingError(`base merge pause for ${entry.merge}: ${verdict.reason}`);
50
+ if (verdict.noCodeHealthChecks)
51
+ return true;
52
+ if (verdict.state === 'failed') {
53
+ let related = entry?.merge === sha;
54
+ if (entry && !related) {
55
+ try {
56
+ related = (await opts.descends?.(entry.merge, sha)) === true;
57
+ }
58
+ catch (err) {
59
+ throw new BaseCiPendingError(`base ancestry lookup failed: ${String(err)}`);
60
+ }
61
+ }
62
+ if (entry && related && !read()?.paused) {
63
+ write({ ...entry, paused: true });
64
+ opts.log('red-main', `base CI failed after merge ${entry.merge}: ${verdict.reason}`);
65
+ }
66
+ throw new BaseCiPendingError(`base CI failed on ${sha}: ${verdict.reason}`);
67
+ }
68
+ return false;
69
+ };
70
+ const check = async (wait = true) => {
71
+ const now = opts.now ?? Date.now;
72
+ const sleep = opts.sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
73
+ const deadline = now() + 30 * 60_000;
74
+ let delay = 5_000;
75
+ for (;;) {
76
+ if (await once())
77
+ return;
78
+ if (!wait || now() >= deadline)
79
+ throw new BaseCiPendingError('base CI is pending; leaving PR open');
80
+ await sleep(Math.min(delay, deadline - now()));
81
+ delay = Math.min(delay * 2, 60_000);
82
+ }
83
+ };
84
+ return { check, record: (merge) => write({ repo: opts.repo, merge }) };
85
+ }
86
+ //# sourceMappingURL=merge-base-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-base-gate.js","sourceRoot":"","sources":["../../src/cli/merge-base-gate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"program-run-work.d.ts","sourceRoot":"","sources":["../../src/cli/program-run-work.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAiOzF"}
1
+ {"version":3,"file":"program-run-work.d.ts","sourceRoot":"","sources":["../../src/cli/program-run-work.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMlD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CA8NzF"}
@@ -31,10 +31,10 @@ export function registerRunWorkCommands(program, handlers) {
31
31
  .option('--no-draft-pr', 'Mark the PR ready for review after CI, overriding run.pr.draft in the repo config')
32
32
  .option('--branch-prefix <prefix>', BRANCH_PREFIX_OPTION_DESCRIPTION)
33
33
  .option('--base-branch <ref>', BASE_BRANCH_OPTION_DESCRIPTION)
34
- .option('--run-children', 'File mode only: when the size gate files child issues, run them (slice mode never files issues)')
35
- .option('--size-gate <mode>', 'Size gate mode for this run: file (file child issues / park), slice (ship as sequential slice PRs under the same issue; never files issues), off (skip both gates) or stack (stacked PR set built in one run; same as --stack); beats sizeGate.mode in the config')
34
+ .option('--run-children', 'Removed: exits 2 — oversized issues stack with --stack')
35
+ .option('--size-gate <mode>', 'Size gate mode for this run: stack (default; stacked PR set built in one run; same as --stack) or off (skip both gates); file and slice are deprecated aliases for stack; beats sizeGate.mode in the config')
36
36
  .option('--stack', "Build an oversized issue as a stacked PR set in one run: each slice's PR bases on the previous slice's PR head, the stack stops at the first failed slice; same as --size-gate stack")
37
- .option('--max-slices <count>', 'Slice mode: most slices a not-yet-started slice plan may have (1-20); an over-cap plan is recorded and parks; beats sizeGate.maxSlices (default 10)')
37
+ .option('--max-slices <count>', 'Stack mode: most slices a not-yet-started slice plan may have (1-20); an over-cap plan is recorded and parks; beats sizeGate.maxSlices (default 10)')
38
38
  .action(async (issueNum, opts) => {
39
39
  await handlers.cmdRunIssue(handlers.parseIssueArg(issueNum), opts);
40
40
  });
@@ -53,7 +53,7 @@ export function registerRunWorkCommands(program, handlers) {
53
53
  .option('--artifacts <dir>', 'Local-only: write a versioned benchmark artifact manifest (manifest.json, request.json, events.ndjson, diff.patch) to this directory; requires --workspace')
54
54
  .option('--branch-prefix <prefix>', BRANCH_PREFIX_OPTION_DESCRIPTION)
55
55
  .option('--base-branch <ref>', BASE_BRANCH_OPTION_DESCRIPTION)
56
- .option('--stack', "Several briefs: open them as a PR stack — each brief starts from and targets the previous brief's PR head branch; a failure or missing PR (e.g. --no-pr) stops the stack and skips the rest")
56
+ .option('--stack', "Several briefs: open them as a PR stack — each brief starts from and targets the previous brief's PR head branch; a failure or missing PR (e.g. --no-pr) stops the stack and skips the rest. One brief: an over-budget brief is sliced and built as a stacked PR set in one run")
57
57
  .action(async (file, files, opts) => {
58
58
  await handlers.cmdRunBrief([file, ...files], opts);
59
59
  });
@@ -1 +1 @@
1
- {"version":3,"file":"program-run-work.js","sourceRoot":"","sources":["../../src/cli/program-run-work.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program-run-work.js","sourceRoot":"","sources":["../../src/cli/program-run-work.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAGhG,OAAO,EAAE,sCAAsC,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAI9G,MAAM,8BAA8B,GAClC,uIAAuI,CAAC;AAE1I,MAAM,UAAU,uBAAuB,CAAC,OAAgB,EAAE,QAAyB;IACjF,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CACV,4GAA4G,CAC7G;SACA,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;SAClE,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,eAAe,EAAE,gEAAgE,CAAC;SACzF,MAAM,CACL,SAAS,EACT,0GAA0G,CAC3G;SACA,MAAM,CAAC,gBAAgB,EAAE,sEAAsE,CAAC;SAChG,MAAM,CAAC,cAAc,EAAE,4DAA4D,CAAC;SACpF,MAAM,CACL,YAAY,EACZ,qGAAqG,CACtG;SACA,MAAM,CAAC,eAAe,EAAE,mFAAmF,CAAC;SAC5G,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;SACpE,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;SAC7D,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,kGAAkG,CAAC;SAC/G,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;SAClE,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,eAAe,EAAE,gEAAgE,CAAC;SACzF,MAAM,CACL,SAAS,EACT,0GAA0G,CAC3G;SACA,MAAM,CAAC,gBAAgB,EAAE,sEAAsE,CAAC;SAChG,MAAM,CAAC,cAAc,EAAE,4DAA4D,CAAC;SACpF,MAAM,CACL,YAAY,EACZ,qGAAqG,CACtG;SACA,MAAM,CAAC,eAAe,EAAE,mFAAmF,CAAC;SAC5G,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;SACpE,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;SAC7D,MAAM,CAAC,gBAAgB,EAAE,wDAAwD,CAAC;SAClF,MAAM,CACL,oBAAoB,EACpB,6MAA6M,CAC9M;SACA,MAAM,CACL,SAAS,EACT,sLAAsL,CACvL;SACA,MAAM,CACL,sBAAsB,EACtB,qJAAqJ,CACtJ;SACA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,6BAA6B,CAAC;SACtC,WAAW,CACV,8KAA8K,CAC/K;SACA,MAAM,CAAC,kBAAkB,EAAE,sCAAsC,CAAC;SAClE,MAAM,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;SAC3D,MAAM,CAAC,eAAe,EAAE,gEAAgE,CAAC;SACzF,MAAM,CACL,SAAS,EACT,0GAA0G,CAC3G;SACA,MAAM,CAAC,gBAAgB,EAAE,sEAAsE,CAAC;SAChG,MAAM,CAAC,cAAc,EAAE,4DAA4D,CAAC;SACpF,MAAM,CACL,YAAY,EACZ,qGAAqG,CACtG;SACA,MAAM,CAAC,eAAe,EAAE,mFAAmF,CAAC;SAC5G,MAAM,CACL,mBAAmB,EACnB,8IAA8I,CAC/I;SACA,MAAM,CACL,mBAAmB,EACnB,4JAA4J,CAC7J;SACA,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;SACpE,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;SAC7D,MAAM,CACL,SAAS,EACT,iRAAiR,CAClR;SACA,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,KAAe,EAAE,IAAI,EAAE,EAAE;QACpD,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CACV,0HAA0H,CAC3H;SACA,MAAM,CAAC,0BAA0B,EAAE,sCAAsC,CAAC;SAC1E,MAAM,CACL,eAAe,EACf,8IAA8I,CAC/I;SACA,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CACV,wGAAwG,CACzG;SACA,MAAM,CAAC,0BAA0B,EAAE,sCAAsC,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CACV,iHAAiH,CAClH;SACA,MAAM,CAAC,eAAe,EAAE,mEAAmE,CAAC;SAC5F,MAAM,CAAC,cAAc,EAAE,oFAAoF,CAAC;SAC5G,MAAM,CAAC,iBAAiB,EAAE,6EAA6E,CAAC;SACxG,MAAM,CACL,iBAAiB,EACjB,wJAAwJ,CACzJ;SACA,MAAM,CACL,oBAAoB,EACpB,+GAA+G,CAChH;SACA,MAAM,CACL,eAAe,EACf,8FAA8F,CAC/F;SACA,MAAM,CACL,kBAAkB,EAClB,2FAA2F,CAC5F;SACA,MAAM,CACL,8BAA8B,EAC9B,kFAAkF,CACnF;SACA,MAAM,CAAC,wBAAwB,EAAE,gFAAgF,CAAC;SAClH,MAAM,CACL,gBAAgB,EAChB,gIAAgI,CACjI;SACA,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;SACpE,MAAM,CACL,CAAC,IAQA,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5B,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,mFAAmF,CAAC;SAChG,MAAM,CAAC,OAAO,EAAE,gCAAgC,CAAC;SACjD,MAAM,CAAC,eAAe,EAAE,mEAAmE,CAAC;SAC5F,MAAM,CAAC,cAAc,EAAE,oFAAoF,CAAC;SAC5G,MAAM,CAAC,iBAAiB,EAAE,6EAA6E,CAAC;SACxG,MAAM,CACL,eAAe,EACf,8FAA8F,CAC/F;SACA,MAAM,CACL,kBAAkB,EAClB,2FAA2F,CAC5F;SACA,MAAM,CACL,8BAA8B,EAC9B,oFAAoF,CACrF;SACA,MAAM,CAAC,wBAAwB,EAAE,gFAAgF,CAAC;SAClH,MAAM,CACL,gBAAgB,EAChB,gIAAgI,CACjI;SACA,MAAM,CAAC,0BAA0B,EAAE,gCAAgC,CAAC;SACpE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,sDAAsD,CAAC;SACnE,MAAM,CAAC,QAAQ,EAAE,8EAA8E,CAAC;SAChG,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhE,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CACV,sIAAsI,CACvI;SACA,MAAM,CAAC,QAAQ,EAAE,8EAA8E,CAAC;SAChG,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,CAAC;SAC3E,MAAM,CAAC,CAAC,KAAyB,EAAE,IAAuC,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAEnH,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,mGAAmG,CAAC;SAChH,cAAc,CAAC,kBAAkB,EAAE,+BAA+B,CAAC;SACnE,MAAM,CAAC,mBAAmB,EAAE,qDAAqD,EAAE,KAAK,CAAC;SACzF,MAAM,CAAC,iBAAiB,EAAE,uFAAuF,CAAC;SAClH,MAAM,CAAC,cAAc,EAAE,8EAA8E,CAAC;SACtG,MAAM,CAAC,aAAa,EAAE,4CAA4C,CAAC;SACnE,MAAM,CAAC,CAAC,GAAW,EAAE,IAAkB,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/E,CAAC"}
@@ -7,7 +7,9 @@ export function newRepoRouter(repoRoot, loaders, Router) {
7
7
  const repoConfig = loaders.loadRepoConfig(repoRoot);
8
8
  const effective = resolveEffectiveConfig(repoConfig);
9
9
  const router = new Router(applyRepoConfig(loaders.loadModelsConfig(), repoConfig), loaders.loadRoutesConfig(), false, undefined, effective.allowExperimental, effective.localOnly);
10
- router.setCodexFullAccessTasks?.(loaders.loadFactoryConfigForRepo(getFactoryPaths(repoRoot).config).sandbox.codexFullAccessTasks);
10
+ const sandbox = loaders.loadFactoryConfigForRepo(getFactoryPaths(repoRoot).config).sandbox;
11
+ router.setCodexFullAccessTasks?.(sandbox.codexFullAccessTasks);
12
+ router.setCodexSandbox?.(sandbox.codexSandbox);
11
13
  router.setLocalAuthSink?.(recordLocalAuthFailure);
12
14
  return router;
13
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"repo-router.js","sourceRoot":"","sources":["../../src/cli/repo-router.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,yDAAyD;AAEzD,OAAO,EACL,eAAe,EACf,eAAe,GAMhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAU/F,8GAA8G;AAC9G,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAA0B,EAAE,MAA0B;IACpG,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,EACvD,OAAO,CAAC,gBAAgB,EAAE,EAC1B,KAAK,EACL,SAAS,EACT,SAAS,CAAC,iBAAiB,EAC3B,SAAS,CAAC,SAAS,CACpB,CAAC;IACF,MAAM,CAAC,uBAAuB,EAAE,CAC9B,OAAO,CAAC,wBAAwB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAChG,CAAC;IACF,MAAM,CAAC,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,MAAM,CAAC,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAClD,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"repo-router.js","sourceRoot":"","sources":["../../src/cli/repo-router.ts"],"names":[],"mappings":"AAAA,qGAAqG;AACrG,yDAAyD;AAEzD,OAAO,EACL,eAAe,EACf,eAAe,GAMhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAU/F,8GAA8G;AAC9G,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAA0B,EAAE,MAA0B;IACpG,MAAM,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,UAAU,CAAC,EACvD,OAAO,CAAC,gBAAgB,EAAE,EAC1B,KAAK,EACL,SAAS,EACT,SAAS,CAAC,iBAAiB,EAC3B,SAAS,CAAC,SAAS,CACpB,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAC3F,MAAM,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC/D,MAAM,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,CAAC,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,iBAAiB,CAAC,MAAmB;IACnD,MAAM,CAAC,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAClD,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC"}
@@ -4,7 +4,8 @@ import { type CheckResumeRecord } from '@on-par/factory-core/internal';
4
4
  /**
5
5
  * Picks the lane branch. A plain GitHub-issue claim first looks for the issue's open factory PR so a requeue
6
6
  * continues on the stranded draft even after a title or prefix change (#2253); several candidates park as
7
- * escalate before any worktree exists. resume, rebuild, local-only, slice and stack runs keep their branch selection.
7
+ * escalate before any worktree exists. resume, rebuild, local-only and slice runs keep their branch selection; explicit stack runs
8
+ * keep theirs too, while a defaulted or aliased stack still adopts (#3832).
8
9
  */
9
10
  export declare function resolveRunBranch(opts: {
10
11
  issueNum: number;
@@ -12,6 +13,9 @@ export declare function resolveRunBranch(opts: {
12
13
  ghRepo: string;
13
14
  branchPrefix?: string;
14
15
  sizeGateMode: SizeGateMode;
16
+ /** #3832: stack came from --stack, --size-gate stack or sizeGate.mode: stack. */
17
+ explicitStack?: boolean;
18
+ parkOverBudget?: boolean;
15
19
  work: WorkRequest;
16
20
  ctx?: {
17
21
  localOnly?: LocalOnlyPolicy;
@@ -1 +1 @@
1
- {"version":3,"file":"run-branch.d.ts","sourceRoot":"","sources":["../../src/cli/run-branch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAI7G;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,CAAC;QAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACnH,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuClB"}
1
+ {"version":3,"file":"run-branch.d.ts","sourceRoot":"","sources":["../../src/cli/run-branch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAwC,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAI7G;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,iFAAiF;IACjF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,GAAG,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,CAAC;QAAC,UAAU,CAAC,EAAE,iBAAiB,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACnH,kEAAkE;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqDlB"}
@@ -5,13 +5,16 @@ import { shipRuntime } from './ship-runtime.js';
5
5
  /**
6
6
  * Picks the lane branch. A plain GitHub-issue claim first looks for the issue's open factory PR so a requeue
7
7
  * continues on the stranded draft even after a title or prefix change (#2253); several candidates park as
8
- * escalate before any worktree exists. resume, rebuild, local-only, slice and stack runs keep their branch selection.
8
+ * escalate before any worktree exists. resume, rebuild, local-only and slice runs keep their branch selection; explicit stack runs
9
+ * keep theirs too, while a defaulted or aliased stack still adopts (#3832).
9
10
  */
10
11
  export async function resolveRunBranch(opts) {
11
- const { issueNum, issueTitle, ghRepo, branchPrefix, sizeGateMode, work, ctx, noPr, baseBranch, octokit, eventsFile } = opts;
12
+ const { issueNum, issueTitle, ghRepo, branchPrefix, sizeGateMode, explicitStack, work, ctx, noPr, baseBranch, octokit, eventsFile, } = opts;
12
13
  if (ctx?.rebuild)
13
14
  return ctx.rebuild.branch; // #3325: never adopt the conflicting PR being replaced
14
- const sliceIndex = await findSliceIndex({ sizeGateMode, ctx, work, octokit, ghRepo, issueNum });
15
+ const sliceIndex = opts.parkOverBudget
16
+ ? undefined
17
+ : await findSliceIndex({ sizeGateMode, ctx, work, octokit, ghRepo, issueNum });
15
18
  if (ctx?.resumeFrom)
16
19
  return ctx.resumeFrom.branch;
17
20
  const fresh = branchFor(workKeyFromIssue(issueNum), issueTitle, branchPrefix, sliceIndex);
@@ -19,7 +22,7 @@ export async function resolveRunBranch(opts) {
19
22
  noPr ||
20
23
  baseBranch !== undefined ||
21
24
  sliceIndex !== undefined ||
22
- sizeGateMode === 'stack' ||
25
+ (sizeGateMode === 'stack' && explicitStack === true) ||
23
26
  work.kind !== GITHUB_ISSUE_SOURCE) {
24
27
  return fresh;
25
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-branch.js","sourceRoot":"","sources":["../../src/cli/run-branch.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EAInB,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAA0B,MAAM,+BAA+B,CAAC;AAC7G,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IActC;IACC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,GAClH,IAAI,CAAC;IACP,IAAI,GAAG,EAAE,OAAO;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,uDAAuD;IACpG,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChG,IAAI,GAAG,EAAE,UAAU;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;IAClD,MAAM,KAAK,GAAG,SAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAC1F,IACE,GAAG,EAAE,SAAS;QACd,IAAI;QACJ,UAAU,KAAK,SAAS;QACxB,UAAU,KAAK,SAAS;QACxB,YAAY,KAAK,OAAO;QACxB,IAAI,CAAC,IAAI,KAAK,mBAAmB,EACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAChH,MAAM,GAAG,GAAG,CAAC,IAAoE,EAAE,GAAW,EAAQ,EAAE,CACtG,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,GAAG,CACD,YAAY,EACZ,qBAAqB,KAAK,CAAC,QAAQ,OAAO,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,OAAO,2EAA2E,CACrJ,CAAC;YACF,OAAO,KAAK,CAAC,MAAM,CAAC;QACtB,KAAK,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7E,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,4BAA4B,QAAQ,KAAK,IAAI,+CAA+C,CAAC;YAC5H,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAC;YAC/B,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,CAAC,2BAA2B,QAAQ,KAAK,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QACrG,CAAC;QACD,KAAK,OAAO;YACV,GAAG,CAAC,wBAAwB,EAAE,uBAAuB,QAAQ,YAAY,KAAK,CAAC,MAAM,YAAY,KAAK,EAAE,CAAC,CAAC;YAC1G,OAAO,KAAK,CAAC;QACf,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"run-branch.js","sourceRoot":"","sources":["../../src/cli/run-branch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-brief.d.ts","sourceRoot":"","sources":["../../src/cli/run-brief.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA8B7C,4GAA4G;AAC5G,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5E,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;CACvC;AAQD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8GAA8G;IAC9G,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;uDAIuD;AACvD,wBAAsB,WAAW,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAyCrH"}
1
+ {"version":3,"file":"run-brief.d.ts","sourceRoot":"","sources":["../../src/cli/run-brief.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA8B7C,4GAA4G;AAC5G,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,OAAO,CAAC;IAC1B,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5E,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;CACvC;AAQD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gEAAgE;IAChE,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8GAA8G;IAC9G,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;uDAIuD;AACvD,wBAAsB,WAAW,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CrH"}
@@ -1,15 +1,16 @@
1
1
  // packages/cli/src/cli/run-brief.ts — the factory run-brief handler, moved out of index.ts (#3762)
2
2
  import { existsSync } from 'node:fs';
3
+ import { join } from 'node:path';
3
4
  import { styleText } from 'node:util';
4
5
  import { createDefaultWorkSourceRegistry, getFactoryPaths, hasUnresolvedPark, InvalidArtifactsDirError, InvalidWorkRequestInputError, InvalidWorkspaceError, LOCAL_BRIEF_SOURCE, readEvents, resolveArtifactsDir, resolveLocalOnlyPolicy, runStack, workKeyFromIssue, } from '@on-par/factory-core';
5
- import { logEvent } from '@on-par/factory-core/internal';
6
+ import { fileSlicePlanStore, logEvent } from '@on-par/factory-core/internal';
6
7
  import { CliExitError } from './errors.js';
7
8
  import { availableAgentClis, missingAgentCliMessage, notInitializedMessage } from './first-run.js';
8
9
  import { withRepoRunLock } from './repo-run-lock.js';
9
10
  import { recordDraftPrFlag } from './run-flags.js';
10
11
  import { shipIssue } from './ship.js';
11
12
  import { baseBranchConflict, baseBranchOrExit } from './ship-options.js';
12
- import { consoleStackLog, printStackResult } from './stack-run.js';
13
+ import { consoleStackLog, printStackResult, runSliceStack } from './stack-run.js';
13
14
  /** Deterministic run number for a brief, derived from its content digest.
14
15
  * Reserved 9,000,000+ range keeps brief branches/worktrees clear of real issue numbers. */
15
16
  function briefRunNumber(sha256Hex) {
@@ -28,6 +29,10 @@ export async function cmdRunBrief(files, opts, rt) {
28
29
  throw new CliExitError('factory: --artifacts takes exactly one brief (each run writes the same manifest files) — run the briefs one at a time', 2);
29
30
  }
30
31
  const env = await prepareRunBrief(opts, rt);
32
+ if (files.length === 1 && opts.stack) {
33
+ await runStackedBrief(files[0], opts, env, rt);
34
+ return;
35
+ }
31
36
  if (files.length === 1) {
32
37
  await runOneBrief(files[0], opts, env, rt);
33
38
  return;
@@ -94,15 +99,30 @@ async function prepareRunBrief(opts, rt) {
94
99
  const workSources = createDefaultWorkSourceRegistry({ octokit: rt.getOctokit() });
95
100
  return { repoRoot, paths, branchPrefix, localOnly, artifactsDir, ghRepo, workSources };
96
101
  }
97
- /** One brief through the one-shot pipeline under its own per-brief lock. Throws CliExitError(2) when
98
- * the brief cannot be resolved (no worktree or PR exists yet) and CliExitError(1) on a pipeline failure. */
99
- async function runOneBrief(briefPath, opts, env, rt) {
100
- const { repoRoot, paths, branchPrefix, localOnly, artifactsDir, ghRepo, workSources } = env;
101
- // Pre-flight: resolve the brief through the canonical work-request seam
102
- // BEFORE any worktree or PR exists — a malformed brief exits here, so BUILD never starts.
102
+ /** `run-brief <file> --stack` (#3813): an over-budget brief is sliced and its slices build as a stack in
103
+ * this one run; the slice plan lives in the run's state file, not on any issue. */
104
+ async function runStackedBrief(file, opts, env, rt) {
105
+ const { runNum } = await resolveBrief(file, env, rt);
106
+ const store = fileSlicePlanStore(join(env.paths.state, 'slice-plans', `${runNum}.md`));
107
+ await runSliceStack({ prefix: 'run-brief', label: file, failLabel: `brief ${file}` }, opts.baseBranch, {
108
+ readSlicePlan: async () => {
109
+ const lookup = await store.find();
110
+ return lookup.status === 'found' ? lookup.plan : undefined;
111
+ },
112
+ ship: async (base, onOutcome) => {
113
+ const outcome = await runOneBrief(file, { ...opts, baseBranch: base, sizeGate: 'stack' }, env, rt, {
114
+ slicePlanStore: store,
115
+ });
116
+ if (outcome)
117
+ onOutcome(outcome);
118
+ },
119
+ });
120
+ }
121
+ /** Resolves the brief through the canonical work-request seam BEFORE any worktree or PR exists. */
122
+ async function resolveBrief(briefPath, env, rt) {
103
123
  let work;
104
124
  try {
105
- work = await workSources.resolve(LOCAL_BRIEF_SOURCE, { path: briefPath });
125
+ work = await env.workSources.resolve(LOCAL_BRIEF_SOURCE, { path: briefPath });
106
126
  }
107
127
  catch (err) {
108
128
  if (err instanceof InvalidWorkRequestInputError) {
@@ -111,7 +131,14 @@ async function runOneBrief(briefPath, opts, env, rt) {
111
131
  throw new CliExitError(`factory: could not resolve brief at ${briefPath} (${rt.errorDetail(err)}) — no worktree or PR was created`, 2);
112
132
  }
113
133
  const digest = work.reference?.externalId ?? '';
114
- const runNum = briefRunNumber(digest);
134
+ return { work, digest, runNum: briefRunNumber(digest) };
135
+ }
136
+ /** One brief through the one-shot pipeline under its own per-brief lock. Throws CliExitError(2) when
137
+ * the brief cannot be resolved (no worktree or PR exists yet) and CliExitError(1) on a pipeline failure. */
138
+ async function runOneBrief(briefPath, opts, env, rt, extra) {
139
+ const { repoRoot, paths, branchPrefix, localOnly, artifactsDir, ghRepo } = env;
140
+ // Pre-flight: a malformed brief exits here, so BUILD never starts.
141
+ const { work, digest, runNum } = await resolveBrief(briefPath, env, rt);
115
142
  let outcome;
116
143
  await withRepoRunLock(paths, 'factory run-brief', async () => {
117
144
  recordDraftPrFlag(paths.runFlags, opts.draftPr);
@@ -135,6 +162,7 @@ async function runOneBrief(briefPath, opts, env, rt) {
135
162
  workSource: { kind: LOCAL_BRIEF_SOURCE, params: { path: briefPath } },
136
163
  localOnly,
137
164
  artifactsDir,
165
+ slicePlanStore: extra?.slicePlanStore,
138
166
  onOutcome: (o) => {
139
167
  outcome = o;
140
168
  },
@@ -1 +1 @@
1
- {"version":3,"file":"run-brief.js","sourceRoot":"","sources":["../../src/cli/run-brief.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-brief.js","sourceRoot":"","sources":["../../src/cli/run-brief.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,6 @@ import type { AwaitingCiRecord, logEvent, DiskGuardDecision, LoadGuardDecision,
3
3
  import type { Octokit } from '@octokit/rest';
4
4
  import type { AwaitingCiLaneOps } from './awaiting-ci-recheck.js';
5
5
  import type { BaseHoldDecision } from './base-hold.js';
6
- import type { ChildEnqueueResult } from './run-lane-decompose.js';
7
6
  import type { waitForMerge } from './land.js';
8
7
  import type { ReplacedPr } from './land-rebuild.js';
9
8
  export type RunLaneDeps = {
@@ -60,9 +59,6 @@ export type RunLaneDeps = {
60
59
  * Fail-closed: a rejection is logged as a warn and never changes lane flow. */
61
60
  recheckAwaitingCi?: (ops: AwaitingCiLaneOps) => Promise<void>;
62
61
  releaseIssue?: (issue: number, outcome: QueueReleaseOutcome) => Promise<void>;
63
- /** Writes decomposed children into the GitHub queue (queued, lane, order right behind the parent)
64
- * before the lane moves on, so a restart never loses them (#3539). Absent for static local lanes. */
65
- queueChildren?: (parent: number, children: number[]) => Promise<ChildEnqueueResult>;
66
62
  /** Refreshes the claim lease every HEARTBEAT_INTERVAL_MS while an issue is in flight
67
63
  * (#1500). Absent for static local-queue lanes, which carry no remote claim to lease. */
68
64
  heartbeat?: (issue: number) => Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"run-lane-deps.d.ts","sourceRoot":"","sources":["../../src/cli/run-lane-deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-lane-deps.d.ts","sourceRoot":"","sources":["../../src/cli/run-lane-deps.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run-lane.d.ts","sourceRoot":"","sources":["../../src/cli/run-lane.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAa,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAiChG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EACzC,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAubf"}
1
+ {"version":3,"file":"run-lane.d.ts","sourceRoot":"","sources":["../../src/cli/run-lane.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAa,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AAgChG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EAAE,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EACzC,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAyZf"}
@@ -15,10 +15,10 @@ import { releaseKeepOnRequeue } from './worktree-keep.js';
15
15
  import { shipIssue } from './ship.js';
16
16
  import { ClaimLostError, createClaimLease, laneRenewLogger, onClaimLost, withHeartbeat } from './lane-heartbeat.js';
17
17
  import { restackUnderHeartbeat } from './run-lane-restack.js';
18
- import { queueDecomposedChildren } from './run-lane-decompose.js';
19
18
  import { shipRuntime } from './ship-runtime.js';
19
+ import { BaseCiPendingError } from './merge-base-gate.js';
20
20
  export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {}) {
21
- const { ship = shipIssue, waitMerge = waitForMerge, recordStackMerge = async () => { }, restack = async () => ({ status: 'nothing', reason: 'restack not wired' }), pathExists = existsSync, emitEvent = logEvent, claimNext = async () => null, pollReviewRework, recordAwaitingCi, recheckAwaitingCi, releaseIssue = async () => { }, queueChildren, heartbeat, leaseMs = DEFAULT_CLAIM_LEASE_MS, hostId = defaultClaimantId(), reapWorktree = async () => { }, closeParkedPr = async () => { }, closeReplacedPr = (replaced) => closeReplacedPullRequest(ghRepo, replaced), sweepFinished = async () => { }, activeIssues = new Set(), countRemaining, baseHoldGate, loadGuard, diskGuard, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), now = () => new Date(), laneBreakerThreshold = 0, commentIssue = async () => { }, octokit: getOctokit, runId = '-', readParkSha = () => Promise.reject(new Error('no park sha reader')), providerBreaker = restoredLoggingBreaker(paths.breaker, paths.events, '-', lane, emitEvent), configStamp = () => {
21
+ const { ship = shipIssue, waitMerge = waitForMerge, recordStackMerge = async () => { }, restack = async () => ({ status: 'nothing', reason: 'restack not wired' }), pathExists = existsSync, emitEvent = logEvent, claimNext = async () => null, pollReviewRework, recordAwaitingCi, recheckAwaitingCi, releaseIssue = async () => { }, heartbeat, leaseMs = DEFAULT_CLAIM_LEASE_MS, hostId = defaultClaimantId(), reapWorktree = async () => { }, closeParkedPr = async () => { }, closeReplacedPr = (replaced) => closeReplacedPullRequest(ghRepo, replaced), sweepFinished = async () => { }, activeIssues = new Set(), countRemaining, baseHoldGate, loadGuard, diskGuard, sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)), now = () => new Date(), laneBreakerThreshold = 0, commentIssue = async () => { }, octokit: getOctokit, runId = '-', readParkSha = () => Promise.reject(new Error('no park sha reader')), providerBreaker = restoredLoggingBreaker(paths.breaker, paths.events, '-', lane, emitEvent), configStamp = () => {
22
22
  try {
23
23
  const st = statSync(paths.config);
24
24
  return `${st.mtimeMs}:${st.size}`;
@@ -35,7 +35,6 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
35
35
  let merged = 0;
36
36
  let awaitingReview = 0;
37
37
  let skipped = 0;
38
- let decomposed = 0;
39
38
  let parked = 0;
40
39
  const buildClaim = (issue) => ({ issue, decision: { kind: 'build' } });
41
40
  const pending = issues.map(buildClaim);
@@ -249,7 +248,7 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
249
248
  await settle(issue, 'done');
250
249
  }
251
250
  catch (err) {
252
- const { LaneParkError, LaneEnvironmentPauseError, IssueSkippedError, IssueDecomposedError } = shipRuntime();
251
+ const { LaneParkError, LaneEnvironmentPauseError, IssueSkippedError } = shipRuntime();
253
252
  if (err instanceof ClaimLostError) {
254
253
  // #3146: another host owns the claim. Keep the worktree; never release, reap, comment or park.
255
254
  onClaimLost(err, emitEvent, paths.events, lane, hostId, runId);
@@ -275,6 +274,11 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
275
274
  await settle(issue, 'done');
276
275
  continue;
277
276
  }
277
+ if (err instanceof BaseCiPendingError) {
278
+ streak = null;
279
+ await settle(issue, 'queued');
280
+ continue;
281
+ }
278
282
  if (err instanceof AwaitMergeStoppedError) {
279
283
  emitEvent(paths.events, 'await-merge-stopped', issue, `${err.message}; re-queued (#3291)`, { lane });
280
284
  streak = null;
@@ -287,27 +291,6 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
287
291
  await settle(issue, 'done');
288
292
  continue;
289
293
  }
290
- if (err instanceof IssueDecomposedError) {
291
- // shipIssue already rewrote the queue — splice the children in after the
292
- // current issue so this same lane run ships them, deduping ones already queued.
293
- // On a GitHub lane the children are first written to the tracker (#3539); only the ones
294
- // that were not written are spliced in-memory, the rest are claimed next through claimNext.
295
- let clean = true;
296
- let unwritten = err.childIssues;
297
- if (queueChildren && err.childIssues.length > 0) {
298
- ({ unwritten, clean } = await queueDecomposedChildren(queueChildren, issue, err.childIssues, lane, paths.events, emitEvent));
299
- }
300
- const fresh = unwritten.filter((n) => !seen.has(n));
301
- for (const n of fresh)
302
- seen.add(n);
303
- pending.splice(i + 1, 0, ...fresh.map(buildClaim));
304
- if (clean) {
305
- decomposed++;
306
- emitEvent(paths.events, 'decompose_filed', issue, `lane '${lane}' continuing with ${fresh.length} child issue(s) in place of #${issue}`, { lane });
307
- }
308
- await settle(issue, 'done');
309
- continue;
310
- }
311
294
  if (err instanceof LaneEnvironmentPauseError) {
312
295
  // The base is broken, not the issue (#1928): release to queued (never parked),
313
296
  // pause the lane whatever laneBreakerThreshold is, and stop claiming.
@@ -359,6 +342,6 @@ export async function runLane(lane, issues, repoRoot, ghRepo, paths, deps = {})
359
342
  continue;
360
343
  }
361
344
  }
362
- emitEvent(paths.events, 'lane-done', lane, `lane complete (${merged} merged, ${awaitingReview} awaiting review, ${skipped} skipped, ${decomposed} decomposed, ${parked} parked)`, { lane });
345
+ emitEvent(paths.events, 'lane-done', lane, `lane complete (${merged} merged, ${awaitingReview} awaiting review, ${skipped} skipped, ${parked} parked)`, { lane });
363
346
  }
364
347
  //# sourceMappingURL=run-lane.js.map