Skip to content

ci: the familiar-intent warning's API steps never fail its check, on the copy that runs (main) - #28447

Merged
teamleaderleo merged 1 commit into
mainfrom
lane/ao-familiar-intent-main
Oct 30, 2026
Merged

teamleaderleo merged 1 commit into
mainfrom
lane/ao-familiar-intent-main

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 30, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The familiar-intent warning is meant to be advisory, but on main it still fails its warn check whenever the installation's REST quota runs out. next-autoland then reads that red as the PR's own and won't land the PR. #27923 was held this way twice on 2026-10-30. At 16:18Z, "Read the pull-request patch" threw HttpError: API rate limit exceeded for installation (job 124175788341).

GitHub runs a pull_request_target workflow from the default branch whatever the PR's base, so main's intent-familiar-review.yml is the copy that runs for feat-cmux-next PRs. #23485 moved it here, and the file's header says "This copy is the one that runs, so change it here". The two fixes for this, #25295 (API steps continue on error) and #25670 (name it "(advisory)" so landing tools never read its red as a PR's own), changed only the feat-cmux-next copy, which never runs.

This PR ports both to main:

  • continue-on-error: true on the two GitHub API steps ("Read the pull-request patch" and "Warn CodeRabbit and cubic reviewers").
  • if: guards, so the detect and warn steps skip when the read failed instead of reading a missing file.
  • The name Familiar intent review warning (advisory).

The jobs: block is now identical to feat-cmux-next's copy, which has carried these lines since 2026-10-26. The checker it runs is still checked out from the PR's base commit, as before.

Testing

  • The YAML parses.
  • tests/test_ci_runs_on_values.py, tests/test_ci_guard_workflow_structure.py, tests/test_ci_reusable_workflow_permissions.py and tests/test_ci_actionlint_covers_every_workflow.py pass on this branch.
  • diff shows the jobs: block is identical to feat-cmux-next's.

Observed / Not run

  • Observed: job 124175788341 (cmux#27923, 16:18Z) failed at "Read the pull-request patch" with the installation 403. Its job title matched main's workflow name ("Familiar intent review warning / warn", no "(advisory)"), which shows main's copy ran.
  • Not run: a live pull_request_target run of this change. It takes effect only once merged into main. I couldn't trigger an installation 403 on purpose. actionlint is not installed on this host; CI's actionlint job covers it.

Changelog

none

Proof

CI only.

Checklist

  • Behavior changes have added or updated tests, or Testing says why not: this is a workflow-only change, and its structure tests pass.
  • Reviewed with a subagent before merge: an independent Codex review is in progress.

Follow-up, not in this PR: delete or clearly mark the feat-cmux-next copy of this workflow so nobody fixes the copy that never runs again.

Agent session: agent session

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Ports the familiar-intent warning's two fixes to main so it never fails its check when the GitHub API rate limit runs out. main's copy of this pull_request_target workflow is the copy that runs for all PRs, but the earlier fixes in #25295 and #25670 went to the feat-cmux-next copy only, which never runs; that left main's API steps failing red on rate-limit errors, and next-autoland read that red as the PR's own and refused to land it.

  • Sets continue-on-error on the two GitHub API steps.
  • Adds if: guards so the detect and warn steps skip when the read failed.
  • Renames the workflow to "Familiar intent review warning (advisory)".
  • Makes the jobs: block identical to the feat-cmux-next copy.

Written for commit 7420f31. Summary will update on new commits.

View guided diff Turn on auto-fix

Summary by CodeRabbit

  • Chores
    • The familiar-intent review workflow is now labeled as advisory. Failures in patch reading or intent detection no longer stop the overall workflow, and each subsequent step runs only when its prerequisite succeeds.

…the copy that runs

GitHub runs a pull_request_target workflow from the default branch (main),
whatever the pull request's base, so main's intent-familiar-review.yml is the
copy that runs for feat-cmux-next PRs (#23485; this file's own header says so).
#25295 (API steps continue on error) and #25670 (name it "(advisory)") changed
only the feat-cmux-next copy, which never runs. Main's copy still failed the
`warn` job whenever the installation's REST quota ran out: "Read the
pull-request patch" threw "HttpError: API rate limit exceeded for
installation" (cmux#27923, job 124175788341, 2026-10-30 16:18Z), and
next-autoland read that red as the PR's own and would not land it.

This ports both changes to main: `continue-on-error` on the two GitHub API
steps, `if:` guards so the later steps skip when the read failed, and the
"(advisory)" name. The jobs block is now identical to feat-cmux-next's.

Checked: YAML parses; tests/test_ci_runs_on_values.py,
test_ci_guard_workflow_structure.py, test_ci_reusable_workflow_permissions.py
and test_ci_actionlint_covers_every_workflow.py pass.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-e281136dd51f7f0cd599
@github-actions

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Walkthrough

The familiar-intent review workflow is labeled advisory. Patch-reading and warning-comment errors no longer stop the workflow, and later steps run only when their prerequisite step succeeds.

Changes: Familiar-intent review

Layer / File(s) Summary
Advisory workflow and step gating
.github/workflows/intent-familiar-review.yml
The workflow name and comments identify it as advisory. Patch reading and warning comments continue on error. Familiar-intent detection requires successful patch reading, and warning comments require successful detection.

Priority: Low

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

Change: Bug fix

Suggested reviewers: lawrencecchen

Merge Risk: Minimal · up to 7420f

The changes make API failures non-blocking and skip dependent steps appropriately. No concrete new merge-blocking risk is established; detector failure handling remains a pre-existing follow-up concern.

Pre-merge checks: Passed 25
Check name Status Explanation
Title check Passed The title clearly identifies the main CI change: making the familiar-intent warning advisory on the main workflow copy. It is specific and related to the changeset, despite being somewhat long.
Description check Passed The description is complete and relevant. It explains the problem, intended behavior, implementation, testing, observed failure, unrun verification, changelog status, proof, and checklist state.
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input Passed The authoritative diff changes only .github/workflows/intent-familiar-review.yml. It adds GitHub Actions error handling and step conditions, plus workflow comments and a name. It does not change Clo…
Cmux Swift Actor Isolation Passed PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. The diff contains no production Swift code, so it cannot introduce or worsen the specified Swift 6 actor-isolation m…
Cmux Swift Blocking Runtime Passed The pull request changes only .github/workflows/intent-familiar-review.yml. The diff contains GitHub Actions YAML and JavaScript, with no production Swift changes or blocking/timing synchronization …
Cmux Browser Automation Off-Main Passed PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. The diff contains no browser.* socket commands, WebKit/AppKit routing, worker-lane browser changes, or policy-test…
Cmux Expensive Synchronous Load Passed The pull request changes only .github/workflows/intent-familiar-review.yml; the diff contains no Swift files or production agent-history loading changes. The custom check is therefore not applicable…
Cmux Cache Substitution Correctness Passed PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. It does not change production Swift, TypeScript, or JavaScript code, and it does not substitute a cache for an autho…
Cmux No Hacky Sleeps Passed PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. The rule explicitly excludes GitHub Actions workflow YAML, and the diff introduces no fixed sleep, timer, polling lo…
Cmux Algorithmic Complexity Passed PASS: The pull request changes only the GitHub Actions workflow. It adds error handling and step guards, renames the workflow, and updates comments. It does not introduce or worsen a scalable collecti…
Cmux Swift Concurrency Passed The pull request changes only .github/workflows/intent-familiar-review.yml. It changes GitHub Actions YAML and adds no Swift files or Swift concurrency patterns. The custom check is not applicable.
Cmux Swift @Concurrent Passed PASS: The reviewed diff changes only .github/workflows/intent-familiar-review.yml. It contains no Swift files or Swift declarations, so the @concurrent annotation rules do not apply.
Cmux Swift Package Boundaries Passed The pull request changes only .github/workflows/intent-familiar-review.yml. It introduces no production Swift changes, so the Swift package boundary rule does not apply.
Cmux Swiftpm Lockfiles Passed PASS. The pull request changes only .github/workflows/intent-familiar-review.yml. It does not change SwiftPM dependencies, Xcode package references, or .gitignore files, so the specified lockfile …
Cmux Swift Logging Passed PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. It adds workflow metadata, error handling, and step conditions. It adds or changes no Swift logging and does not tri…
Cmux User-Facing Error Privacy Passed PASS. The pull request changes only .github/workflows/intent-familiar-review.yml. The changed workflow name, comments, GitHub API error handling, and reviewer warning logic are internal CI/review su…
Cmux Full Internationalization Passed PASS: The PR changes only a GitHub Actions workflow. The added English lines are developer-facing YAML comments, and the workflow name is operational CI metadata. The existing PR-comment text is uncha…
Cmux Swiftui State Layout Passed PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. It introduces no SwiftUI code, ObservableObject, @Published, GeometryReader, lazy/list row state, or render-time sta…
Cmux Architecture Rethink Passed The pull request changes only .github/workflows/intent-familiar-review.yml. It introduces no Swift code or Swift architecture changes, so the specified architectural failure conditions do not apply.
Cmux Swift Auxiliary Window Close Shortcuts Passed PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. It adds no Swift code and does not add or materially change any cmux-owned window, panel, controller, SwiftUI `Windo…
Cmux Source Artifacts Passed The PR changes only .github/workflows/intent-familiar-review.yml. The diff contains hand-written workflow configuration and comments, not logs, caches, generated output, screenshots, recordings, tem…
Cmux No Test Or Debug Seam In Production Source Passed The pull request changes only .github/workflows/intent-familiar-review.yml. It adds no Swift file under a production Sources/ path, so it cannot introduce a test or debug seam covered by this chec…
Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Full details: Cmux Cloud Persistent Session And Early Input

Explanation

The authoritative diff changes only .github/workflows/intent-familiar-review.yml. It adds GitHub Actions error handling and step conditions, plus workflow comments and a name. It does not change Cloud terminal creation, cmux-tui transport, manual renderer admission, input routing, authentication, idempotency, revision fences, or leases. Therefore no condition in the Cloud persistent session and early input rule is introduced.

Full details: Cmux Swift Actor Isolation

Explanation

PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. The diff contains no production Swift code, so it cannot introduce or worsen the specified Swift 6 actor-isolation mistakes.

Full details: Cmux Swift Blocking Runtime

Explanation

The pull request changes only .github/workflows/intent-familiar-review.yml. The diff contains GitHub Actions YAML and JavaScript, with no production Swift changes or blocking/timing synchronization APIs. The custom check does not apply.

Full details: Cmux Browser Automation Off-Main

Explanation

PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. The diff contains no browser.* socket commands, WebKit/AppKit routing, worker-lane browser changes, or policy-test changes covered by the rule. The check is not applicable.

Full details: Cmux Expensive Synchronous Load

Explanation

The pull request changes only .github/workflows/intent-familiar-review.yml; the diff contains no Swift files or production agent-history loading changes. The custom check is therefore not applicable.

Full details: Cmux Cache Substitution Correctness

Explanation

PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. It does not change production Swift, TypeScript, or JavaScript code, and it does not substitute a cache for an authoritative read in a persistence, history, undo, or snapshot path.

Full details: Cmux No Hacky Sleeps

Explanation

PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. The rule explicitly excludes GitHub Actions workflow YAML, and the diff introduces no fixed sleep, timer, polling loop, or wall-clock wait in covered runtime code.

Full details: Cmux Algorithmic Complexity

Explanation

PASS: The pull request changes only the GitHub Actions workflow. It adds error handling and step guards, renames the workflow, and updates comments. It does not introduce or worsen a scalable collection scan, repeated sort/filter, join, or slower production algorithm.

Full details: Cmux Swiftpm Lockfiles

Explanation

PASS. The pull request changes only .github/workflows/intent-familiar-review.yml. It does not change SwiftPM dependencies, Xcode package references, or .gitignore files, so the specified lockfile conditions do not apply.

Full details: Cmux Swift Logging

Explanation

PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. It adds workflow metadata, error handling, and step conditions. It adds or changes no Swift logging and does not trigger any listed logging violation.

Full details: Cmux User-Facing Error Privacy

Explanation

PASS. The pull request changes only .github/workflows/intent-familiar-review.yml. The changed workflow name, comments, GitHub API error handling, and reviewer warning logic are internal CI/review surfaces. The diff shows no cmux product UI, CLI, or API response path, and the policy allows provider names and diagnostics in internal CI. No prohibited user-facing error content was introduced.

Full details: Cmux Full Internationalization

Explanation

PASS: The PR changes only a GitHub Actions workflow. The added English lines are developer-facing YAML comments, and the workflow name is operational CI metadata. The existing PR-comment text is unchanged. No Swift text, app catalog, web UI, localized message, API response, rendered markdown, or locale data changed.

Full details: Cmux Swiftui State Layout

Explanation

PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. It introduces no SwiftUI code, ObservableObject, @Published, GeometryReader, lazy/list row state, or render-time state mutation.

Full details: Cmux Swift Auxiliary Window Close Shortcuts

Explanation

PASS: The pull request changes only .github/workflows/intent-familiar-review.yml. It adds no Swift code and does not add or materially change any cmux-owned window, panel, controller, SwiftUI Window, or WindowGroup. The auxiliary-window close-shortcut rule is therefore not applicable.

Full details: Cmux Source Artifacts

Explanation

The PR changes only .github/workflows/intent-familiar-review.yml. The diff contains hand-written workflow configuration and comments, not logs, caches, generated output, screenshots, recordings, temp folders, dependency checkouts, or artifact directories. This path is an intentional config file covered by the rule's Pass criteria.

Full details: Cmux No Test Or Debug Seam In Production Source

Explanation

The pull request changes only .github/workflows/intent-familiar-review.yml. It adds no Swift file under a production Sources/ path, so it cannot introduce a test or debug seam covered by this check.

Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Additional comments: 1
.github/workflows/intent-familiar-review.yml-66-66: 1

66-66: Minor · Potential issue · Low value

Unverified finding
We couldn't verify this from the code. It is shown for review, not as a verified issue.

The new guard skips detection when patch reading fails, but the guarded detection step lacks continue-on-error; a detector error can still fail the check described as advisory.

The PR receives a red familiar-intent check despite the workflow's claim that advisory errors do not fail a check.

This can occur when: Patch reading succeeds, then intent_familiar_warning.py exits nonzero, for example when it cannot parse an otherwise accepted pull-request file payload.


Review info
Run configuration
Commits

Reviewing files that changed from the base of the PR and between fc87771 and 7420f31.

Files selected for processing: 1
  • .github/workflows/intent-familiar-review.yml

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 4 remain after this review.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex gpt-6.1-sol high, fast): SHIP at 7420f31

Findings: none.

  • continue-on-error keeps the job running after a failed API step while keeping that step's outcome. The if: guards skip detection when the read failed, and skip the warning when detection is skipped or fails. The warning's own API step also tolerates a 403.
  • The whole jobs: block is identical to origin/feat-cmux-next's copy.
  • No test, script or workflow depends on the old workflow name; the only match is the renamed declaration.
  • Security boundaries are unchanged: pinned actions, the base-sha checkout, persist-credentials: false, and the existing scoped pull-requests: write.
  • The YAML parses.

@teamleaderleo
teamleaderleo merged commit 50579c6 into main Oct 30, 2026
67 checks passed
@teamleaderleo
teamleaderleo deleted the lane/ao-familiar-intent-main branch October 30, 2026 17:41
@github-actions

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Merge receipt for 7420f31d0f: every check was green at merge (10 verified; 17 skipped by policy). Full suite runs on main after merge.

teamleaderleo added a commit that referenced this pull request Oct 30, 2026
… which never runs (#28459)

GitHub runs a pull_request_target workflow from the default branch (main)
whatever the pull request's base, so this copy of intent-familiar-review.yml
never ran. #25295 and #25670 fixed this copy, while main's kept failing `warn`
on the installation's rate limit, and next-autoland read that red as the PR's
own (cmux#27923). #28447 fixed main's copy (50579c6), whose jobs block
was identical to this one.

- Delete .github/workflows/intent-familiar-review.yml here. Main's copy still
  checks out this branch's scripts/ci/intent_familiar_warning.py at the PR's
  base, so the checker stays here.
- tests/test_intent_familiar_warning.py: FamiliarIntentWorkflowTests checked
  this dead copy's steps (which is how the bug hid). It now fails if a copy
  comes back here, naming main's file to edit. The detector tests are unchanged.
- cmux-next.yml: drop the deleted file from the two paths filters
  (test_cmux_next_checks_workflow requires every named path to exist). A file
  that no longer exists triggers nothing, so this changes no trigger.

Red, then green: tests/test_intent_familiar_warning.py fails with the copy
present and passes once it is deleted. test_cmux_next_checks_workflow.py (165),
test_ci_actionlint_covers_every_workflow.py, test_ci_runs_on_values.py,
test_ci_guard_workflow_structure.py and test_ci_reusable_workflow_permissions.py
pass.


Agent-Session: https://cmux.com/deeplink/agent?id=aid-e281136dd51f7f0cd599

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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