@on-par/factory-core 0.9.8-next.3 → 0.9.8-next.31

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 (163) hide show
  1. package/dist/config/effort.d.ts.map +1 -1
  2. package/dist/config/effort.js +5 -0
  3. package/dist/config/effort.js.map +1 -1
  4. package/dist/config/index.d.ts +9 -5
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/index.js +7 -6
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/config/intermediaries.d.ts +25 -0
  9. package/dist/config/intermediaries.d.ts.map +1 -0
  10. package/dist/config/intermediaries.js +40 -0
  11. package/dist/config/intermediaries.js.map +1 -0
  12. package/dist/config/repo-build-pin.js +2 -2
  13. package/dist/config/repo-build-pin.js.map +1 -1
  14. package/dist/config/repo-harnesses.d.ts +3 -0
  15. package/dist/config/repo-harnesses.d.ts.map +1 -1
  16. package/dist/config/repo-harnesses.js +6 -0
  17. package/dist/config/repo-harnesses.js.map +1 -1
  18. package/dist/config/repo-tier-guard.d.ts +4 -0
  19. package/dist/config/repo-tier-guard.d.ts.map +1 -0
  20. package/dist/config/repo-tier-guard.js +8 -0
  21. package/dist/config/repo-tier-guard.js.map +1 -0
  22. package/dist/config/repo.d.ts +8 -5
  23. package/dist/config/repo.d.ts.map +1 -1
  24. package/dist/config/repo.js +12 -10
  25. package/dist/config/repo.js.map +1 -1
  26. package/dist/config/v2.d.ts +2 -0
  27. package/dist/config/v2.d.ts.map +1 -1
  28. package/dist/config/v2.js +8 -0
  29. package/dist/config/v2.js.map +1 -1
  30. package/dist/daemon/execution-config.d.ts +3 -0
  31. package/dist/daemon/execution-config.d.ts.map +1 -1
  32. package/dist/daemon/run-runtime.d.ts +4 -1
  33. package/dist/daemon/run-runtime.d.ts.map +1 -1
  34. package/dist/daemon/run-runtime.js +3 -3
  35. package/dist/daemon/run-runtime.js.map +1 -1
  36. package/dist/discovery/gherkin-scenario.d.ts +4 -0
  37. package/dist/discovery/gherkin-scenario.d.ts.map +1 -0
  38. package/dist/discovery/gherkin-scenario.js +2 -0
  39. package/dist/discovery/gherkin-scenario.js.map +1 -0
  40. package/dist/discovery/promote.d.ts +1 -3
  41. package/dist/discovery/promote.d.ts.map +1 -1
  42. package/dist/discovery/promote.js.map +1 -1
  43. package/dist/events/kinds.d.ts +1 -1
  44. package/dist/events/kinds.d.ts.map +1 -1
  45. package/dist/events/kinds.js +1 -0
  46. package/dist/events/kinds.js.map +1 -1
  47. package/dist/filing/index.d.ts.map +1 -1
  48. package/dist/filing/index.js +1 -0
  49. package/dist/filing/index.js.map +1 -1
  50. package/dist/harness/catalog.d.ts +5 -0
  51. package/dist/harness/catalog.d.ts.map +1 -1
  52. package/dist/harness/catalog.js +10 -0
  53. package/dist/harness/catalog.js.map +1 -1
  54. package/dist/harness/check.d.ts +29 -0
  55. package/dist/harness/check.d.ts.map +1 -0
  56. package/dist/harness/check.js +104 -0
  57. package/dist/harness/check.js.map +1 -0
  58. package/dist/harness/classify.d.ts.map +1 -1
  59. package/dist/harness/classify.js +4 -0
  60. package/dist/harness/classify.js.map +1 -1
  61. package/dist/harness/claude-cli.d.ts +10 -1
  62. package/dist/harness/claude-cli.d.ts.map +1 -1
  63. package/dist/harness/claude-cli.js +38 -3
  64. package/dist/harness/claude-cli.js.map +1 -1
  65. package/dist/harness/contract.d.ts.map +1 -1
  66. package/dist/harness/contract.js +1 -0
  67. package/dist/harness/contract.js.map +1 -1
  68. package/dist/harness/index.d.ts +1 -1
  69. package/dist/harness/index.d.ts.map +1 -1
  70. package/dist/harness/index.js +1 -0
  71. package/dist/harness/index.js.map +1 -1
  72. package/dist/harness/opencode.d.ts +33 -5
  73. package/dist/harness/opencode.d.ts.map +1 -1
  74. package/dist/harness/opencode.js +104 -16
  75. package/dist/harness/opencode.js.map +1 -1
  76. package/dist/harness/pi.d.ts +32 -0
  77. package/dist/harness/pi.d.ts.map +1 -0
  78. package/dist/harness/pi.js +194 -0
  79. package/dist/harness/pi.js.map +1 -0
  80. package/dist/index.d.ts +2 -1
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/internal.d.ts +6 -6
  83. package/dist/internal.d.ts.map +1 -1
  84. package/dist/internal.js +3 -0
  85. package/dist/internal.js.map +1 -1
  86. package/dist/models/diagnose-helpers.d.ts +8 -0
  87. package/dist/models/diagnose-helpers.d.ts.map +1 -0
  88. package/dist/models/diagnose-helpers.js +20 -0
  89. package/dist/models/diagnose-helpers.js.map +1 -0
  90. package/dist/models/harness-probe.d.ts +3 -0
  91. package/dist/models/harness-probe.d.ts.map +1 -0
  92. package/dist/models/harness-probe.js +20 -0
  93. package/dist/models/harness-probe.js.map +1 -0
  94. package/dist/models/index.d.ts +16 -15
  95. package/dist/models/index.d.ts.map +1 -1
  96. package/dist/models/index.js +62 -62
  97. package/dist/models/index.js.map +1 -1
  98. package/dist/models/overrides.d.ts +13 -0
  99. package/dist/models/overrides.d.ts.map +1 -0
  100. package/dist/models/overrides.js +24 -0
  101. package/dist/models/overrides.js.map +1 -0
  102. package/dist/models/pi-auth.d.ts +15 -0
  103. package/dist/models/pi-auth.d.ts.map +1 -0
  104. package/dist/models/pi-auth.js +57 -0
  105. package/dist/models/pi-auth.js.map +1 -0
  106. package/dist/models/zdr-review.d.ts +6 -0
  107. package/dist/models/zdr-review.d.ts.map +1 -0
  108. package/dist/models/zdr-review.js +27 -0
  109. package/dist/models/zdr-review.js.map +1 -0
  110. package/dist/phases/build-opencode-failover.d.ts +43 -0
  111. package/dist/phases/build-opencode-failover.d.ts.map +1 -0
  112. package/dist/phases/build-opencode-failover.js +36 -0
  113. package/dist/phases/build-opencode-failover.js.map +1 -0
  114. package/dist/phases/build.d.ts +2 -0
  115. package/dist/phases/build.d.ts.map +1 -1
  116. package/dist/phases/build.js +15 -0
  117. package/dist/phases/build.js.map +1 -1
  118. package/dist/queue/github-queue.d.ts +2 -2
  119. package/dist/queue/github-queue.d.ts.map +1 -1
  120. package/dist/queue/github-queue.js +1 -1
  121. package/dist/queue/github-queue.js.map +1 -1
  122. package/dist/router/breaker.d.ts +14 -7
  123. package/dist/router/breaker.d.ts.map +1 -1
  124. package/dist/router/breaker.js +27 -12
  125. package/dist/router/breaker.js.map +1 -1
  126. package/dist/router/index.d.ts +2 -1
  127. package/dist/router/index.d.ts.map +1 -1
  128. package/dist/router/index.js +7 -1
  129. package/dist/router/index.js.map +1 -1
  130. package/dist/router/missing-worktree.d.ts +7 -0
  131. package/dist/router/missing-worktree.d.ts.map +1 -0
  132. package/dist/router/missing-worktree.js +14 -0
  133. package/dist/router/missing-worktree.js.map +1 -0
  134. package/dist/router/requires.js +2 -2
  135. package/dist/router/requires.js.map +1 -1
  136. package/dist/run/provider-breaker-gate.d.ts +25 -0
  137. package/dist/run/provider-breaker-gate.d.ts.map +1 -0
  138. package/dist/run/provider-breaker-gate.js +37 -0
  139. package/dist/run/provider-breaker-gate.js.map +1 -0
  140. package/dist/run/run-issue.d.ts.map +1 -1
  141. package/dist/run/run-issue.js +16 -15
  142. package/dist/run/run-issue.js.map +1 -1
  143. package/dist/sim/jitter.js +1 -1
  144. package/dist/sim/jitter.js.map +1 -1
  145. package/dist/types/index.d.ts +6 -1
  146. package/dist/types/index.d.ts.map +1 -1
  147. package/dist/usage/subscription.js +1 -1
  148. package/dist/usage/subscription.js.map +1 -1
  149. package/dist/utils/exec.d.ts +1 -1
  150. package/dist/utils/exec.d.ts.map +1 -1
  151. package/dist/utils/local-auth-record.d.ts +2 -2
  152. package/dist/utils/local-auth-record.d.ts.map +1 -1
  153. package/dist/utils/local-auth-record.js +8 -3
  154. package/dist/utils/local-auth-record.js.map +1 -1
  155. package/dist/utils/worktree-gc-issues.d.ts +22 -0
  156. package/dist/utils/worktree-gc-issues.d.ts.map +1 -0
  157. package/dist/utils/worktree-gc-issues.js +80 -0
  158. package/dist/utils/worktree-gc-issues.js.map +1 -0
  159. package/dist/utils/worktree-gc.d.ts +5 -0
  160. package/dist/utils/worktree-gc.d.ts.map +1 -1
  161. package/dist/utils/worktree-gc.js +39 -77
  162. package/dist/utils/worktree-gc.js.map +1 -1
  163. package/package.json +5 -5
@@ -17,6 +17,8 @@ export interface ModelDefinition {
17
17
  providerModel?: string;
18
18
  /** Provider-native options, e.g. Ollama num_ctx/temperature */
19
19
  providerOptions?: Record<string, unknown>;
20
+ /** Approved Anthropic-compatible intermediary base URL (https) the claude-cli harness targets for this model; needs envKey (#2906, ADR-0163) */
21
+ endpoint?: string;
20
22
  /** Whether this model runs via Codex CLI */
21
23
  codex?: boolean;
22
24
  /** Extra Codex CLI flags */
@@ -26,6 +28,7 @@ export interface ModelDefinition {
26
28
  harness?: string;
27
29
  /** Speculative/unproven model — excluded from routing unless FACTORY_EXPERIMENTAL=1 */
28
30
  experimental?: boolean;
31
+ trainsOnPrompts?: boolean;
29
32
  }
30
33
  export type TaskType = 'plan' | 'build_codex' | 'build_claude' | 'check_compile' | 'check_tests' | 'check_lint' | 'check_accessibility' | 'check_links' | 'check_custom' | 'check_design' | 'review_pr' | 'security_review' | 'classify_pr' | 'dispute_resolution' | 'triage' | (string & {});
31
34
  export interface RouteDefinition {
@@ -84,7 +87,9 @@ export interface CheckSummary {
84
87
  * (harness/index.ts aliases HarnessFailureReason to this type). */
85
88
  export type FailoverReason = 'rate_limit' | 'usage_cap' | 'timeout' | 'error' | 'empty_response' | 'unavailable' | 'local_auth'
86
89
  /** The agent CLI could not be started (exit 127, ENOENT, command not found). */
87
- | 'cli_missing' | 'schema_invalid' | 'apply_failed' | 'verify_failed' | 'unknown';
90
+ | 'cli_missing' | 'schema_invalid' | 'apply_failed' | 'verify_failed'
91
+ /** An agent CLI auto-rejected a tool permission in a non-interactive run (#2888). */
92
+ | 'permission_denied' | 'unknown';
88
93
  /** Pipeline phase a failure terminated in. */
89
94
  export type FailurePhase = 'plan' | 'build' | 'check' | 'ship';
90
95
  /** Whether the fault is in the factory itself or in the product under work. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ const UsageResponseSchema = z
28
28
  resets_at: z.string().nullish(),
29
29
  }),
30
30
  })
31
- .passthrough();
31
+ .loose();
32
32
  export async function readClaudeAccessToken(deps = {}) {
33
33
  const env = deps.env ?? process.env;
34
34
  const exec = deps.exec ?? defaultKeychainExec;
@@ -1 +1 @@
1
- {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/usage/subscription.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,wEAAwE;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAqBvF,MAAM,mBAAmB,GAA+C,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAC9F,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAE7B;2DAC2D;AAC3D,KAAK,UAAU,eAAe,CAC5B,GAAsB,EACtB,IAAgD;IAEhD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC,uBAAuB,EAAE,IAAI,EAAE,qBAAqB,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE;QACvG,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,8FAA8F;AAC9F,SAAS,sBAAsB,CAAC,GAAsB;IACpD,OAAO,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,mBAAmB,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;KAChC,CAAC;CACH,CAAC;KACD,WAAW,EAAE,CAAC;AAEjB,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAI,GAA0B,EAAE;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,mBAAmB,CAAC;IAC9C,MAAM,EACJ,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAC3B,YAAY,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,EAC/C,mBAAmB,GAAG,GAAG,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,EACvD,GAAG,GAAG,IAAI,CAAC,GAAG,GACf,GAAG,IAAI,CAAC;IAET,IAAI,GAAG,GAAkB,IAAI,CAAC;IAE9B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,YAAY,EAAE,CAAC;YACzC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,GAAG,WAAW,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,GAAG,IAAI,CAAC;QACb,CAAC;IACH,CAAC;IAED,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,mBAAmB,EAAE,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC;QAEnD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7E,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QAEnG,OAAO,WAAW,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAI,GAA0B,EAAE;IAC3E,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAEhC,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,2CAA2C,EAAE;YAC5E,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;gBAChC,gBAAgB,EAAE,kBAAkB;gBACpC,MAAM,EAAE,kBAAkB;aAC3B;YACD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAEjC,OAAO;YACL,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW;YACtD,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI;SAC1D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"subscription.js","sourceRoot":"","sources":["../../src/usage/subscription.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ export type ExecFn = (cmd: string, opts: {
2
2
  cwd?: string;
3
3
  timeoutMs?: number;
4
4
  maxBuffer?: number;
5
- env?: Record<string, string>;
5
+ env?: Record<string, string | undefined>;
6
6
  /** When set, the child is spawned detached (its own process group) and
7
7
  * its pid is reported here so a lane can track and later kill the
8
8
  * whole group. */
@@ -1 +1 @@
1
- {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,MAAM,GAAG,CACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IACJ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B;;uBAEmB;IACnB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;qCAGiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,KACE,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AA+GjD;;;;;;;;;;;eAWe;AACf,eAAO,MAAM,aAAa,EAAE,MAiC3B,CAAC"}
1
+ {"version":3,"file":"exec.d.ts","sourceRoot":"","sources":["../../src/utils/exec.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,MAAM,GAAG,CACnB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IACJ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC;;uBAEmB;IACnB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;qCAGiC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,KACE,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AA+GjD;;;;;;;;;;;eAWe;AACf,eAAO,MAAM,aAAa,EAAE,MAiC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- export type LocalAuthAgent = 'claude' | 'codex';
1
+ export type LocalAuthAgent = 'claude' | 'codex' | 'opencode';
2
2
  export interface LocalAuthRecordDeps {
3
3
  env?: NodeJS.ProcessEnv;
4
4
  homedir?: () => string;
@@ -17,7 +17,7 @@ export interface LocalAuthFailure {
17
17
  export declare function localAuthRecordPath(deps?: LocalAuthRecordDeps): string;
18
18
  /** Maps a harness id (or provider) to the agent whose login it uses; undefined for others. */
19
19
  export declare function localAuthAgentFor(harnessOrProvider: string | undefined): LocalAuthAgent | undefined;
20
- /** Credential file whose mtime marks the agent's latest login. */
20
+ /** Credential file whose mtime marks the agent's latest login (opencode's is written by `opencode auth login`). */
21
21
  export declare function localAuthCredentialPath(agent: LocalAuthAgent, deps?: LocalAuthRecordDeps): string;
22
22
  /** Records that `agent` just failed local_auth. Best effort; never throws. */
23
23
  export declare function recordLocalAuthFailure(agent: LocalAuthAgent, deps?: LocalAuthRecordDeps): void;
@@ -1 +1 @@
1
- {"version":3,"file":"local-auth-record.d.ts","sourceRoot":"","sources":["../../src/utils/local-auth-record.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAE1E;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAInG;AAED,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAKrG;AAkBD,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,GAAE,mBAAwB,GAAG,IAAI,CAkBlG;AAED;;;8FAG8F;AAC9F,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,cAAc,EACrB,IAAI,GAAE,mBAAwB,GAC7B,gBAAgB,GAAG,IAAI,CAWzB"}
1
+ {"version":3,"file":"local-auth-record.d.ts","sourceRoot":"","sources":["../../src/utils/local-auth-record.ts"],"names":[],"mappings":"AAkBA,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,wCAAwC;IACxC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,cAAc,CAAC;IACtB,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAE1E;AAED,8FAA8F;AAC9F,wBAAgB,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,SAAS,CAKnG;AAED,mHAAmH;AACnH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,GAAE,mBAAwB,GAAG,MAAM,CAQrG;AAkBD,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,GAAE,mBAAwB,GAAG,IAAI,CAkBlG;AAED;;;8FAG8F;AAC9F,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,cAAc,EACrB,IAAI,GAAE,mBAAwB,GAC7B,gBAAgB,GAAG,IAAI,CAWzB"}
@@ -1,4 +1,4 @@
1
- // src/utils/local-auth-record.ts — the last run-time local_auth failure per agent (#2733).
1
+ // src/utils/local-auth-record.ts — the last run-time local_auth failure per agent (#2733, #2890 adds opencode).
2
2
  //
3
3
  // A refresh token that is present but already used or revoked looks fine on disk, and doctor
4
4
  // must not refresh it to find out (that would burn the token). So when a run hits local_auth,
@@ -23,14 +23,19 @@ export function localAuthAgentFor(harnessOrProvider) {
23
23
  return 'claude';
24
24
  if (harnessOrProvider === 'codex-cli')
25
25
  return 'codex';
26
+ if (harnessOrProvider === 'opencode')
27
+ return 'opencode';
26
28
  return undefined;
27
29
  }
28
- /** Credential file whose mtime marks the agent's latest login. */
30
+ /** Credential file whose mtime marks the agent's latest login (opencode's is written by `opencode auth login`). */
29
31
  export function localAuthCredentialPath(agent, deps = {}) {
30
32
  const env = deps.env ?? process.env;
31
33
  const home = (deps.homedir ?? osHomedir)();
32
34
  if (agent === 'claude')
33
35
  return resolve(claudeConfigDirPath(env, home), '.credentials.json');
36
+ if (agent === 'opencode') {
37
+ return join(env.XDG_DATA_HOME?.trim() || join(home, '.local', 'share'), 'opencode', 'auth.json');
38
+ }
34
39
  return join(env.CODEX_HOME?.trim() || join(home, '.codex'), 'auth.json');
35
40
  }
36
41
  function readAll(deps) {
@@ -40,7 +45,7 @@ function readAll(deps) {
40
45
  if (typeof parsed !== 'object' || parsed === null)
41
46
  return {};
42
47
  const out = {};
43
- for (const agent of ['claude', 'codex']) {
48
+ for (const agent of ['claude', 'codex', 'opencode']) {
44
49
  const at = parsed[agent]?.at;
45
50
  if (typeof at === 'string' && Number.isFinite(Date.parse(at)))
46
51
  out[agent] = { agent, at };
@@ -1 +1 @@
1
- {"version":3,"file":"local-auth-record.js","sourceRoot":"","sources":["../../src/utils/local-auth-record.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-auth-record.js","sourceRoot":"","sources":["../../src/utils/local-auth-record.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { EventKind } from '../events/kinds.js';
2
+ import type { IssueWarnDedup, SweepDeps } from './worktree-gc.js';
3
+ /** The owning issue's verdict on a lane worktree. `null` means "no verdict" (no client/repo,
4
+ * or the query failed) and must always fall back to the PR-state/local-evidence rules. */
5
+ export type IssueDisposition = 'reap-closed' | 'reap-parked' | 'reap-decomposed' | 'keep-claimed' | 'keep';
6
+ /** GitHub's verdict on the owning issue. A closed issue and a factory:parked label both mean
7
+ * the lane is finished-or-parked and its clean checkout is redundant (see ADR, this PR). */
8
+ export declare function resolveIssueDisposition(octokit: SweepDeps['octokit'], repo: string | undefined, issue: number, log: (type: EventKind, msg: string) => void, issueWarnDedup: IssueWarnDedup): Promise<IssueDisposition | null>;
9
+ /** The lane issue's existence on GitHub, checked only for worktree-gc's dry-run report.
10
+ * 'not-configured' (no client/repo) and 'error' (the call threw anything but a 404) both mean
11
+ * "no verdict" but are reported differently: 'error' surfaces as unverifiable so a rate-limit
12
+ * or network blip is never mistaken for a confirmed-gone issue. */
13
+ export declare function resolveIssueExistence(octokit: SweepDeps['octokit'], repo: string | undefined, issue: number, log: (type: EventKind, msg: string) => void): Promise<'exists' | 'not-found' | 'error' | 'not-configured'>;
14
+ /** Whether the lane issue carries an active, unexpired claim, checked only for worktree-gc's
15
+ * dry-run report. A `factory:claimed-by:*` label alone is not enough (#1501): if the issue also
16
+ * carries a `factory:claim-expires:*` lease label and that lease has lapsed, `findStaleClaims`
17
+ * (the same primitive the queue's own reconcile uses, ADR-0104/#1506) reads it as unclaimed
18
+ * immediately — no separate release step, and no host-pid/hostname evidence anywhere. Fail-safe:
19
+ * no client/repo, or a lookup error, both resolve to 'unknown' — never conflated with a
20
+ * confirmed 'unclaimed' verdict. */
21
+ export declare function resolveActiveClaim(octokit: SweepDeps['octokit'], repo: string | undefined, issue: number, log: (type: EventKind, msg: string) => void): Promise<'claimed' | 'unclaimed' | 'unknown'>;
22
+ //# sourceMappingURL=worktree-gc-issues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-gc-issues.d.ts","sourceRoot":"","sources":["../../src/utils/worktree-gc-issues.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElE;2FAC2F;AAC3F,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,aAAa,GAAG,iBAAiB,GAAG,cAAc,GAAG,MAAM,CAAC;AAE3G;6FAC6F;AAC7F,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC3C,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAiClC;AAED;;;oEAGoE;AACpE,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GAC1C,OAAO,CAAC,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,gBAAgB,CAAC,CAc9D;AAED;;;;;;qCAMqC;AACrC,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,SAAS,CAAC,SAAS,CAAC,EAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GAC1C,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC,CAgB9C"}
@@ -0,0 +1,80 @@
1
+ import { CLAIMED_BY_LABEL_PREFIX, DECOMPOSED_LABEL, PARKED_LABEL } from '../queue/github-queue.js';
2
+ import { findStaleClaims } from '../queue/stale-claims.js';
3
+ /** GitHub's verdict on the owning issue. A closed issue and a factory:parked label both mean
4
+ * the lane is finished-or-parked and its clean checkout is redundant (see ADR, this PR). */
5
+ export async function resolveIssueDisposition(octokit, repo, issue, log, issueWarnDedup) {
6
+ if (!octokit || !repo)
7
+ return null;
8
+ const [owner, repoName] = repo.split('/');
9
+ try {
10
+ const { data } = await octokit.rest.issues.get({ owner, repo: repoName, issue_number: issue });
11
+ if (data.state === 'closed')
12
+ return 'reap-closed';
13
+ const labels = new Set((data.labels ?? []).map((l) => (typeof l === 'string' ? l : (l?.name ?? ''))));
14
+ // An open issue with a live claim is being worked by some lane/run right now (#2964): its
15
+ // worktree is never reaped or quarantined, whatever its PR history or age. A lapsed lease is
16
+ // stale (findStaleClaims) and does not protect.
17
+ if ([...labels].some((name) => name.startsWith(CLAIMED_BY_LABEL_PREFIX)) &&
18
+ findStaleClaims([{ number: issue, labels: [...labels] }]).length === 0) {
19
+ return 'keep-claimed';
20
+ }
21
+ if (labels.has(PARKED_LABEL))
22
+ return 'reap-parked';
23
+ if (labels.has(DECOMPOSED_LABEL))
24
+ return 'reap-decomposed';
25
+ return 'keep';
26
+ }
27
+ catch (err) {
28
+ if (issueWarnDedup.record(issue)) {
29
+ log('warn', `worktree-gc: GitHub issue query failed for #${issue} (${err?.message ?? String(err)}) — using PR/local evidence only`);
30
+ }
31
+ else {
32
+ log('warn', `worktree-gc: GitHub issue query failed for #${issue} — suppressed ${issueWarnDedup.suppressedCount(issue)} repeated warning(s) (using PR/local evidence only)`);
33
+ }
34
+ return null;
35
+ }
36
+ }
37
+ /** The lane issue's existence on GitHub, checked only for worktree-gc's dry-run report.
38
+ * 'not-configured' (no client/repo) and 'error' (the call threw anything but a 404) both mean
39
+ * "no verdict" but are reported differently: 'error' surfaces as unverifiable so a rate-limit
40
+ * or network blip is never mistaken for a confirmed-gone issue. */
41
+ export async function resolveIssueExistence(octokit, repo, issue, log) {
42
+ if (!octokit || !repo)
43
+ return 'not-configured';
44
+ const [owner, repoName] = repo.split('/');
45
+ try {
46
+ await octokit.rest.issues.get({ owner, repo: repoName, issue_number: issue });
47
+ return 'exists';
48
+ }
49
+ catch (err) {
50
+ if (err?.status === 404)
51
+ return 'not-found';
52
+ log('warn', `worktree-gc: GitHub issue existence check failed for #${issue} (${err?.message ?? String(err)}) — reporting as unverifiable`);
53
+ return 'error';
54
+ }
55
+ }
56
+ /** Whether the lane issue carries an active, unexpired claim, checked only for worktree-gc's
57
+ * dry-run report. A `factory:claimed-by:*` label alone is not enough (#1501): if the issue also
58
+ * carries a `factory:claim-expires:*` lease label and that lease has lapsed, `findStaleClaims`
59
+ * (the same primitive the queue's own reconcile uses, ADR-0104/#1506) reads it as unclaimed
60
+ * immediately — no separate release step, and no host-pid/hostname evidence anywhere. Fail-safe:
61
+ * no client/repo, or a lookup error, both resolve to 'unknown' — never conflated with a
62
+ * confirmed 'unclaimed' verdict. */
63
+ export async function resolveActiveClaim(octokit, repo, issue, log) {
64
+ if (!octokit || !repo)
65
+ return 'unknown';
66
+ const [owner, repoName] = repo.split('/');
67
+ try {
68
+ const { data } = await octokit.rest.issues.get({ owner, repo: repoName, issue_number: issue });
69
+ const labels = (data.labels ?? []).map((label) => (typeof label === 'string' ? label : (label?.name ?? '')));
70
+ if (!labels.some((name) => name.startsWith(CLAIMED_BY_LABEL_PREFIX)))
71
+ return 'unclaimed';
72
+ const stale = findStaleClaims([{ number: issue, labels }]);
73
+ return stale.length > 0 ? 'unclaimed' : 'claimed';
74
+ }
75
+ catch (err) {
76
+ log('warn', `worktree-gc: GitHub claim-label check failed for #${issue} (${err?.message ?? String(err)}) — reporting as unknown (not flagged)`);
77
+ return 'unknown';
78
+ }
79
+ }
80
+ //# sourceMappingURL=worktree-gc-issues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worktree-gc-issues.js","sourceRoot":"","sources":["../../src/utils/worktree-gc-issues.ts"],"names":[],"mappings":"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"}
@@ -145,12 +145,17 @@ export declare function scrubFile(filePath: string): void;
145
145
  export declare function isWorktreeClean(runCommand: NonNullable<SweepDeps['runCommand']>, worktreePath: string): Promise<boolean>;
146
146
  /** Commits reachable from `rev` that are on no `origin` ref; null when the probe fails or is unparseable (⇒ keep). */
147
147
  export declare function countUnpushedCommits(runCommand: NonNullable<SweepDeps['runCommand']>, repoRoot: string, rev: string): Promise<number | null>;
148
+ /** True only when `head` has exactly 0 commits ahead of origin/main — a lane that has not committed
149
+ * yet (every lane starts at origin/main), never proof of a merge (#2964). Probe failure ⇒ false. */
150
+ export declare function isZeroCommitLane(runCommand: NonNullable<SweepDeps['runCommand']>, repoRoot: string, head: string | null): Promise<boolean>;
148
151
  export declare function sweepWorktrees(opts: {
149
152
  repoRoot: string;
150
153
  ttlDays: number;
151
154
  dryRun?: boolean;
152
155
  repo?: string;
153
156
  branchPrefix?: string;
157
+ /** Issues other lanes of this run have in flight: never reaped, whatever their age or PR state (#2964). */
158
+ protectedIssues?: ReadonlySet<number>;
154
159
  }, deps?: SweepDeps): Promise<GcReport>;
155
160
  export declare function formatGcReport(report: GcReport): string;
156
161
  //# sourceMappingURL=worktree-gc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree-gc.d.ts","sourceRoot":"","sources":["../../src/utils/worktree-gc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree-gc.d.ts","sourceRoot":"","sources":["../../src/utils/worktree-gc.ts"],"names":[],"mappings":"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"}
@@ -3,11 +3,10 @@ import { exec as execCb } from 'node:child_process';
3
3
  import { closeSync, constants, existsSync, fstatSync, lstatSync, mkdirSync, openSync, readdirSync, renameSync, rmSync, statSync, writeSync, } from 'node:fs';
4
4
  import { basename, join, resolve } from 'node:path';
5
5
  import { promisify } from 'node:util';
6
- import { CLAIMED_BY_LABEL_PREFIX, DECOMPOSED_LABEL, PARKED_LABEL } from '../queue/github-queue.js';
7
- import { findStaleClaims } from '../queue/stale-claims.js';
8
6
  import { getFactoryPaths } from '../config/index.js';
9
7
  import { factoryBranchPrefixes, shellEscape } from './index.js';
10
8
  import { removeMicroVm } from './microvm.js';
9
+ import { resolveActiveClaim, resolveIssueDisposition, resolveIssueExistence, } from './worktree-gc-issues.js';
11
10
  import { isFactoryDirName } from './worktree-name.js';
12
11
  const exec = promisify(execCb);
13
12
  /** Dedupes resolveIssueDisposition's lookup-failure warning across repeated sweeps — the factory
@@ -244,76 +243,6 @@ function laneIssueNumber(entry, lanePattern) {
244
243
  const fromPath = basename(entry.path).match(/-(\d+)$/);
245
244
  return fromPath ? Number(fromPath[1]) : null;
246
245
  }
247
- /** GitHub's verdict on the owning issue. A closed issue and a factory:parked label both mean
248
- * the lane is finished-or-parked and its clean checkout is redundant (see ADR, this PR). */
249
- async function resolveIssueDisposition(octokit, repo, issue, log, issueWarnDedup) {
250
- if (!octokit || !repo)
251
- return null;
252
- const [owner, repoName] = repo.split('/');
253
- try {
254
- const { data } = await octokit.rest.issues.get({ owner, repo: repoName, issue_number: issue });
255
- if (data.state === 'closed')
256
- return 'reap-closed';
257
- const labels = new Set((data.labels ?? []).map((l) => (typeof l === 'string' ? l : (l?.name ?? ''))));
258
- if (labels.has(PARKED_LABEL))
259
- return 'reap-parked';
260
- if (labels.has(DECOMPOSED_LABEL))
261
- return 'reap-decomposed';
262
- return 'keep';
263
- }
264
- catch (err) {
265
- if (issueWarnDedup.record(issue)) {
266
- log('warn', `worktree-gc: GitHub issue query failed for #${issue} (${err?.message ?? String(err)}) — using PR/local evidence only`);
267
- }
268
- else {
269
- log('warn', `worktree-gc: GitHub issue query failed for #${issue} — suppressed ${issueWarnDedup.suppressedCount(issue)} repeated warning(s) (using PR/local evidence only)`);
270
- }
271
- return null;
272
- }
273
- }
274
- /** The lane issue's existence on GitHub, checked only for worktree-gc's dry-run report.
275
- * 'not-configured' (no client/repo) and 'error' (the call threw anything but a 404) both mean
276
- * "no verdict" but are reported differently: 'error' surfaces as unverifiable so a rate-limit
277
- * or network blip is never mistaken for a confirmed-gone issue. */
278
- async function resolveIssueExistence(octokit, repo, issue, log) {
279
- if (!octokit || !repo)
280
- return 'not-configured';
281
- const [owner, repoName] = repo.split('/');
282
- try {
283
- await octokit.rest.issues.get({ owner, repo: repoName, issue_number: issue });
284
- return 'exists';
285
- }
286
- catch (err) {
287
- if (err?.status === 404)
288
- return 'not-found';
289
- log('warn', `worktree-gc: GitHub issue existence check failed for #${issue} (${err?.message ?? String(err)}) — reporting as unverifiable`);
290
- return 'error';
291
- }
292
- }
293
- /** Whether the lane issue carries an active, unexpired claim, checked only for worktree-gc's
294
- * dry-run report. A `factory:claimed-by:*` label alone is not enough (#1501): if the issue also
295
- * carries a `factory:claim-expires:*` lease label and that lease has lapsed, `findStaleClaims`
296
- * (the same primitive the queue's own reconcile uses, ADR-0104/#1506) reads it as unclaimed
297
- * immediately — no separate release step, and no host-pid/hostname evidence anywhere. Fail-safe:
298
- * no client/repo, or a lookup error, both resolve to 'unknown' — never conflated with a
299
- * confirmed 'unclaimed' verdict. */
300
- async function resolveActiveClaim(octokit, repo, issue, log) {
301
- if (!octokit || !repo)
302
- return 'unknown';
303
- const [owner, repoName] = repo.split('/');
304
- try {
305
- const { data } = await octokit.rest.issues.get({ owner, repo: repoName, issue_number: issue });
306
- const labels = (data.labels ?? []).map((label) => (typeof label === 'string' ? label : (label?.name ?? '')));
307
- if (!labels.some((name) => name.startsWith(CLAIMED_BY_LABEL_PREFIX)))
308
- return 'unclaimed';
309
- const stale = findStaleClaims([{ number: issue, labels }]);
310
- return stale.length > 0 ? 'unclaimed' : 'claimed';
311
- }
312
- catch (err) {
313
- log('warn', `worktree-gc: GitHub claim-label check failed for #${issue} (${err?.message ?? String(err)}) — reporting as unknown (not flagged)`);
314
- return 'unknown';
315
- }
316
- }
317
246
  /** A worktree is clean when it has no modified tracked files. `--untracked-files=no` deliberately
318
247
  * ignores untracked build residue (node_modules, artifacts) — the "live work" signal is tracked-file
319
248
  * modifications. A probe failure (`safeExec` null) ⇒ false ⇒ keep. */
@@ -329,6 +258,16 @@ export async function countUnpushedCommits(runCommand, repoRoot, rev) {
329
258
  const n = result === null ? NaN : Number.parseInt(result.stdout.trim(), 10);
330
259
  return Number.isInteger(n) ? n : null;
331
260
  }
261
+ /** True only when `head` has exactly 0 commits ahead of origin/main — a lane that has not committed
262
+ * yet (every lane starts at origin/main), never proof of a merge (#2964). Probe failure ⇒ false. */
263
+ export async function isZeroCommitLane(runCommand, repoRoot, head) {
264
+ if (head === null)
265
+ return false;
266
+ const result = await safeExec(runCommand, `git rev-list --count origin/main..${shellEscape(head)}`, {
267
+ cwd: repoRoot,
268
+ });
269
+ return result !== null && result.stdout.trim() === '0';
270
+ }
332
271
  export async function sweepWorktrees(opts, deps = {}) {
333
272
  const { runCommand = defaultRunCommand, now = () => Date.now(), log = () => { }, octokit, sandbox, issueWarnDedup = defaultIssueWarnDedup, } = deps;
334
273
  const { repoRoot, ttlDays, dryRun = false, repo } = opts;
@@ -407,6 +346,11 @@ export async function sweepWorktrees(opts, deps = {}) {
407
346
  return p;
408
347
  };
409
348
  for (const entry of candidates) {
349
+ const entryIssue = laneIssueNumber(entry, lanePattern);
350
+ if (entryIssue !== null && opts.protectedIssues?.has(entryIssue)) {
351
+ kept++;
352
+ continue;
353
+ }
410
354
  const ageDays = computeAgeDays(entry.path, now, log);
411
355
  let pushEvidence;
412
356
  const priorPush = async () => {
@@ -417,6 +361,11 @@ export async function sweepWorktrees(opts, deps = {}) {
417
361
  }
418
362
  return pushEvidence;
419
363
  };
364
+ let zeroCommit;
365
+ const zeroCommitLane = async () => {
366
+ zeroCommit ??= await isZeroCommitLane(runCommand, repoRoot, entry.head);
367
+ return zeroCommit;
368
+ };
420
369
  let reason = null;
421
370
  let branchReapable = false;
422
371
  let heldThisEntry = false;
@@ -492,7 +441,7 @@ export async function sweepWorktrees(opts, deps = {}) {
492
441
  }
493
442
  else if (prState === 'merged') {
494
443
  // GitHub decided the branch is merged — authoritative on its own, no ancestry/push requirement.
495
- if (await isWorktreeClean(runCommand, entry.path))
444
+ if ((await isWorktreeClean(runCommand, entry.path)) && !(await zeroCommitLane()))
496
445
  reason = 'merged';
497
446
  }
498
447
  else if (prState === 'closed') {
@@ -502,7 +451,10 @@ export async function sweepWorktrees(opts, deps = {}) {
502
451
  (await safeExec(runCommand, `git merge-base --is-ancestor ${shellEscape(entry.head)} origin/main`, {
503
452
  cwd: repoRoot,
504
453
  })) !== null;
505
- if (delivered) {
454
+ if (await zeroCommitLane()) {
455
+ // A zero-commit lane is trivially an ancestor of main — not delivered work (#2964).
456
+ }
457
+ else if (delivered) {
506
458
  // Closed-not-merged PR whose content reached main — delivered, removable.
507
459
  reason = 'merged';
508
460
  }
@@ -525,7 +477,7 @@ export async function sweepWorktrees(opts, deps = {}) {
525
477
  // origin/main (setupWorktree: `git worktree add -b <branch> <path> origin/main`), so a lane
526
478
  // that has not committed yet is trivially an ancestor. Require evidence the branch was
527
479
  // actually pushed before calling it merged.
528
- if (ancestorResult !== null && (await priorPush())) {
480
+ if (ancestorResult !== null && (await priorPush()) && !(await zeroCommitLane())) {
529
481
  reason = 'merged';
530
482
  }
531
483
  }
@@ -535,7 +487,7 @@ export async function sweepWorktrees(opts, deps = {}) {
535
487
  });
536
488
  // An empty ls-remote is ambiguous — "merged and deleted upstream" or "never pushed". Only the
537
489
  // former is garbage, and only a prior push distinguishes them.
538
- if (lsRemote !== null && lsRemote.stdout.trim() === '' && (await priorPush())) {
490
+ if (lsRemote !== null && lsRemote.stdout.trim() === '' && (await priorPush()) && !(await zeroCommitLane())) {
539
491
  reason = 'remote-gone';
540
492
  }
541
493
  }
@@ -550,7 +502,17 @@ export async function sweepWorktrees(opts, deps = {}) {
550
502
  // never touched on a heuristic signal alone) and never overriding a live open PR — the same
551
503
  // "never remove" rule the hard-evidence tier above already applies to it.
552
504
  const openPr = entry.branch !== null && (await prStateFor(entry.branch)) === 'open';
553
- if (!reason && !heldThisEntry && !dryRun && !openPr && (await isWorktreeClean(runCommand, entry.path))) {
505
+ const claimedDisposition = entryIssue === null ? null : await dispositionFor(entryIssue);
506
+ if (claimedDisposition === 'keep-claimed') {
507
+ // A live claim outranks every reap tier, TTL included (#2964).
508
+ reason = null;
509
+ }
510
+ if (!reason &&
511
+ !heldThisEntry &&
512
+ claimedDisposition !== 'keep-claimed' &&
513
+ !dryRun &&
514
+ !openPr &&
515
+ (await isWorktreeClean(runCommand, entry.path))) {
554
516
  const issueNumber = laneIssueNumber(entry, lanePattern);
555
517
  if (issueNumber !== null) {
556
518
  const existence = await issueExistenceFor(issueNumber);