Skip to content

fix(mobile): pin expo-audio to the patched 57.0.4 - #139

Merged
NoahHendrickson merged 1 commit into
customfrom
fix/pin-expo-audio
Sep 13, 2026
Merged

NoahHendrickson merged 1 commit into
customfrom
fix/pin-expo-audio

Conversation

@NoahHendrickson

Copy link
Copy Markdown
Owner

What Changed

apps/mobile/package.json pins expo-audio to 57.0.4 instead of ~57.0.4. The lockfile diff is the one importer specifier line.

Why

Release Smoke is a required check and it deletes pnpm-lock.yaml in a temp copy, then runs vp install --lockfile-only. That re-resolves every range from the registry. pnpm-workspace.yaml patches the exact expo-audio@57.0.4, so the moment a newer 57.0.x published, resolution moved past the patched version and pnpm failed with:

[ERR_PNPM_UNUSED_PATCH] The following patches were not used: expo-audio@57.0.4

That turns every open PR red at once with no change on the PR's side — currently blocking #137. Identical shape to #109, which pinned expo-sharing for the same reason.

Validation

Replicated the check locally: deleted pnpm-lock.yaml and ran vp install --lockfile-only --ignore-scripts, which completes clean with no unused-patch error. With the specifier restored to ~57.0.4 it fails. An incremental vp install --lockfile-only on top of the hand-edited lockfile makes no further changes and passes supply-chain policy.

Note

@react-native-menu/menu (^2.0.0) and react-native-gesture-handler (~2.32.0) are also patched on ranges, so they will do this too. Not touching them here — one concern per PR.

Checklist

  • This PR is small and focused
  • I explained what changed and why

Model: Claude Opus 5 (1M context). Harness: Claude Code.

🤖 Generated with Claude Code

Release Smoke regenerates pnpm-lock.yaml from scratch, so every range is
re-resolved from the registry. `~57.0.4` now resolves past the version
patches/expo-audio@57.0.4.patch targets, and pnpm fails the required check
with ERR_PNPM_UNUSED_PATCH on every open PR at once.

Same fix as #109 did for expo-sharing: pin the exact patched version. The
lockfile diff is only the importer specifier line.

Verified by replicating the check — deleting pnpm-lock.yaml and running
`vp install --lockfile-only --ignore-scripts` completes with no unused-patch
error.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS labels Sep 12, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No major structural issues.

This is a one-line specifier pin (~57.0.4 → 57.0.4) plus the matching lockfile importer line. It aligns the mobile dep with the existing exact expo-audio@57.0.4 patch so Release Smoke’s lockfile regen cannot walk past it. Same shape as #109. No new branching, abstractions, file-size growth, or layer leakage.

Open in Web View Automation 

Sent by Cursor Automation: Thermo nuke 4.6

@github-actions

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.5 KiB 13.5 KiB −16 B (−0.1%) 15.1 KiB ✅
Codex Thread snapshot wire 7.0 KiB 7.0 KiB −4 B (−0.1%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.4 KiB 6.4 KiB −12 B (−0.2%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 56.2 KiB 56.2 KiB 0 B (0.0%) 66.4 KiB ✅
Codex Live turn messages 8 8 0 (0.0%) 21 ✅
Claude Total thread wire 13.6 KiB 13.6 KiB −8 B (−0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.0 KiB 7.1 KiB +2 B (+0.0%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.5 KiB 6.5 KiB −10 B (−0.1%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 57.8 KiB 57.8 KiB −44 B (−0.1%) 66.4 KiB ✅
Claude Live turn messages 9 8 −1 (−11.1%) 21 ✅

Baseline: 3a68a82 · PR result: 24e70ea · 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: 113.9 KiB
  • Claude decoded thread snapshot: 114.6 KiB

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

@NoahHendrickson
NoahHendrickson merged commit 87a5fb9 into custom Sep 13, 2026
18 checks passed
@NoahHendrickson
NoahHendrickson deleted the fix/pin-expo-audio branch September 13, 2026 04:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants