Skip to content

[🔥AUDIT🔥] review: bump installed reviewer to review-v1.11.0 - #318

Merged
jwbron merged 1 commit into
mainfrom
bump-installed-reviewer-1.11.0
Aug 3, 2026
Merged

[🔥AUDIT🔥] review: bump installed reviewer to review-v1.11.0#318
jwbron merged 1 commit into
mainfrom
bump-installed-reviewer-1.11.0

Conversation

@jwbron

@jwbron jwbron commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

🖍 This is an audit! 🖍

Summary:

Why

The reviewer installed on this repo (.github/workflows/review.md) has been
pinned at review-v1.7.0 since #276 (2026-07-21), four releases behind the
shared source. Everything the shared package has shipped since then runs in
consuming repos but not here, including one change that makes an existing
setting in our own ROUTING inert:

  • v1.8.0 patch 034181f: gh-aw's safe-output sanitizer strips XML/HTML
    comments, so the hidden fingerprint stamp a review body carries never
    reached the PR; every re-review planned no-prior-fingerprint and
    escalated to full depth. Our ROUTING has said re-review scoped since
    review: enable scoped re-reviews (follow-up to the v1.7.0 bump) #277, and on v1.7.0 that dial does nothing. The plan CLI now falls back to
    the Step 9 cache-memory record and reports stampSource.
  • v1.8.0: the deterministic-orchestrator slices land. Staging becomes a
    pre-agent-steps: step (lib/stage-pr.ts), scripted dispatch becomes the
    only mode (the ROUTING dispatch dial is retired; we never set it),
    Steps 4-6 become code (lib/submission-plan.ts), and the
    dispatch-conformance gate blocks a verdict whose sub-agent outputs do not
    exist (the v1.7.0 acceptance trial caught the orchestrator submitting a
    REQUEST_CHANGES after dispatching zero sub-agents).
  • v1.9.0/v1.10.0: open-thread suppression actually fires (it was
    unreachable on every conforming run, so re-reviews re-posted findings an
    open bot thread already tracked), threads.json / human-threads.json are
    staged by code, and a suppression is attributed to its best-matching thread
    rather than the first one it clears.
  • v1.11.0: a sub-agent the provider blocks is named as a refusal rather
    than "malformed output", failure detail and per-agent tool-call counts are
    kept, and a refused reviewer falls back to claude-opus-4-8 instead of
    silently costing coverage.

Also picked up: Gerald .github/NOTIFIED support, the per-lens consumer
payload seam, and the documentation reviewer (opt-in; not enabled here).

Why not gh aw update

Same as #276: gh-aw's resolveLatestRef rejects changesets-style prefixed
tags (review-v1.11.0) as non-semver, falls through to branch resolution, and
404s. Updates of this workflow stay manual.

What this PR does

  • Replicates gh aw update's 3-way merge by hand: base = review-v1.7.0
    source, ours = installed copy, theirs = review-v1.11.0 source (identical
    to current main), then gh aw compile review.
  • Two local overrides retire, because upstream now carries them.
    timeout-minutes: 40 is the shared default as of v1.8.0 (82af000), and the
    sandbox.agent.version: v0.27.27 pin plus the models: claude-fable-5
    pricing block were removed at source in 98f686f. Both override comments
    said they went away at this bump; they do.
  • The remaining differences are the documented overrides and nothing
    else
    , enforced by review-pins.test.ts: the same-repo fork guard in
    if: and its roles: all comment (public-repo hardening), the
    commented-out observability: block (the GH_AW_OTEL_SENTRY_* secrets
    still exist neither on this repo nor at org level), max-ai-credits: 2500
    with its REVIEW_MAX_AI_CREDITS mirror, and the comment on the lib
    checkout ref:.
  • source: and the lib checkout ref: both move to review-v1.11.0 in
    lockstep, and the recompiled lock picks up the new pre-agent staging step,
    the dispatcher's npm ci, the dispatch-conformance gate post-steps step,
    and BASH_MAX_TIMEOUT_MS: 1200000 (the blocking dispatcher call).
  • No consumer-config change is needed: .github/aw/review/ROUTING carries no
    retired dispatch line, no correctness-checks.md alias to migrate, and
    the new documentation reviewer stays off until a repo adds
    enable documentation.

Verification

  • pnpm test: 1618 tests across 69 files pass, including
    review-pins.test.ts (source/ref/lock literals all review-v1.11.0, and
    every hunk against the pinned source carries a KHAN/ACTIONS LOCAL OVERRIDE marker) and version-sync.test.ts.
  • pnpm typecheck: clean.
  • gh aw compile review: 0 errors, 0 warnings.
  • No changeset needed: both files are under .github/, the check's default
    exclusion, and the shared workflows/review package is untouched.

…eview-v1.11.0

## Why

The reviewer installed on this repo (`.github/workflows/review.md`) has been
pinned at `review-v1.7.0` since #276 (2026-07-21), four releases behind the
shared source. Everything the shared package has shipped since then runs in
consuming repos but not here, including one change that makes an existing
setting in our own `ROUTING` inert:

-   **v1.8.0 patch 034181f**: gh-aw's safe-output sanitizer strips XML/HTML
    comments, so the hidden fingerprint stamp a review body carries never
    reached the PR; every re-review planned `no-prior-fingerprint` and
    escalated to full depth. Our `ROUTING` has said `re-review scoped` since
    #277, and on v1.7.0 that dial does nothing. The plan CLI now falls back to
    the Step 9 cache-memory record and reports `stampSource`.
-   **v1.8.0**: the deterministic-orchestrator slices land. Staging becomes a
    `pre-agent-steps:` step (`lib/stage-pr.ts`), scripted dispatch becomes the
    only mode (the ROUTING `dispatch` dial is retired; we never set it),
    Steps 4-6 become code (`lib/submission-plan.ts`), and the
    dispatch-conformance gate blocks a verdict whose sub-agent outputs do not
    exist (the v1.7.0 acceptance trial caught the orchestrator submitting a
    REQUEST_CHANGES after dispatching zero sub-agents).
-   **v1.9.0/v1.10.0**: open-thread suppression actually fires (it was
    unreachable on every conforming run, so re-reviews re-posted findings an
    open bot thread already tracked), `threads.json` / `human-threads.json` are
    staged by code, and a suppression is attributed to its best-matching thread
    rather than the first one it clears.
-   **v1.11.0**: a sub-agent the provider blocks is named as a refusal rather
    than "malformed output", failure detail and per-agent tool-call counts are
    kept, and a refused reviewer falls back to `claude-opus-4-8` instead of
    silently costing coverage.

Also picked up: Gerald `.github/NOTIFIED` support, the per-lens consumer
payload seam, and the `documentation` reviewer (opt-in; not enabled here).

## Why not `gh aw update`

Same as #276: gh-aw's `resolveLatestRef` rejects changesets-style prefixed
tags (`review-v1.11.0`) as non-semver, falls through to branch resolution, and
404s. Updates of this workflow stay manual.

## What this PR does

-   Replicates `gh aw update`'s 3-way merge by hand: base = `review-v1.7.0`
    source, ours = installed copy, theirs = `review-v1.11.0` source (identical
    to current main), then `gh aw compile review`.
-   **Two local overrides retire, because upstream now carries them.**
    `timeout-minutes: 40` is the shared default as of v1.8.0 (82af000), and the
    `sandbox.agent.version: v0.27.27` pin plus the `models:` claude-fable-5
    pricing block were removed at source in 98f686f. Both override comments
    said they went away at this bump; they do.
-   **The remaining differences are the documented overrides and nothing
    else**, enforced by `review-pins.test.ts`: the same-repo fork guard in
    `if:` and its `roles: all` comment (public-repo hardening), the
    commented-out `observability:` block (the `GH_AW_OTEL_SENTRY_*` secrets
    still exist neither on this repo nor at org level), `max-ai-credits: 2500`
    with its `REVIEW_MAX_AI_CREDITS` mirror, and the comment on the lib
    checkout `ref:`.
-   `source:` and the lib checkout `ref:` both move to `review-v1.11.0` in
    lockstep, and the recompiled lock picks up the new pre-agent staging step,
    the dispatcher's `npm ci`, the dispatch-conformance gate `post-steps` step,
    and `BASH_MAX_TIMEOUT_MS: 1200000` (the blocking dispatcher call).
-   No consumer-config change is needed: `.github/aw/review/ROUTING` carries no
    retired `dispatch` line, no `correctness-checks.md` alias to migrate, and
    the new `documentation` reviewer stays off until a repo adds
    `enable documentation`.

## Verification

-   `pnpm test`: 1618 tests across 69 files pass, including
    `review-pins.test.ts` (source/ref/lock literals all `review-v1.11.0`, and
    every hunk against the pinned source carries a `KHAN/ACTIONS LOCAL
    OVERRIDE` marker) and `version-sync.test.ts`.
-   `pnpm typecheck`: clean.
-   `gh aw compile review`: 0 errors, 0 warnings.
-   No changeset needed: both files are under `.github/`, the check's default
    exclusion, and the shared `workflows/review` package is untouched.
@jwbron jwbron self-assigned this Aug 3, 2026
@khan-actions-bot
khan-actions-bot requested review from a team, jeresig and kevinb-khan and removed request for a team August 3, 2026 22:27
@jwbron
jwbron merged commit 60b46de into main Aug 3, 2026
22 checks passed
@jwbron
jwbron deleted the bump-installed-reviewer-1.11.0 branch August 3, 2026 22:29
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Guidance

github-actions (1 file)
File Reason
review.md The installed shared PR-reviewer workflow; its frontmatter is this repo's real permission, secret, and network surface, so a human should confirm nothing is loosened.
Excluded from review (1 file)

Not individually reviewed — generated, formatting-only, or
fully explained by a common pattern above:

  • .github/workflows/review.lock.yml — generated

path: gh-aw-review-lib
persist-credentials: false
ref: review-v1.7.0
ref: review-v1.11.0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (non-blocking): This is the second manual bump for the same gh-aw limitation — the process is now automatable and could live in CI instead of a hand-merged audit PR. Both #276 and this PR replicate gh aw update by hand because upstream resolveLatestRef rejects changesets-style tags. But the constraint that made this manual has weakened: this repo hosts both the source and the install, and review-pins.test.ts (which I read) now requires every local override to carry a KHAN/ACTIONS LOCAL OVERRIDE marker adjacent to its hunk — meaning the overrides are machine-locatable and the merge is mechanically reproducible (checkout tagged source, re-apply marked hunks, gh aw compile). A small script or release-triggered workflow could open this PR automatically whenever a review-v* tag lands, with the existing tests as the gate.

A sketch, not a committable replacement:

As a follow-up, either (a) script the bump (re-apply marker-tagged override hunks onto the tagged source and recompile, opening a PR on each `review-v*` release), or (b) file/track an upstream gh-aw issue for `resolveLatestRef` rejecting prefixed tags so `gh aw update` can take this over — and link whichever from the 'Why not gh aw update' section so the third bump doesn't re-derive this.

jwbron added a commit that referenced this pull request Aug 5, 2026
The reviewer installed on this repo (`.github/workflows/review.md`) was
pinned at `review-v1.11.0`; #326 released review@1.12.0, so the shared
package's cross-source dedup tier 2 runs in consuming repos but not here.

What v1.12.0 adds, and what this bump picks up:

-   The `claim-clusterer` sub-agent (sonnet, read-only, identity judgment
    only) names the candidate comments that describe ONE defect, and
    `dedup.ts` verifies that assertion and merges them, so one problem
    found by several sources posts once. Tier 2 requires no line agreement,
    so the same-defect-different-anchor shape is mergeable for the first
    time; every merge rule stays in code, only a NON-BLOCKING
    copy may be absorbed on the model's word, and the survivor is always
    the highest-severity copy.
-   Dispatch is conditional (only when the candidates hold a legally
    mergeable pair), and a missing definition or unusable reply leaves the
    run on tier 1, i.e. today's behavior.
-   The prompt's Step 3 dedup description gains the clusterer and the
    `clustering` block in the dispatch result.

Mechanics, same as #318: `gh aw update` cannot resolve changesets-style
prefixed tags (`review-v1.12.0`), so the bump is a hand-run 3-way merge
(base = `review-v1.11.0` source, ours = installed copy, theirs =
`review-v1.12.0` source) followed by `gh aw compile review`.

-   `source:` and the lib checkout `ref:` move to `review-v1.12.0` in
    lockstep; the recompiled lock changes only those literals plus its
    metadata hashes (the prompt body reaches the runner through
    `{{#runtime-import .github/workflows/review.md}}`, and inline
    sub-agents are restored from the activation artifact, so the new agent
    section does not appear in the lock).
-   The local overrides are unchanged and still the only differences from
    the pinned source: the same-repo fork guard in `if:` plus its
    `roles: all` comment, the commented-out `observability:` block, the
    `max-ai-credits: 2500` / `REVIEW_MAX_AI_CREDITS` pair, and the comment
    on the lib checkout `ref:`.
-   No consumer-config change: `.github/aw/review/ROUTING` needs no dial
    for clustering.

Verification: `pnpm vitest run` 1655 tests across 71 files pass, including
`review-pins.test.ts` (every literal `review-v1.12.0`; every hunk against
the pinned source carries a `KHAN/ACTIONS LOCAL OVERRIDE` marker) and
`version-sync.test.ts`; `pnpm typecheck` clean; `gh aw compile review`
0 errors, 0 warnings. No changeset: both files are under `.github/`, the
check's default exclusion, and the shared `workflows/review` package is
untouched.

Auditors: jeresig
jwbron added a commit that referenced this pull request Aug 5, 2026
🖍 _This is an audit!_ 🖍

## Summary:

## Why

The reviewer installed on this repo (`.github/workflows/review.md`) was pinned
at `review-v1.11.0`; #326 released review@1.12.0, so the shared package's
cross-source dedup tier 2 runs in consuming repos but not here.

What v1.12.0 adds, and what this bump picks up:

-   The `claim-clusterer` sub-agent (sonnet, read-only, identity judgment only)
    names the candidate comments that describe ONE defect, and `dedup.ts`
    verifies that assertion and merges them, so one problem found by several
    sources posts once. Tier 2 requires no line agreement, so the
    same-defect-different-anchor shape is mergeable for the first time; every
    merge rule stays in code, only a NON-BLOCKING copy may be absorbed on the
    model's word, and the survivor is always the highest-severity copy.
-   Dispatch is conditional (only when the candidates hold a legally mergeable
    pair), and a missing definition or unusable reply leaves the run on tier 1,
    i.e. today's behavior.
-   The prompt's Step 3 dedup description gains the clusterer and the
    `clustering` block in the dispatch result.

## Why not `gh aw update`

Same as #318 and #276: gh-aw's `resolveLatestRef` rejects changesets-style
prefixed tags (`review-v1.12.0`) as non-semver, falls through to branch
resolution, and 404s. Updates of this workflow stay manual.

## What this PR does

-   Replicates `gh aw update`'s 3-way merge by hand: base = `review-v1.11.0`
    source, ours = installed copy, theirs = `review-v1.12.0` source, then
    `gh aw compile review`. The only conflict was the lib checkout `ref:` line
    inside its override comment block; resolved as comment plus new ref.
-   `source:` and the lib checkout `ref:` move to `review-v1.12.0` in lockstep.
    The recompiled lock changes only those literals plus its metadata hashes:
    the prompt body reaches the runner through
    `{{#runtime-import .github/workflows/review.md}}` and inline sub-agents are
    restored from the activation artifact, so the new agent section does not
    appear in the lock.
-   The local overrides are unchanged and still the only differences from the
    pinned source, enforced by `review-pins.test.ts`: the same-repo fork guard
    in `if:` and its `roles: all` comment (public-repo hardening), the
    commented-out `observability:` block (the `GH_AW_OTEL_SENTRY_*` secrets
    still exist neither on this repo nor at org level), `max-ai-credits: 2500`
    with its `REVIEW_MAX_AI_CREDITS` mirror, and the comment on the lib
    checkout `ref:`.
-   No consumer-config change is needed: `.github/aw/review/ROUTING` needs no
    dial for clustering, and the roster it enables is untouched.

## Verification

-   `pnpm vitest run`: 1655 tests across 71 files pass, including
    `review-pins.test.ts` (source/ref/lock literals all `review-v1.12.0`, and
    every hunk against the pinned source carries a `KHAN/ACTIONS LOCAL
    OVERRIDE` marker) and `version-sync.test.ts`.
-   `pnpm typecheck`: clean.
-   `gh aw compile review`: 0 errors, 0 warnings.
-   No changeset needed: both files are under `.github/`, the check's default
    exclusion, and the shared `workflows/review` package is untouched.
-   This PR's own review does not exercise tier 2, and that is expected: for a
    `pull_request` event the lock runs from the head (so the lib is checked out
    at `review-v1.12.0`), but `restore_base_github_folders.sh` overwrites
    `.github/` with the base-branch snapshot and the activation job extracts the
    inline sub-agents from that same base markdown, so the prompt and the
    `## agent:` set both come from main at `review-v1.11.0`. With no
    `claim-clusterer` definition, dispatch leaves the run on tier 1 and records a
    run warning: the documented soft-degradation path. Both halves come from main
    once this merges.

Author: jwbron

Auditors: jeresig, jaredly

Required Reviewers:

Approved By:

Checks: ⏭️  8 checks have been skipped, ⌛ 1 check is pending, ✅ 2 checks were successful

Pull Request URL: #327
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant