mirror of
https://github.com/boshu2/agentops.git
synced 2026-09-14 15:08:13 +08:00
e50e9aca80
Restores two CI gates the 2026-05-29 evolve session left broken/flaky. ## Fix 1 — claude-review hang (the gate you flagged) `claude-code-review.yml` (required merge gate) + `claude.yml` (`@claude`) ran `anthropics/claude-code-action@v1` with **no `timeout-minutes`**. A hung LLM call ran to GitHub's **6h default** → required check stuck `pending` forever → merge blocked → forced 3× `--admin` bypass this session (#591 stuck ~17min). - `claude-code-review.yml`: `timeout-minutes: 20` (hung review → **fast fail**, re-runnable, not stuck) + `concurrency` (`cancel-in-progress`) to supersede lingering runs. - `claude.yml`: `timeout-minutes: 30` (same hang class). A timed-out required check still blocks merge but is now *actionable*. Changing required-ness / the 6h default is out of scope (branch-protection policy). ## Fix 2 — executable-spec-link-integrity RED on main (regression from #591) #591 (ag-8ok) added directive **D15** with `**Scenarios:** s-2026-05-24-015` but never created the scenario file. The lint gate (`ao goals scenarios --lint`) was **path-filter-skipped** on #591's CI, so the phantom reference merged and left **main red** (this also blocks #593's own copy of the gate). Fix: add `spec/scenarios/s-2026-05-24-015.json` (mirrors -013/-014), properly linking D15. Lint now: *"No executable-spec link defects found."* ## Note on this PR's own claude-review `claude-code-action` requires the workflow file to be byte-identical to main's (anti-tamper). Because this PR *modifies* `claude-code-review.yml`, its own `claude-review` check fails by design (the action's error says this is "normal"). This PR must be admin-merged — the **last** bypass before the timeout protects future PRs. All deterministic gates (Validate, 65 jobs) are the merge signal. Closes-scenario: ag-1kcr#claude-review-timeout Bounded-context: BC5-Runtime