Skip to content

ci: Harden Drivers CI Workflow and Correct False Claims - #174

Merged
droid-ash merged 3 commits into
mainfrom
260731-0sg1-harden-drivers-ci-workflow
Jul 31, 2026
Merged

droid-ash merged 3 commits into
mainfrom
260731-0sg1-harden-drivers-ci-workflow

Conversation

@droid-ash

Copy link
Copy Markdown
Owner

Meta

Change ID Type Confidence Plan Review
0sg1 ci 5.0/5.0 7/7 tasks, 12/12 acceptance ✓ ✓ 1 cycle
Impact +/− Net
true +531 / −17 +514
└ impl +531 / −17 +514
└ tests +0 / −0 +0

generated by fab-kit v2.16.8

Pipeline: intake ✓ → apply ✓ → review ✓ → hydrate ✓ → ship → review-pr

Summary

drivers.yml is the only automated verification the native drivers have, and nothing pins its toolchain, so a macos-latest image rotation breaks the build silently until a red check lands on an unrelated PR. Separately, three of the file's own rationale comments — held up by this repo's comment policy as the canonical positive example — had drifted false or ambiguous following PRs #168–#172. This change adds on-demand and weekly-scheduled runs plus an SPM cache to drivers.yml, and corrects those three claims in place without touching any surviving rationale.

Changes

  • On-demand + scheduled triggers (finding ONE): add workflow_dispatch and a weekly schedule (Mon 05:17 UTC) so toolchain rotation surfaces as an attributable scheduled-run failure instead of a misattributed red check on the next PR that happens to touch a driver path
  • SPM dependency cache for the ios job (finding TWO): cache the global SPM clone cache (~/Library/Caches/org.swift.swiftpm), keyed on Package.resolved, since build-drivers-ios.sh wipes DerivedData every run and all 22 packages otherwise re-resolve over the network at the 10x macOS billing rate
  • Correct the ios worst-case comment (finding THREE): replace the falsified worst-of-five (9m20s) claim with a dated, run-id-anchored formulation — 10m03s across all 17 recorded runs (run 30572535194), ~2.5x headroom — that cannot rot the same way; the android half is untouched
  • Disambiguate the native file count (finding FOUR): "44" becomes "47 native build-input files (24 Kotlin + 20 Swift + 3 *.gradle.kts)" with the definition stated inline
  • Correct the proto/** justification (finding FIVE): scope the existing Android rationale explicitly to Android, and add that iOS compiles committed generated Swift with no codegen in this repo, so a proto desync still yields a green ios job

Findings came from an independent adversarial review of PRs #168–#172. Memory hydration updated docs/memory/ci/pr-quality-gate.md and docs/memory/drivers/grpc-contract.md (plus their domain indexes) with the corrected facts and the proto/iOS-desync caveat.

Note: this PR touches drivers.yml, which is in its own paths filter, so the drivers workflow will run on this PR — expected and accepted (costs macOS minutes).

Add workflow_dispatch and a weekly schedule to drivers.yml for
toolchain-rotation detection, add an SPM global-cache step to the ios
job, and correct three rationale-comment claims falsified or made
ambiguous by PRs #168-#172: the stale ios worst-case timing, the
ambiguous native-file count, and the proto/** filter justification
(now scoped to Android only, since a green ios job does not prove
committed Swift bindings are in sync with proto).
@coderabbitai

coderabbitai Bot commented Jul 31, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@droid-ash, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 6 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 3a3309b0-cc2d-44b3-8d60-5ffd60d6153e

📥 Commits

Reviewing files that changed from the base of the PR and between 7fdebd0 and 4279be0.

📒 Files selected for processing (9)
  • .github/workflows/drivers.yml
  • docs/memory/ci/index.md
  • docs/memory/ci/pr-quality-gate.md
  • docs/memory/drivers/grpc-contract.md
  • docs/memory/drivers/index.md
  • fab/changes/260731-0sg1-harden-drivers-ci-workflow/.history.jsonl
  • fab/changes/260731-0sg1-harden-drivers-ci-workflow/.status.yaml
  • fab/changes/260731-0sg1-harden-drivers-ci-workflow/intake.md
  • fab/changes/260731-0sg1-harden-drivers-ci-workflow/plan.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 260731-0sg1-harden-drivers-ci-workflow

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

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@droid-ash
droid-ash marked this pull request as ready for review July 31, 2026 12:00
@droid-ash
droid-ash merged commit 91b2683 into main Jul 31, 2026
3 of 4 checks passed
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