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

Merged
TE
7d ago
+9-1

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.

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.