ci(mobile): production deploys use a Release Manager Expo token#27285

merged1
main
ci/mobile-production-token
opened13h agobyJJulius Marminge
View on GitHubTwo-way sync enabledPR last imported 9h ago

Preview deploys run PR code next to EXPO_TOKEN, a Developer robot, and that token can also publish to the production channel. A leaked token or a malicious PR could push an OTA to every production user.

Production now uses EXPO_PRODUCTION_TOKEN, a new Release Manager robot (the repo secret already exists). Previews keep EXPO_TOKEN. Once this merges, eas channel:protect production limits production publishes to Release Managers, Admins, and Owners, which leaves the preview token unable to reach production.

Order matters: merge this before protecting the channel, or production OTAs fail.

Verified: the diff only renames the secret in all 7 places plus the skip message, and vp fmt/vp lint pass. The first real check is the next production run after merge.

Model: Claude Opus 5.5 in Claude Code (T3 Code).

🤖 Generated with Claude Code

Checks

1 failing · 24 successful · 9 skipped · 1 neutral
Some checks failed

Failing1

5695dfa

Added 1 commit

  • ci(mobile): production deploys use a Release Manager Expo token5695dfa
Synced from GitHub

Approvability

Verdict: Needs Human Approval

Macroscope's review found this PR requires human approval — Production builds and OTAs switch to a separate Expo Release Manager credential, while previews keep their existing token. Confirm the new credential’s production access and coordinate the subsequent channel protection; the first operational validation is currently deferred until after merge.

You can add or adjust custom eligibility rules. Learn more.

Synced from GitHub

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire5.0 KiB5.0 KiB+29 B (+0.6%)6.8 KiB✅
CodexThread snapshot wire3.8 KiB3.8 KiB0 B (0.0%)4.9 KiB✅
CodexLive turn WebSocket wire1.2 KiB1.2 KiB+29 B (+2.3%)2.0 KiB✅
CodexLive turn WebSocket decoded21.5 KiB21.6 KiB+41 B (+0.2%)24.4 KiB✅
CodexLive turn messages12+1 (+100.0%)8✅
ClaudeTotal thread wire5.0 KiB5.0 KiB0 B (0.0%)6.8 KiB✅
ClaudeThread snapshot wire3.8 KiB3.8 KiB0 B (0.0%)4.9 KiB✅
ClaudeLive turn WebSocket wire1.3 KiB1.3 KiB0 B (0.0%)2.0 KiB✅
ClaudeLive turn WebSocket decoded21.9 KiB21.9 KiB0 B (0.0%)24.4 KiB✅
ClaudeLive turn messages220 (0.0%)8✅

Baseline: cba3059 · PR result: 5695dfa · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.