Skip to content

v1.91.323.0 ship: proportional (scoped) second review pass after a blocking fix (GSTA-152 PR B) - #3596

Merged
capy-ai[bot] merged 14 commits into
mainfrom
gsta152-pr-b
Oct 29, 2026
Merged

capy-ai[bot] merged 14 commits into
mainfrom
gsta152-pr-b

Conversation

@garrytan

@garrytan garrytan commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner
{
  "schema_version": 1,
  "pr": 3596,
  "head": "a924d7434567d32c7223e5fe6f54cdd21cea8c5a",
  "version": "1.91.310.0",
  "base": "main",
  "session_kind": "unattended",
  "head_tree": "9a6626bdd8d7df57c12885c03b99597db0d88fbe",
  "product_patch_id": "4f4b677eff182135e373912cb7627c78ca9a9834",
  "gstack_version": "1.91.310.0",
  "review_depth": {
    "depth": "full",
    "class": "gate",
    "runtime_lines": 179,
    "rules": "9bc0e4d2f74ef6b4",
    "base": "c85dd0a79976589e6e84e3b76d12230ccaeef3ea",
    "registry": "c85dd0a79976589e6e84e3b76d12230ccaeef3ea",
    "gate_scan": {
      "tagged": 1,
      "head": "a924d7434567d32c7223e5fe6f54cdd21cea8c5a"
    },
    "reasons": [
      "gate-class",
      "runtime=179>50"
    ]
  },
  "carry": {
    "from": "7f92b29243de1dad6391c2f5332d648caf6f7059",
    "reason": "stack parent capy/token-cap-with-real landed + base merge + test-only change + release metadata",
    "product_patch_id": "4f4b677eff182135e373912cb7627c78ca9a9834",
    "changed_paths": [
      "metadata:CHANGELOG.md",
      "metadata:VERSION",
      "metadata:agents-digest/gstack-AGENTS.md",
      "product:autoplan/DRIVER.md",
      "product:autoplan/DRIVER.md.tmpl",
      "product:bin/gstack-approvals",
      "product:bin/gstack-autoplan",
      "product:bin/gstack-capy-session",
      "product:bin/gstack-decision-trail",
      "product:bin/gstack-pregate",
      "product:bin/gstack-redact-prepush",
      "product:bin/gstack-ship-receipt",
      "product:captain/templates/brief.md",
      "product:captain/templates/plan-ask.md",
      "product:capy/skill/gstack/captain.md",
      "product:docs/captain.md",
      "product:docs/capy-install.md",
      "product:docs/pregate.md",
      "product:docs/ship-policy.md",
      "product:docs/troubleshooting.md",
      "product:docs/unattended.md",
      "product:lib/approval-record.ts",
      "product:lib/autoplan-carry.ts",
      "product:lib/autoplan-gate.ts",
      "product:lib/autoplan-revise.ts",
      "product:lib/autoplan-run.ts",
      "product:lib/autoplan-state.ts",
      "product:lib/captain-brief.ts",
      "product:lib/decision-trail.ts",
      "product:lib/gate-list.ts",
      "product:lib/headless-artifacts.ts",
      "product:lib/pregate/config.ts",
      "product:lib/redact-patterns.ts",
      "product:lib/result-codes-capy.ts",
      "product:lib/result-codes.ts",
      "product:lib/sealed-guard.ts",
      "product:lib/ship-receipt.ts",
      "metadata:package.json",
      "test:test/approval-record.test.ts",
      "test:test/autoplan-answer-invalidation.test.ts",
      "test:test/autoplan-carry.test.ts",
      "test:test/captain-brief.test.ts",
      "test:test/capy-captain-flow.test.ts",
      "test:test/capy-skill-wrapper.test.ts",
      "test:test/pregate-guards.test.ts",
      "test:test/redact-constant-and-at-filename.test.ts",
      "test:test/sealed-guard.test.ts",
      "test:test/ship-receipt-carry-squash.test.ts"
    ],
    "merge_commits": 1,
    "range_diff": "1:  8915643 =  1:  8915643 ship: token cap with real meters and fresh-context delegation (GSTA-152 PR A)\n 2:  3b207dd =  2:  3b207dd ship: scoped second review pass after a blocking fix (GSTA-152 PR B)\n 3:  ba42df7 =  3:  ba42df7 fix: pre-landing review fixes (stopped or lost capped run no longer blocks uncapped review starts; short child return reconciles incomplete)\n 4:  e393a03 =  4:  e393a03 fix: carry estimate spend across a meter epoch change; calibration docs match their evidence\n 5:  f557ba3 =  5:  f557ba3 test: load the committed calibration file by its repo path so pregate maps it to a lane\n 6:  9b71819 =  6:  9b71819 ship: fix fence placeholders and register claude-usage fixture (GSTA-152 PR A)\n 7:  586f7d4 =  7:  586f7d4 test: run ship-budget and review-log bins through their interpreters so Windows can launch them\n 8:  2e8ed2a =  8:  2e8ed2a fix: plan the full pass 2 when the fix range touches a gate path or is empty (GSTA-152 PR B review)\n 9:  fc5ef06 =  9:  fc5ef06 fix: classify the fix range and the diff at the range base with their own scope and gate scan (GSTA-152 PR B pass 2)\n10:  7f92b29 = 10:  7f92b29 fix: a full pass 1 always gets a full pass 2; drop the at-base reconstruction (GSTA-152 PR B pass 3)",
    "covers": [
      "pre-landing review",
      "adversarial review",
      "gate integrity",
      "documentation audit"
    ],
    "reruns": [
      "CI at head (gstack-ship-queue ready requires it); test and helper code changed since the reviewed head runs there unreviewed"
    ],
    "ancestry": "linear",
    "trees": [
      "5f6aef900a37653bb11b25c25010602e81ddf403"
    ]
  }
}

SHIP_RECEIPT: pr=3596 head=7f92b29243de version=1.91.310.0 base=capy/token-cap-with-real session_kind=unattended depth=full

What changed

/ship's review-depth planner (lib/review-depth.ts, bin/gstack-review-plan) now enforces "a full pass 1 always gets a full pass 2"; the token saving from scoped second passes applies only when pass 1 ran below full depth. Docs: docs/review-policy.md, ship/sections/review-army.md(.tmpl), CHANGELOG [Unreleased].

Why

This narrows the plan Garry approved: gate-class PRs keep the full second pass, so the saving applies only to PRs below full depth. That's the safe direction, chosen after three review passes found holes in rebuilding the pre-fix gate class.

Blast radius

/ship review planning only. Gate-class and full-depth PRs behave as before (full pass 2); below-full PRs may get a scoped pass 2.

Review (4 passes)

  1. Full pass (0be7c3d): Red Team blocker, the path-class gate fix, fixed in 2e8ed2a.
  2. Full pass on range: Red Team blocker, scope/gate-scan in range classify, fixed in fc5ef06.
  3. Fix-check + Red Team (GStack Minder rule-23 exception): blocker resolved by the rule "full pass 1 => full pass 2" in 7f92b29.
  4. One fix-check on fix-range-4 (GStack Minder rule-23 exception; counter-only admission, GST-101): CLEAN.

Notes (informational, not looped):

  • lib/review-depth.ts:104: nextStep treats a missing pass1Depth as below full for library callers; only the CLI defaults it to full.
  • test/review-plan-cli.test.ts:188: assertion checks NEXT: full but no longer the reason.

Validation

Token cost

Pass 1 dispatches (counter deltas): security 373,254; testing 511,454; maintainability 364,113; performance 362,494; simplification 366,058; state-machines 234,661; red-team 1,016,168. Total 3,228,202 actual vs 52,010,000 projected (16.1x over-projection). Full projected-vs-actual table: handoffs/token-efficiency/ship-budget-projection-GSTA-152-prb.md (GStack Minder drive). Pass 4 fix-check: ledger projected 7,430,000 and refused; dispatched on the counter.

Approvals

  • Garry, 2026-10-29: "Do it".
  • GStack Minder (GSTA-36): rule-23 exceptions for passes 3 and 4; GST-101 counter-only admission for the final fix-check.

garrytan and others added 12 commits October 29, 2026 05:40
…52 PR A)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…locks uncapped review starts; short child return reconciles incomplete)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…cs match their evidence

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
… maps it to a lane

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…152 PR A)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…so Windows can launch them

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…ELOG via mergeChangelogs)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…s empty (GSTA-152 PR B review)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
… own scope and gate scan (GSTA-152 PR B pass 2)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
…truction (GSTA-152 PR B pass 3)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

E2E Evals: ⛔ NOT RUN on 2ebf3213c3db875fb349a932666768d0643fd1c7

The readiness job blocked this head (Free Tests did not pass on it, or did not finish within the readiness deadline), so no paid gate ran and no verdict covers it. An earlier verdict in this comment belonged to an older head.

Details: run 40911357185. Fix and push, or re-run Free Tests and then re-run this workflow.

@capy-ai
capy-ai Bot changed the base branch from capy/token-cap-with-real to main October 29, 2026 10:31
@trunk-io

trunk-io Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

😎 This pull request was merged.

…geChangelogs)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
garrytan added a commit that referenced this pull request Oct 29, 2026
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@github-actions github-actions Bot changed the title ship: proportional (scoped) second review pass after a blocking fix (GSTA-152 PR B) v1.91.321.0 ship: proportional (scoped) second review pass after a blocking fix (GSTA-152 PR B) Oct 29, 2026
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
@github-actions github-actions Bot changed the title v1.91.321.0 ship: proportional (scoped) second review pass after a blocking fix (GSTA-152 PR B) v1.91.323.0 ship: proportional (scoped) second review pass after a blocking fix (GSTA-152 PR B) Oct 29, 2026
@capy-ai
capy-ai Bot merged commit 0732890 into main Oct 29, 2026
62 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant