@yagni-app/code-staging 1.2.13-staging.2176.1 → 1.2.13-staging.2190.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.
@@ -979,7 +979,11 @@ export async function runPipeline(ticket, deps) {
979
979
  reviewInput: written.finalOutput,
980
980
  usage: currentUsage(),
981
981
  }));
982
- return done(open.length > 0 ? "round_cap" : "clean", open);
982
+ // The review loop's own rule (`shouldStop`): a cap is spent only on a
983
+ // finding that blocks. Advisory findings left when the fix turns ran out
984
+ // travel with the result for the pull request to name, never a stop
985
+ // (ENG-3028, YAG-1073).
986
+ return done(open.some(isBlockingFinding) ? "round_cap" : "clean", open);
983
987
  };
984
988
  const fixRound = !resume && deps.fixRound && !deps.fixRound.replan ? deps.fixRound : undefined;
985
989
  if (deps.fixRound?.replan)
@@ -50,8 +50,14 @@ export declare function reviewStage(): PipelineStage;
50
50
  export declare function selectStages(_lane?: "full"): PipelineStage[];
51
51
  /** Interactive /go and mission builds: the diamond, three lenses, two rounds. */
52
52
  export declare const FULL_LANE: PipelineLane;
53
- /** The cloud lane's cap: one reviewer per round, so more rounds than the full lane. */
54
- export declare const CLOUD_MAX_REVIEW_ROUNDS = 4;
53
+ /**
54
+ * The cloud lane's cap: one reviewer per round, so more rounds than the full
55
+ * lane. Five since YAG-1106 (promised to GPX on 2026-10-30): a cap never
56
+ * ends a build without its pull request, so the rounds past the fourth buy
57
+ * one more fix at a blocking finding before the pull request names what is
58
+ * still open. Never uncapped: each round is peak-tier output tokens.
59
+ */
60
+ export declare const CLOUD_MAX_REVIEW_ROUNDS = 5;
55
61
  /** The tool every cloud plan stage calls for the decisions a person already made on this repository. */
56
62
  export declare const DECISIONS_READ_TOOL = "yagni_decisions_read_for_repository";
57
63
  /**
@@ -134,8 +134,14 @@ export const FULL_LANE = {
134
134
  stopAfterPlan: false,
135
135
  skillsEveryStage: false,
136
136
  };
137
- /** The cloud lane's cap: one reviewer per round, so more rounds than the full lane. */
138
- export const CLOUD_MAX_REVIEW_ROUNDS = 4;
137
+ /**
138
+ * The cloud lane's cap: one reviewer per round, so more rounds than the full
139
+ * lane. Five since YAG-1106 (promised to GPX on 2026-10-30): a cap never
140
+ * ends a build without its pull request, so the rounds past the fourth buy
141
+ * one more fix at a blocking finding before the pull request names what is
142
+ * still open. Never uncapped: each round is peak-tier output tokens.
143
+ */
144
+ export const CLOUD_MAX_REVIEW_ROUNDS = 5;
139
145
  /** The tool every cloud plan stage calls for the decisions a person already made on this repository. */
140
146
  export const DECISIONS_READ_TOOL = "yagni_decisions_read_for_repository";
141
147
  /**
@@ -551,13 +551,17 @@ export type PipelineProgress = {
551
551
  * - Review rounds are peak-tier output tokens, the most expensive tokens a
552
552
  * build buys, and the in-sandbox review is not the last reviewer: Proctor
553
553
  * reviews the pull request and its fix rounds act on what it finds.
554
- * - A third round never helped: every build that reached it ended with as many
555
- * findings or more, and hit the cap anyway.
556
- * - Round two runs only when round one found a blocker (`shouldStop`); what is
557
- * still open after the cap is written into the pull request body under
558
- * "Left for review" for Proctor, never a third round.
559
- * This is the `full` lane's cap. The cloud lane carries its own
560
- * (`PipelineLane.maxReviewRounds`): one reviewer per round, so four rounds.
554
+ * - The cap is a bound on spend, never a verdict: a build that hits it still
555
+ * opens its pull request, with what its own review left open named under
556
+ * "Left for review" for Proctor and the person reviewing (YAG-1106). A cap
557
+ * that ended a build with no pull request was the worst outcome a ticket
558
+ * could have (ENG-3028).
559
+ * - A round past the first runs only while a blocking finding is open
560
+ * (`shouldStop`, and the fix-mode path alike); nits, needs-person and
561
+ * advisory findings never spend a round and never stop a build.
562
+ * This is the `full` lane's cap, two rounds. The cloud lane carries its own
563
+ * (`PipelineLane.maxReviewRounds`): one reviewer per round, so five rounds
564
+ * (`CLOUD_MAX_REVIEW_ROUNDS`), never uncapped.
561
565
  */
562
566
  export declare const MAX_REVIEW_ROUNDS = 2;
563
567
  /**
@@ -12,13 +12,17 @@
12
12
  * - Review rounds are peak-tier output tokens, the most expensive tokens a
13
13
  * build buys, and the in-sandbox review is not the last reviewer: Proctor
14
14
  * reviews the pull request and its fix rounds act on what it finds.
15
- * - A third round never helped: every build that reached it ended with as many
16
- * findings or more, and hit the cap anyway.
17
- * - Round two runs only when round one found a blocker (`shouldStop`); what is
18
- * still open after the cap is written into the pull request body under
19
- * "Left for review" for Proctor, never a third round.
20
- * This is the `full` lane's cap. The cloud lane carries its own
21
- * (`PipelineLane.maxReviewRounds`): one reviewer per round, so four rounds.
15
+ * - The cap is a bound on spend, never a verdict: a build that hits it still
16
+ * opens its pull request, with what its own review left open named under
17
+ * "Left for review" for Proctor and the person reviewing (YAG-1106). A cap
18
+ * that ended a build with no pull request was the worst outcome a ticket
19
+ * could have (ENG-3028).
20
+ * - A round past the first runs only while a blocking finding is open
21
+ * (`shouldStop`, and the fix-mode path alike); nits, needs-person and
22
+ * advisory findings never spend a round and never stop a build.
23
+ * This is the `full` lane's cap, two rounds. The cloud lane carries its own
24
+ * (`PipelineLane.maxReviewRounds`): one reviewer per round, so five rounds
25
+ * (`CLOUD_MAX_REVIEW_ROUNDS`), never uncapped.
22
26
  */
23
27
  export const MAX_REVIEW_ROUNDS = 2;
24
28
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yagni-app/code-staging",
3
- "version": "1.2.13-staging.2176.1",
3
+ "version": "1.2.13-staging.2190.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": "aae5dcff2b6e88c794f1213893df2c24ec7be19e"
61
+ "yagniSourceSha": "515314459213f3e3acff697e5807da8ae3c5ce4a"
62
62
  }