@yagni-app/code-staging 1.2.3-staging.1661.1 → 1.2.3-staging.1686.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.
@@ -94,12 +94,17 @@ export declare function stageWontFit(budget: RunBudget, kind: TimedStageKind, ex
94
94
  * than the time actually left, since the host stops the run at the deadline.
95
95
  */
96
96
  export declare const STAGE_WALL_FLOOR_MS: number;
97
- /** Time the verify gate is allowed after the last write, on top of the stage estimates. */
97
+ /**
98
+ * Time the verify gate is allowed after the last write, on top of the stage
99
+ * estimates: the verify run's own ceiling (`VERIFY_TIMEOUT_MS`, twenty
100
+ * minutes). Five until 2026-10-09, when verify could run ten, so a long stage
101
+ * could leave the gate less time than it may take.
102
+ */
98
103
  export declare const VERIFY_ALLOWANCE_MS: number;
99
104
  /**
100
105
  * What must still run after a stage stops: a review round, one fix, and the
101
- * verify gate. Held back from the stage's wall clock so a long stage still
102
- * leaves the run time to review what it wrote.
106
+ * verify gate (4 + 6 + 20 = 30 minutes). Held back from the stage's wall clock
107
+ * so a long stage still leaves the run time to review and verify what it wrote.
103
108
  */
104
109
  export declare const STAGE_WALL_RESERVE_MS: number;
105
110
  /**
@@ -126,12 +126,17 @@ export function stageWontFit(budget, kind, expectedMs, nowMs = Date.now()) {
126
126
  * than the time actually left, since the host stops the run at the deadline.
127
127
  */
128
128
  export const STAGE_WALL_FLOOR_MS = 20 * 60_000;
129
- /** Time the verify gate is allowed after the last write, on top of the stage estimates. */
130
- export const VERIFY_ALLOWANCE_MS = 5 * 60_000;
129
+ /**
130
+ * Time the verify gate is allowed after the last write, on top of the stage
131
+ * estimates: the verify run's own ceiling (`VERIFY_TIMEOUT_MS`, twenty
132
+ * minutes). Five until 2026-10-09, when verify could run ten, so a long stage
133
+ * could leave the gate less time than it may take.
134
+ */
135
+ export const VERIFY_ALLOWANCE_MS = 20 * 60_000;
131
136
  /**
132
137
  * What must still run after a stage stops: a review round, one fix, and the
133
- * verify gate. Held back from the stage's wall clock so a long stage still
134
- * leaves the run time to review what it wrote.
138
+ * verify gate (4 + 6 + 20 = 30 minutes). Held back from the stage's wall clock
139
+ * so a long stage still leaves the run time to review and verify what it wrote.
135
140
  */
136
141
  export const STAGE_WALL_RESERVE_MS = DEFAULT_STAGE_ESTIMATE_MS.review + DEFAULT_STAGE_ESTIMATE_MS.fix + VERIFY_ALLOWANCE_MS;
137
142
  /**
@@ -544,9 +544,10 @@ export interface ResiliencePolicy {
544
544
  }
545
545
  /**
546
546
  * Default resilience policy. Generous timeouts so a legitimately long but live
547
- * stage is never killed: the idle window (well under the 5-min run heartbeat) is
548
- * the check for a stuck model, and the wall window only bounds a runaway that
549
- * keeps emitting events. The wall is 60 minutes for an interactive /go, where a
547
+ * stage is never killed: the idle window is the check for a stuck model (four
548
+ * minutes until 2026-10-09; fifteen now, since a long test run or a slow
549
+ * model turn emits nothing for minutes and is not stuck), and the wall window
550
+ * only bounds a runaway that keeps emitting events. The wall is 60 minutes for an interactive /go, where a
550
551
  * person can abort; a run with a deadline replaces it per stage with the time
551
552
  * left (budget.ts#stageWall). Three attempts with short, jittered
552
553
  * backoff so a single transient blip across the up-to-8 child spawns no longer
@@ -21,16 +21,17 @@ export const MAX_REVIEW_ROUNDS = 2;
21
21
  export const MAX_FIX_TURNS = 3;
22
22
  /**
23
23
  * Default resilience policy. Generous timeouts so a legitimately long but live
24
- * stage is never killed: the idle window (well under the 5-min run heartbeat) is
25
- * the check for a stuck model, and the wall window only bounds a runaway that
26
- * keeps emitting events. The wall is 60 minutes for an interactive /go, where a
24
+ * stage is never killed: the idle window is the check for a stuck model (four
25
+ * minutes until 2026-10-09; fifteen now, since a long test run or a slow
26
+ * model turn emits nothing for minutes and is not stuck), and the wall window
27
+ * only bounds a runaway that keeps emitting events. The wall is 60 minutes for an interactive /go, where a
27
28
  * person can abort; a run with a deadline replaces it per stage with the time
28
29
  * left (budget.ts#stageWall). Three attempts with short, jittered
29
30
  * backoff so a single transient blip across the up-to-8 child spawns no longer
30
31
  * terminates the whole run.
31
32
  */
32
33
  export const DEFAULT_RESILIENCE_POLICY = {
33
- idleTimeoutMs: 4 * 60_000,
34
+ idleTimeoutMs: 15 * 60_000,
34
35
  wallTimeoutMs: 60 * 60_000,
35
36
  maxAttempts: 3,
36
37
  backoffBaseMs: 1_000,
@@ -47,9 +47,13 @@
47
47
  * findings, handoffs, or run records (§0.9).
48
48
  */
49
49
  import type { Finding } from "./types.js";
50
- /** Total wall-clock budget for a single verify run before it is abandoned (fail-open). */
50
+ /**
51
+ * Total wall-clock budget for a single verify run before it is abandoned
52
+ * (fail-open). Ten minutes until 2026-10-09; twenty now, matching the run
53
+ * budget's `VERIFY_ALLOWANCE_MS`.
54
+ */
51
55
  export declare const VERIFY_TIMEOUT_MS: number;
52
- /** Per-PACKAGE wall-clock budget for the test half (spec §3d); overrun fails open. */
56
+ /** Per-PACKAGE wall-clock budget for the test half (spec §3d); overrun fails open. Ten minutes until 2026-10-09. */
53
57
  export declare const VERIFY_TEST_TIMEOUT_MS: number;
54
58
  /** A resolved verify command plus how it was found. */
55
59
  export interface VerifyCommand {
@@ -59,10 +59,14 @@ import { claimCovers } from "./fanout.js";
59
59
  import { composeAbortSignal } from "./resilience.js";
60
60
  import { scrubSecrets } from "./scrubSecrets.js";
61
61
  import { snapshotWorkspace } from "./workspace.js";
62
- /** Total wall-clock budget for a single verify run before it is abandoned (fail-open). */
63
- export const VERIFY_TIMEOUT_MS = 10 * 60_000;
64
- /** Per-PACKAGE wall-clock budget for the test half (spec §3d); overrun fails open. */
65
- export const VERIFY_TEST_TIMEOUT_MS = 10 * 60_000;
62
+ /**
63
+ * Total wall-clock budget for a single verify run before it is abandoned
64
+ * (fail-open). Ten minutes until 2026-10-09; twenty now, matching the run
65
+ * budget's `VERIFY_ALLOWANCE_MS`.
66
+ */
67
+ export const VERIFY_TIMEOUT_MS = 20 * 60_000;
68
+ /** Per-PACKAGE wall-clock budget for the test half (spec §3d); overrun fails open. Ten minutes until 2026-10-09. */
69
+ export const VERIFY_TEST_TIMEOUT_MS = 20 * 60_000;
66
70
  /** Cap on located findings parsed from one failing run, and on the opaque-tail message. */
67
71
  const MAX_LOCATED_FINDINGS = 25;
68
72
  const MAX_TAIL_CHARS = 1000;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yagni-app/code-staging",
3
- "version": "1.2.3-staging.1661.1",
3
+ "version": "1.2.3-staging.1686.1",
4
4
  "description": "YAGNI Code: a terminal coding agent that already knows your company. One YAGNI login routes the model and grounds the agent in your team's context.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "YAGNI, Inc. <jack@yagni.app> (https://yagni.app)",
@@ -58,5 +58,5 @@
58
58
  "turndown": "^7.2.4",
59
59
  "typebox": "^1.3.15"
60
60
  },
61
- "yagniSourceSha": "78db828d4bed8121dd01039b1ee8ef846f2136a7"
61
+ "yagniSourceSha": "44055f7635d957d2f2f19a547cb945a6e942de62"
62
62
  }