Skip to content

fix(ci): repair auto-label's dead trigger and truncated file list - #1443

Merged
groupthinking merged 2 commits into
mainfrom
claude/clever-heisenberg-zg6pbw
Aug 7, 2026
Merged

fix(ci): repair auto-label's dead trigger and truncated file list#1443
groupthinking merged 2 commits into
mainfrom
claude/clever-heisenberg-zg6pbw

Conversation

@groupthinking

@groupthinking groupthinking commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Canonical issue

Closes #1442

Outcome

Auto Label runs on pushes to an open PR, and labels the whole diff rather than its first 30 files.

Two silent defects in .github/workflows/auto-label.yml:

Defect Why it was invisible
pull_request.types listed synchronized Not a GitHub activity type — the real one is synchronize. GitHub ignores unknown activity types instead of rejecting the file, so there was no validation error. The trigger was simply inert, and labels were only ever applied at opened/reopened.
pulls.listFiles called without pagination Defaults to per_page: 30. A larger PR was labelled from an arbitrary 30-file prefix of its diff. The job still concluded green.

The pagination fix follows the convention already established in .github/workflows/pr-governance.yml (github.paginate(github.rest.pulls.list, ...)); this call site had not adopted it.

Scope

Risk

  • Risk level: low
  • Failure mode: more label-application API calls than before — one run per push instead of one per open, over a paginated listing. addLabels is already wrapped in try/catch with core.warning, so a rate-limit or permission error warns rather than fails the job. Labels are additive; nothing is removed.
  • Rollback: git revert. No runtime, deployed, or data surface.

Verification

Head 2fe3ecb, base 8cd4a10. Two files, workflow +9/−3 and a new test module.

tests/unit/test_auto_label_workflow.py follows the existing tests/unit/test_pr_governance_workflow.py pattern: load the workflow YAML, extract the embedded github-script body, and assert against the script that actually ships rather than a copy of it.

  • Focused tests — 4 tests. Static coverage asserts synchronize is present and synchronized is not, and that the listing paginates with per_page: 100. The behavioral test executes the embedded script under node against a mocked client with a 120-file diff whose 120th file is the only .py; the mock raises if the unpaginated pulls.listFiles is called at all.

  • Non-vacuity checked in both directions, not asserted:

    # against the pre-fix workflow from origin/main
    3 failed, 1 passed      # the pass is the YAML-validity check, true either way
    
    # against the fixed workflow
    4 passed in 0.15s
    
  • ruff check — clean. black --check — clean.

  • Required CI — not complete on this head.

  • Review threads — resolved. CodeRabbit requested changes on f9f9688 for exactly one thing: the verification above existed only locally and was never committed, so nothing in the repo prevented regression. Correct, and fixed in 2fe3ecb. CodeRabbit re-verified against the commit and reported "no new correctness, security, or production-impacting issue."

Production evidence

Not applicable. One GitHub Actions workflow file and one test module; no runtime or deployed surface, and nothing under apps/web/**, so MERGE_POLICY.md gate 4 (preview) does not apply.

The honest limit on the evidence above: the corrected trigger cannot be observed firing from this PR. GitHub reads pull_request triggers from the base branch, so synchronize only takes effect once this is on main. The post-merge check is to push a commit to any open PR and confirm an Auto Label run appears for the synchronize event.

On the #1424 link — what this PR does and does not evidence

An earlier comment claimed #1443 was a clean reproduction of the #1424 label-gate deadlock. That claim is withdrawn, and the reason it was withdrawn has since changed. Both states are recorded here rather than quietly overwritten.

  • When first withdrawn: this PR was a draft, and .coderabbit.yaml sets auto_review.drafts: false, which is sufficient on its own to explain a skip. Two sufficient causes, so the skip notice naming label configuration was suggestive but not decisive.
  • Now: linear-code[bot] marked this PR ready for review, so it is no longer a draft, and it carries python and ci/cd — both in the required-labels list. The CodeRabbit status at 19:30:29Z still reads Review skipped: excluded by label configuration.
  • Still not decisive. The ready-for-review transition lands at roughly 19:30:36Z, after that skip was written. The skip was therefore probably still evaluated against a draft. The ordering is too tight to call, so this PR remains confounded and should not be cited as proof.

#1440 is the unconfounded case and is what #1424/#1425 should be argued from: not a draft when its status was written, carries javascript and tests (both in the required list), and still shows Review skipped: excluded by label configuration.

What holds without qualification, and is the part that actually affects merge decisions: a green CodeRabbit commit status does not distinguish "reviewed" from "skipped" or "rate limited." This PR alone has produced skip statuses reading success for three different reasons — label configuration, draft exclusion, and path_filters (tests/**) — every one of them green.

Agent handoff

Agent provenance

Agent-authored, under the PR remediation runbook. Found while verifying #1440, whose notes flagged this typo as out of scope for a stacked branch and deferred it to a branch off main — which is what this is.

Two defects in `.github/workflows/auto-label.yml`, both silent.

`pull_request.types` listed `synchronized`, which is not a GitHub activity
type — the real one is `synchronize`. GitHub ignores unknown activity types
rather than rejecting them, so the workflow never ran on pushes to an open
PR. Labels were only ever applied at `opened`/`reopened`, and a PR whose
diff grew to touch new languages kept its original label set.

`pulls.listFiles` was called without pagination, so it returned only the
first 30 files of the diff. A larger PR was labelled from an arbitrary
prefix of its changed files. Now uses `github.paginate(..., per_page: 100)`,
matching the existing convention in `pr-governance.yml`.

Verified by extracting the embedded script from the workflow YAML and
running it against a mocked `github` client with a 120-file diff whose
120th file is the only `.py`:

  - fixed script:  labels ["javascript","python"] — 120th file reached
  - previous script: throws "unpaginated listFiles called"

so the check fails against the unfixed workflow rather than passing
vacuously. YAML parses and the embedded script passes `node --check`.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018JcuWvy4pthLP3HUehNCxr
@vercel

vercel Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v0-uvai Ready Ready Preview, v0 Aug 7, 2026 7:28pm

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • tests/unit/test_auto_label_workflow.py is excluded by !tests/**

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: b32cf7eb-e7d5-4ae6-a87c-36fb2faa2f5b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes
    • Improved pull-request labeling for large changes by ensuring all modified files are evaluated.
    • Updated workflow triggering so labels are applied reliably when pull requests are updated.

Walkthrough

The auto-label workflow now runs when new commits are pushed to a pull request. It also retrieves all changed files through paginated requests with up to 100 files per page.

Changes

Auto-label workflow fixes

Layer / File(s) Summary
Workflow trigger and file discovery
.github/workflows/auto-label.yml
The pull-request trigger uses synchronize. File retrieval uses github.paginate with 100 files per page.

Estimated code review effort: 2 (Simple) | ~10 minutes

Poem

New commits knock at the PR door,
synchronize wakes the workflow once more.
Pages of files now all arrive,
Labels inspect the full diff live.
Silent gaps fade from sight.

🚥 Pre-merge checks | ✅ 5 | ❌ 2

❌ Failed checks (2 inconclusive)

Check name Status Explanation Resolution
Enforce Copilot Verification ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Require Ai Unit Tests ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
✅ Passed checks (5 passed)
Check name Status Explanation
Linked Issues check ✅ Passed The changes satisfy all coding acceptance criteria in issue #1442, including the trigger fix, pagination, and verification coverage.
Out of Scope Changes check ✅ Passed The changes are limited to the requested workflow trigger, paginated file listing, and explanatory comments.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Title check ✅ Passed The title clearly identifies both primary fixes: the dead trigger and the truncated file list.
Description check ✅ Passed The description covers all template sections, explains the changes and risks, and accurately records that required CI is incomplete.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/clever-heisenberg-zg6pbw
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch claude/clever-heisenberg-zg6pbw

Warning

Review ran into problems

🔥 Problems

These MCP integrations need to be re-authenticated in the Integrations settings: Sentry


Linked repositories: Public OSS repositories can only analyze public repositories installed in this organization. No linked repositories were analyzed; skipped groupthinking/uvai-skills.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the ci/cd label Aug 7, 2026
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Snapshot Warnings

⚠️: No snapshots were found for the head SHA 2fe3ecb.
Ensure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice.

Scanned Files

None

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

Invoking review explicitly because auto-review skipped this PR — and the skip is itself worth recording, because this PR is a clean reproduction of #1424 on a PR that satisfies the gate.

#1443 carries the ci/cd label, which is in the required-labels list CodeRabbit printed in its skip notice above. It was still skipped, because the label was applied by Auto Label on the opened event, after CodeRabbit had already evaluated the PR as unlabelled. Labelling afterwards does not retro-trigger.

That is the exact deadlock #1424 describes, observed here on a PR created minutes ago rather than inferred from older ones. It also demonstrates the compounding this PR's own description claims: with synchronize dead, a later push could not re-run the labeller either, so there was no second chance at the gate.

Two things follow that are worth having on the record:

  1. A green CodeRabbit commit status does not mean "reviewed." The skip reports success. Across the currently-open ready PRs, fix(web): stop leaking upstream and Stripe error details to clients #1381, fix(security): build JSON log records with json.dumps (CWE-117 field forgery) #1439 and fix(web): stop /api/transcribe leaking probe status and key config #1440 all show Review skipped: excluded by label configuration, and fix(ci): stop the canonical-evidence gate failing Dependabot by construction #1423 shows Review rate limited — four green statuses, zero reviews.
  2. Manual invocation bypasses the gate, so review is reachable per-PR today without waiting for fix(review): stop the inherited label gate deadlocking CodeRabbit auto-review #1425 to land. fix(review): stop the inherited label gate deadlocking CodeRabbit auto-review #1425 remains the correct fix for the default path; this is not a substitute for it.

Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

@groupthinking I will perform a full review of #1443.

The reported sequence is valid review context: CodeRabbit can evaluate the required-label gate before Auto Label applies ci/cd on opened. A successful CodeRabbit status can therefore mean the review was skipped or rate-limited, not that CodeRabbit reviewed the change.

🐇🔍


✏️ Learnings added
Learnt from: groupthinking
URL: https://github.com/groupthinking/EventRelay/pull/1443

Timestamp: 2026-08-07T19:22:09.272Z
Learning: In the `groupthinking/EventRelay` repository, CodeRabbit can evaluate the `auto_review.labels` gate before the `.github/workflows/auto-label.yml` workflow applies a qualifying label on the `pull_request` `opened` event. Adding the label after that evaluation does not automatically trigger a CodeRabbit review. A successful CodeRabbit commit status can represent a skipped or rate-limited review rather than a completed review.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

✅ Action performed

Full review finished.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/auto-label.yml:
- Around line 23-29: The auto-label workflow lacks a regression test proving
pagination processes files beyond the first 30. Add a test that extracts and
runs the embedded script with mocked GitHub responses containing 120 changed
files, then assert a file after the first 30 produces its expected label; ensure
it fails with the former single-request implementation and is discoverable by
the provided search.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Repository UI (inherited), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: f4270b10-83be-4cf8-b1ee-23d7321a1e39

📥 Commits

Reviewing files that changed from the base of the PR and between 8cd4a10 and f9f9688.

📒 Files selected for processing (1)
  • .github/workflows/auto-label.yml
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: trivy
  • GitHub Check: Generate and Upload Coverage
  • GitHub Check: test
🧰 Additional context used
📓 Path-based instructions (2)
.github/workflows/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Create or edit GitHub Actions workflows to add robust testing and verification for new features.

Files:

  • .github/workflows/auto-label.yml
.github/workflows/**

⚙️ CodeRabbit configuration file

GitHub Actions workflows. Check for missing permissions, insecure token handling, proper use of continue-on-error vs actual error handling, and Node.js version compatibility (Node 20 deprecation warning).

Files:

  • .github/workflows/auto-label.yml
🔍 Remote MCP GitHub Copilot

Relevant review context

  • PR #1443 changes only .github/workflows/auto-label.yml: replaces synchronized with synchronize and uses github.paginate(..., per_page: 100) for changed files. The repository’s pr-governance.yml already uses the same pagination convention.
  • The linked issue’s acceptance criteria additionally require a non-vacuous behavioral test against the embedded workflow script, YAML parsing, and JavaScript syntax validation.
  • The PR reports those checks as locally completed, but the PR itself changes only the workflow file; no regression test is included in the PR diff. The repository does have workflow-level tests for pr-governance.yml, providing an existing pattern for adding one.
  • Required validation is not yet complete: trivy, coverage, Python security scan, build, and test jobs were still in progress; governance was neutral because the PR is draft.
  • The PR’s claim that it reproduces the CodeRabbit label-gate deadlock is partly confounded: the PR is currently draft, while .coderabbit.yaml explicitly sets auto_review.drafts: false; issue #1425 confirms drafts are excluded independently of label configuration.
🔇 Additional comments (1)
.github/workflows/auto-label.yml (1)

4-6: LGTM!

Comment thread .github/workflows/auto-label.yml
CodeRabbit correctly flagged that the verification described on #1443 was run
locally and never committed, so nothing in the repo prevented either defect
from returning. This lands it as a real test.

Follows the existing `tests/unit/test_pr_governance_workflow.py` pattern —
load the workflow YAML, pull the embedded `github-script` body out of it, and
assert against the script that actually ships rather than a copy.

Static coverage asserts `synchronize` is the trigger (and `synchronized` is
not) and that the listing paginates with `per_page: 100`. The behavioral test
executes the embedded script under `node` against a mocked client with a
120-file diff whose 120th file is the only `.py`; the mock raises if the
unpaginated `pulls.listFiles` is called at all.

Non-vacuity checked by running the suite against the pre-fix workflow from
`origin/main`:

  3 failed, 1 passed   (the pass is the YAML-validity check, true either way)

and against the fixed workflow:

  4 passed

`node` is required only by the behavioral test, which skips without it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018JcuWvy4pthLP3HUehNCxr
@github-actions github-actions Bot added the python label Aug 7, 2026

Copy link
Copy Markdown
Owner Author

@coderabbitai review

Both of your points were right. Addressed in 2fe3ecb.

1. Missing regression test — fixed

Correct, and the important part of the catch: the verification in the PR description was run locally and never committed, so nothing in the repo prevented either defect from returning. A PR whose whole subject is "two silent defects shipped because nothing tested them" should not itself rely on an uncommitted check.

tests/unit/test_auto_label_workflow.py follows the existing tests/unit/test_pr_governance_workflow.py pattern — load the workflow YAML, extract the embedded github-script body, assert against the script that actually ships rather than a copy of it.

  • Static: synchronize is present and synchronized is not; the listing paginates with per_page: 100.
  • Behavioral: executes the embedded script under node against a mocked client with a 120-file diff whose 120th file is the only .py. The mock raises if the unpaginated pulls.listFiles is called at all.

Non-vacuity checked both directions rather than asserted:

# against the pre-fix workflow from origin/main
3 failed, 1 passed      # the pass is the YAML-validity check, true either way

# against the fixed workflow
4 passed

ruff clean, black clean. node gates only the behavioral test, which skips without it.

2. The deadlock claim was confounded — conceded

You are right, and I'm correcting the record rather than defending it. #1443 is a draft and .coderabbit.yaml sets auto_review.drafts: false, so draft-exclusion is sufficient on its own to explain the skip. I cannot attribute this PR's skip to the label gate, and my earlier comment claiming it as a clean reproduction of #1424 overstated the evidence. The skip notice naming label configuration is suggestive, not decisive, when a second sufficient cause is present.

#1440 is the unconfounded case. It is not a draft — it was ready_for_review when its status was set — it carries javascript and tests, both in the required list, and it still shows Review skipped: excluded by label configuration. Drafts do not explain that one. #1424 and #1425 should be read against #1440, not this PR.

What survives from the original claim without qualification is the narrower and more consequential part: a green CodeRabbit commit status does not distinguish "reviewed" from "skipped" or "rate limited." That holds regardless of which exclusion fired.


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- changed files in follow-up commit ---'
git show --stat --oneline 2fe3ecb
git diff 2fe3ecb^ 2fe3ecb -- .github/workflows/auto-label.yml tests/unit/test_auto_label_workflow.py

echo '--- candidate test outlines ---'
ast-grep outline tests/unit/test_auto_label_workflow.py --items all || true
ast-grep outline tests/unit/test_pr_governance_workflow.py --items all || true

echo '--- workflow with line numbers ---'
cat -n .github/workflows/auto-label.yml

echo '--- new test with line numbers ---'
cat -n tests/unit/test_auto_label_workflow.py

echo '--- existing workflow-test pattern with line numbers ---'
cat -n tests/unit/test_pr_governance_workflow.py

Length of output: 10828


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo '--- checked-out revision and commit relations ---'
git status --short --branch
git rev-parse HEAD
git branch --contains 2fe3ecb || true
git merge-base --is-ancestor 2fe3ecb HEAD && echo '2fe3ecb is an ancestor of HEAD' || echo '2fe3ecb is not an ancestor of HEAD'
git show -s --format='commit=%H%nparents=%P%nsubject=%s' 2fe3ecb

echo '--- files committed by 2fe3ecb ---'
git ls-tree -r --name-only 2fe3ecb -- tests/unit/test_auto_label_workflow.py .github/workflows/auto-label.yml
git show 2fe3ecb:tests/unit/test_auto_label_workflow.py | cat -n

echo '--- existing committed test pattern at the same revision ---'
git ls-tree -r --name-only 2fe3ecb -- tests/unit/test_pr_governance_workflow.py
git show 2fe3ecb:tests/unit/test_pr_governance_workflow.py | cat -n

echo '--- target workflow at the same revision ---'
git show 2fe3ecb:.github/workflows/auto-label.yml | cat -n

echo '--- PR head and commit membership ---'
gh pr view 1443 --repo groupthinking/EventRelay --json headRefOid,commits --jq '{headRefOid, commits: [.commits[].oid]}'

Length of output: 15805


@groupthinking The follow-up commit is the PR head.

The new regression test covers the shipped embedded workflow script. It detects both original defects.

The behavioral test rejects direct github.rest.pulls.listFiles calls. It requires per_page: 100. It verifies labels from files beyond the default first page.

I found no new correctness, security, or production-impacting issue in the follow-up change. I did not execute the repository test suite in this environment.

The correction about this PR being a draft is accurate. Draft exclusion prevents this PR from serving as an unconfounded label-gate reproduction. The distinction between a successful status and a completed review remains important.

🐇 ✅


✏️ Learnings added
Learnt from: groupthinking
URL: https://github.com/groupthinking/EventRelay/pull/1443

Timestamp: 2026-08-07T19:29:57.929Z
Learning: For GitHub pull request `#1443` in `groupthinking/EventRelay`, draft exclusion under `.coderabbit.yaml` `auto_review.drafts: false` is sufficient to explain CodeRabbit skipping the draft PR. Therefore, this PR must not be used as an unconfounded reproduction of the required-label gate timing issue. A successful CodeRabbit commit status can still represent a skipped or rate-limited review rather than a completed review.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


If you found this review helpful, would you consider giving us a shout-out on X?

Thank you for using CodeRabbit!

⚠️ Action not completed

No files to review.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@linear-code
linear-code Bot marked this pull request as ready for review August 7, 2026 19:30

Copy link
Copy Markdown
Owner Author

@coderabbitai review

Requesting explicitly because auto-review did not run on head 2fe3ecb. The CodeRabbit commit status reads "Review skipped: excluded by label configuration" — this PR carries python / ci/cd, which the inherited label gate treats as an exclusion. That is the defect #1425 is open to fix; a manual command bypasses the auto-review exclusion.

The earlier finding on .github/workflows/auto-label.yml (pagination regression test) was addressed in 2fe3ecb and the thread is resolved. This request is for an incremental pass over that commit, which has not been reviewed.


Generated by Claude Code

@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

@groupthinking I will review the incremental changes in 2fe3ecb.


✏️ Learnings added
Learnt from: groupthinking
URL: https://github.com/groupthinking/EventRelay/pull/1443

Timestamp: 2026-08-07T19:35:18.833Z
Learning: In `groupthinking/EventRelay`, the inherited CodeRabbit label gate can exclude a pull request that has the `python` and `ci/cd` labels. An explicit `coderabbitai review` command can bypass this automatic-review exclusion. Issue `#1425` tracks the label-gate defect.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.

⚠️ Action not completed

No files to review.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

Copy link
Copy Markdown
Owner Author

Verification status — two boxes in the description are now stale

Automated PR triage. The description still carries these unchecked, and both are false as of head 2fe3ecb:

  • Required CI — not complete on this head.
  • Required checks pass on the current head — CI not complete on 2fe3ecb; mergeable_state is unstable

Measured now:

Check runs 34 completed, 0 failures. test, build, lint-python, lint-frontend, guards, bandit, trivy, npm-audit, python-safety, gitleaks, Security Scan - python/javascript, CodeQL, dependency-review, Generate and Upload Coverage all success
Canonical issue and evidence success
PR Governance success
mergeable_state clean
Review threads 1 thread, resolved
CodeRabbit APPROVED on 2fe3ecb (review 4885981124), status Review completed

Trivy is neutral — informational, not a failure. approve / merge / E2E Pipeline Tests are skipped by their own if: conditions.

Independently re-ran the new tests locally against this head: 4 passed, including the node-executed pagination test that fails against the pre-fix workflow.

One correction to the #1424 section

That section states the CodeRabbit status "still reads Review skipped: excluded by label configuration". It has since flipped to Review completed (19:35:27Z). This strengthens the section's existing conclusion rather than undermining it — #1443 is not a clean reproduction of the label-gate deadlock and still should not be cited as proof of it. #1440 remains the unconfounded case (its status reads Review rate limited — a third distinct reason, also reported green), which is the point the section actually rests on and which is unaffected.

Terminal state: HALTED(awaiting_merge_approval). Every gate below the publish gate is cleared; nothing further is automatable here. Not merging — protected branch, no automerge label.


Generated by Claude Code

@groupthinking
groupthinking merged commit bafea34 into main Aug 7, 2026
37 checks passed
@groupthinking
groupthinking deleted the claude/clever-heisenberg-zg6pbw branch August 7, 2026 20:46
@linear-code

linear-code Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

GRV-370

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.

Auto Label never runs on pushes: synchronized is not a GitHub activity type

2 participants