Skip to content

Add Media Session API integration for lock screen queue controls#740

Open
marcodejongh wants to merge 3 commits intomainfrom
claude/iphone-media-controls-U80o9
Open

Add Media Session API integration for lock screen queue controls#740
marcodejongh wants to merge 3 commits intomainfrom
claude/iphone-media-controls-U80o9

Conversation

@marcodejongh
Copy link
Owner

Enables iPhone/Android users to control climb queue navigation (next/previous)
from the lock screen, Control Center, or notification shade media controls.
Uses a silent audio loop to activate the media session, with metadata showing
current climb name, grade, and setter.

https://claude.ai/code/session_01Q1guH3MapHSsEk2BhmwTXm

Enables iPhone/Android users to control climb queue navigation (next/previous)
from the lock screen, Control Center, or notification shade media controls.
Uses a silent audio loop to activate the media session, with metadata showing
current climb name, grade, and setter.

https://claude.ai/code/session_01Q1guH3MapHSsEk2BhmwTXm
@vercel
Copy link

vercel bot commented Feb 8, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
boardsesh Building Building Preview, Comment Feb 8, 2026 8:43am

Request Review

@claude
Copy link

claude bot commented Feb 8, 2026

Claude Review

Ready to merge - Minor issues noted below, but nothing blocking.

Issues

  1. Missing tests - The new use-media-session.ts hook (234 lines) has no test coverage. Given it handles edge cases like iOS Safari quirks, autoplay blocking, and cleanup, tests would prevent regressions.

  2. package-lock.json changes unrelated to feature - The lock file changes (dev → devOptional, removing dev markers from react/react-dom/scheduler) appear unrelated to the media session feature and may be unintentional side effects of dependency changes.

Warns users that enabling lock screen controls will take over media controls
and may pause any music currently playing. The acknowledgment is persisted
in IndexedDB so the dialog only shows once. Subsequent toggles activate/
deactivate directly.

https://claude.ai/code/session_01Q1guH3MapHSsEk2BhmwTXm
@claude
Copy link

claude bot commented Feb 8, 2026

Claude Review

Ready to merge - Minor issues noted below, but nothing blocking.

Issues

  1. Race condition on first toggle - packages/web/app/components/play-view/play-view-drawer.tsx:110: hasAcknowledgedRef.current is read synchronously but loaded async in useEffect. If user clicks the button before IndexedDB loads (brief window on mount), the dialog will show even if they've previously acknowledged.

  2. Missing tests - No test coverage for the new useMediaSession hook. Given the complexity of audio/Media Session API interaction and browser-specific behavior, unit tests would help prevent regressions.

  3. Unrelated package-lock.json changes - The diff includes removal of "dev": true from react, react-dom, and scheduler packages, which seems unintentional and unrelated to this feature.

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.

2 participants