fix(ci): catch native-only mobile protocol drift#100278
Conversation
|
Land-ready on exact head
No remaining proof gaps. |
|
Codex review: needs maintainer review before merge. Reviewed July 5, 2026, 12:10 PM ET / 16:10 UTC. Summary PR surface: Tests +58, Config +3, Other +63. Total +124 across 5 files. Reproducibility: yes. Current-main source and tests show native-only iOS/shared mobile changes can set native jobs while leaving Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Maintainer decision needed
Security Review detailsBest possible solution: Land the focused CI guard after maintainer acceptance of the preflight enforcement point and normal exact-head required checks. Do we have a high-confidence way to reproduce the issue? Yes. Current-main source and tests show native-only iOS/shared mobile changes can set native jobs while leaving Is this the best way to solve the issue? Yes, with maintainer approval for CI policy. Moving the dependency-free checker into manifest-gated preflight is the narrowest owner-boundary fix, and the current head fixes the earlier quoted Swift constant false positive. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 286d0b9fb340. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Tests +58, Config +3, Other +63. Total +124 across 5 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (5 earlier review cycles)
|
69cfec7 to
4eb030b
Compare
2027864 to
1e861d5
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1e861d5122
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
a48bc94 to
e088522
Compare
e088522 to
753e4a9
Compare
|
Exact-head land proof for
No remaining proof gaps for this CI/tooling-only change. |
|
Merged via squash.
The required |
* fix(ci): cover native-only protocol event drift * fix(ci): ignore quoted Swift event constants
Closes #100198
What Problem This Solves
Fixes an issue where mobile protocol coverage drift could escape CI when a change touched only Android or iOS, and where removing the iOS exec-approval handler still appeared covered because its event names lived in the allowlist.
Why This Change Was Made
Moves the dependency-free coverage script into CI preflight, gated by the manifest's Node, iOS, or Android selections, and removes the redundant Node check-shard call. The Swift extractor now resolves qualified type-scoped static string constants across scanned app sources, so the real ExecApprovalNotificationBridge handlers count as coverage and their allowlist exceptions disappear.
User Impact
Maintainers now get a blocking CI failure when native-only changes drop a gateway event handler. Existing iOS exec-approval handling is tracked from its actual dispatch cases instead of a manual exception.
Evidence
AI-assisted: yes.