Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
f1cdfac
test(ci): reject heuristic review catalog truncation
seonghobae Sep 1, 2026
14cd352
fix(ci): remove heuristic review catalog truncation
seonghobae Sep 1, 2026
9d9fbe7
test(ci): align policy suite with evidence-only admission
seonghobae Sep 1, 2026
6bb7a2c
Merge protected main into no-heuristic review admission
seonghobae Sep 1, 2026
53f128e
chore(ci): repair PR 1591 launcher cap contract
seonghobae Sep 1, 2026
c2ab744
fix(ci): make legacy catalog caps truly non-authoritative
seonghobae Sep 1, 2026
01f6f5d
test(ci): prove retired catalog caps are not inspected
seonghobae Sep 1, 2026
ed57d8d
chore(ci): stage PR 1591 repair driver
seonghobae Sep 1, 2026
aced2f7
fix(ci): make PR 1591 repair workflow parseable
seonghobae Sep 1, 2026
031bfbe
chore(ci): resume PR 1591 repair after concurrent policy fix
seonghobae Sep 1, 2026
140609c
fix(ci): resume PR 1591 repair on concurrent head
seonghobae Sep 1, 2026
1de1a89
fix(ci): retire stale legacy-cap test during 1591 repair
seonghobae Sep 1, 2026
1b43cad
fix(ci): retrigger 1591 repair after stale-test correction
seonghobae Sep 1, 2026
d72ef12
fix(ci): reconcile 1591 with current main before repair
seonghobae Sep 1, 2026
c06bd95
fix(ci): resolve the verified 1591 current-main test conflict
seonghobae Sep 1, 2026
ac048d2
merge current main into no-heuristic admission repair
github-actions[bot] Sep 1, 2026
7309388
fix(review): remove launcher catalog admission caps
github-actions[bot] Sep 1, 2026
ea90103
chore(ci): remove completed PR 1591 repair workflow
seonghobae Sep 1, 2026
7c14238
chore(ci): remove completed PR 1591 repair driver
seonghobae Sep 1, 2026
baeae65
chore(ci): remove completed PR 1591 resume driver
seonghobae Sep 1, 2026
d2f289d
merge current main into no-heuristic admission repair
seonghobae Sep 1, 2026
daced8b
docs(adr): remove retired heuristic review contracts
seonghobae Sep 1, 2026
ddc023d
chore(ci): stage one-shot preflight escalation-order repair
seonghobae Sep 1, 2026
2e0badd
Merge remote-tracking branch 'origin/main' into fix/no-heuristic-free…
github-actions[bot] Sep 1, 2026
fa9d87d
test(review): expose order-sensitive preflight escalation
github-actions[bot] Sep 1, 2026
0c99f24
fix(ci): update PR 1591 escalation repair harness
seonghobae Sep 1, 2026
34409d0
fix(ci): make 1591 RED publication idempotent
seonghobae Sep 1, 2026
b7687e2
docs(adr): restore sidecar pin and no-timeout invariants
seonghobae Sep 1, 2026
0c5d6c8
fix(ci): align 1591 ADR and stale contracts before GREEN
seonghobae Sep 1, 2026
53f1fa5
fix(ci): stage ADR repair with 1591 GREEN commit
seonghobae Sep 1, 2026
ae917f6
Merge remote-tracking branch 'origin/main' into fix/no-heuristic-free…
github-actions[bot] Sep 1, 2026
9faf8ff
fix(review): remove shared preflight escalation quota
github-actions[bot] Sep 1, 2026
095e7a6
chore(ci): remove completed PR 1591 escalation repair workflow
seonghobae Sep 1, 2026
e091dd3
chore(ci): remove completed PR 1591 escalation repair driver
seonghobae Sep 1, 2026
2d72b28
chore(ci): remove completed PR 1591 escalation resume driver
seonghobae Sep 1, 2026
de390d7
test(ci): forbid retired review pool and identity collisions
seonghobae Sep 1, 2026
66e9905
test(ci): scope free-only contract to central launcher
seonghobae Sep 1, 2026
d96aa63
test(ci): central review sidecar rejects retired auto pool
seonghobae Sep 1, 2026
6e28b2e
chore(ci): add exact-head free identity repair driver
seonghobae Sep 1, 2026
c363488
chore(ci): add PR1591 free identity source fix
seonghobae Sep 1, 2026
f1a851c
chore(ci): trigger PR1591 free identity source fix
seonghobae Sep 1, 2026
02103dd
test(ci): align central sidecar contract with free-only policy
seonghobae Sep 1, 2026
395d252
chore(ci): reserve exact-head restoration point
seonghobae Sep 1, 2026
34bbbd3
chore(ci): stage exact contract restoration
seonghobae Sep 1, 2026
2f03741
chore(ci): temporary restore marker 2
seonghobae Sep 1, 2026
f293852
chore(ci): restore full sidecar contract before repair
seonghobae Sep 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/source-fix-1591-free-identity.trigger
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
repair central free-only reachability and runtime identity collision
attempt=v1-red-green
97 changes: 97 additions & 0 deletions .github/workflows/source-fix-1591-free-identity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Source fix PR1591 free identity

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.

🔍 Temporary repair machinery remains

The operating directive requires completed source-fix workflows to be removed. This workflow, its trigger, and repair driver remain tracked despite the claimed cleanup.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.


on:
push:
branches: [fix/no-heuristic-free-review-admission]
paths: [.github/source-fix-1591-free-identity.trigger]

permissions:
contents: write
pull-requests: write

jobs:
repair:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: fix/no-heuristic-free-review-admission
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6
with:
python-version: "3.12"
- name: Install exact test dependencies
run: >-
python -m pip install --disable-pip-version-check --require-hashes
--only-binary=:all: -r requirements-opencode-review-ci-hashes.txt
- name: Verify RED contract and apply owner-side repair
id: patch
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
branch_name='fix/no-heuristic-free-review-admission'
starting_head="$GITHUB_SHA"
echo "starting_head=$starting_head" >>"$GITHUB_OUTPUT"
live_ref="$(gh api "repos/${GITHUB_REPOSITORY}/git/ref/heads/${branch_name}" --jq '.object.sha')"
pr_state="$(gh api "repos/${GITHUB_REPOSITORY}/pulls/1591" --jq '.state')"
pr_head_ref="$(gh api "repos/${GITHUB_REPOSITORY}/pulls/1591" --jq '.head.ref')"
test "$live_ref" = "$starting_head"
test "$pr_state" = open
test "$pr_head_ref" = "$branch_name"

if python -m pytest -q \
tests/test_contextual_orchestrator_no_heuristic_admission.py \
tests/test_contextual_orchestrator_central_free_only.py; then
echo '::error::PR #1591 RED regressions unexpectedly pass before production repair.'
exit 91
fi

python scripts/ci/source_fix_1591_free_identity.py

python -m pytest -q \
tests/test_contextual_orchestrator_no_heuristic_admission.py \
tests/test_contextual_orchestrator_central_free_only.py \
tests/test_contextual_orchestrator_review_policy.py \
tests/test_contextual_orchestrator_review_runtime_preflight.py \
tests/test_contextual_orchestrator_review_sidecar_contract.py \
tests/test_contextual_orchestrator_free_credential_admission.py \
tests/test_contextual_orchestrator_review_live_discovery_contract.py
python -m coverage run -m pytest tests -q
python -m coverage report --fail-under=100
python -m interrogate --fail-under=100 scripts/ci
git diff --check

latest_ref="$(gh api "repos/${GITHUB_REPOSITORY}/git/ref/heads/${branch_name}" --jq '.object.sha')"
latest_state="$(gh api "repos/${GITHUB_REPOSITORY}/pulls/1591" --jq '.state')"
latest_head_ref="$(gh api "repos/${GITHUB_REPOSITORY}/pulls/1591" --jq '.head.ref')"
test "$latest_ref" = "$starting_head"
test "$latest_state" = open
test "$latest_head_ref" = "$branch_name"

rm -f \
.github/workflows/source-fix-1591-free-identity.yml \
.github/source-fix-1591-free-identity.trigger \
scripts/ci/source_fix_1591_free_identity.py
git add -A
git diff --cached --check
git config user.name 'opencode-agent[bot]'
git config user.email '219766164+opencode-agent[bot]@users.noreply.github.com'
git commit -m 'fix(ci): close central free-pool identity gaps'

- name: Push repaired exact head
env:
GH_TOKEN: ${{ secrets.PR_REVIEW_MERGE_TOKEN || secrets.OPENCODE_APPROVE_TOKEN }}
STARTING_HEAD: ${{ steps.patch.outputs.starting_head }}
run: |
set -euo pipefail
if [ -z "${GH_TOKEN:-}" ]; then
echo '::error::No event-capable branch-write credential is configured.'
exit 1
fi
branch_name='fix/no-heuristic-free-review-admission'
remote_head="$(gh api "repos/${GITHUB_REPOSITORY}/git/ref/heads/${branch_name}" --jq '.object.sha')"
test "$remote_head" = "$STARTING_HEAD"
gh auth setup-git
git push origin HEAD:"$branch_name"
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ this file. The format follows Keep a Changelog, and versioned releases follow
Semantic Versioning where the repository publishes a release.

## [Unreleased]
- Remove the shared first-come-first-served review preflight escalation quota. Every route that emits the explicit budget-starvation signature now receives its own single evidence-bearing escalation, so catalog order cannot deny later eligible routes a viability test; primary/fallback escalation counts remain audit telemetry only.
- Remove the retired Noema/OpenCode catalog cardinality heuristics from the review launcher and sidecar. Evidence-eligible routes are no longer truncated before runtime preflight, auto-mode keeps the full priced fallback set, and legacy `limit`/`account_cap` inputs are accepted only as ignored compatibility arguments. This closes the >12-route startup crash found by Devin Review without making serialization order or provider identity a routing preference.
- **Fix `opencode-review.yml` admission gaps around stale/out-of-order events (`#1568`).**
Building on the draft-poll exemption's live PR/head validation, Devin Review found two
further defects. (1) The concurrency group was keyed only by repository and PR number, so
Expand Down
Loading
Loading