You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: the familiar-intent warning's API steps never fail its check, on the copy that runs (main) - #28447
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.
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.
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
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.
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: 25
Check name
Status
Explanation
Title check
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
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
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
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Cmux Cloud Persistent Session And Early Input
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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.
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.
… 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The familiar-intent warning is meant to be advisory, but on
mainit still fails itswarncheck 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" threwHttpError: API rate limit exceeded for installation(job 124175788341).GitHub runs a
pull_request_targetworkflow from the default branch whatever the PR's base, somain'sintent-familiar-review.ymlis the copy that runs forfeat-cmux-nextPRs. #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 thefeat-cmux-nextcopy, which never runs.This PR ports both to
main:continue-on-error: trueon 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.Familiar intent review warning (advisory).The
jobs:block is now identical tofeat-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
tests/test_ci_runs_on_values.py,tests/test_ci_guard_workflow_structure.py,tests/test_ci_reusable_workflow_permissions.pyandtests/test_ci_actionlint_covers_every_workflow.pypass on this branch.diffshows thejobs:block is identical tofeat-cmux-next's.Observed / Not run
main's workflow name ("Familiar intent review warning / warn", no "(advisory)"), which showsmain's copy ran.pull_request_targetrun of this change. It takes effect only once merged intomain. I couldn't trigger an installation 403 on purpose.actionlintis not installed on this host; CI's actionlint job covers it.Changelog
none
Proof
CI only.
Checklist
Follow-up, not in this PR: delete or clearly mark the
feat-cmux-nextcopy of this workflow so nobody fixes the copy that never runs again.Agent session: agent session
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Ports the familiar-intent warning's two fixes to
mainso it never fails its check when the GitHub API rate limit runs out.main's copy of thispull_request_targetworkflow is the copy that runs for all PRs, but the earlier fixes in #25295 and #25670 went to thefeat-cmux-nextcopy only, which never runs; that leftmain's API steps failing red on rate-limit errors, andnext-autolandread that red as the PR's own and refused to land it.continue-on-erroron the two GitHub API steps.if:guards so the detect and warn steps skip when the read failed.jobs:block identical to thefeat-cmux-nextcopy.Written for commit 7420f31. Summary will update on new commits.
Summary by CodeRabbit