Skip to content

fix: single-flight guard for opening watch; stacked screens never autoplay - #16

Merged
ghostcoder42 merged 1 commit into
mainfrom
fix/duplicate-push-freeze
Sep 28, 2026
Merged

ghostcoder42 merged 1 commit into
mainfrom
fix/duplicate-push-freeze

Conversation

@ghostcoder42

Copy link
Copy Markdown
Owner

Reproduced on device: tapping a video card 8 times in a row pushed ~7 copies of the watch screen onto the stack — each mounting its own native player that autoplays as soon as its source resolves (the blur-time pause() predates the source and is a no-op), layering multiple audio streams, and each copy needs its own back press, which reads as "back is dead".

  • The tap IS the open (router.push is synchronous). A single-flight lock guards only the in-flight window — from push until the pushed screen gains focus, repeat opens of the SAME video are swallowed. No time window: once the screen has focused, the same video can be opened again immediately.
  • Watch-screen autoplay is gated on focus: a screen stacked under another never starts playing when its source lands late.

@ghostcoder42
ghostcoder42 force-pushed the fix/duplicate-push-freeze branch from 6a1ef40 to ec7e311 Compare September 27, 2026 22:56
…oplay

Reproduced on device: tapping a video card 8 times in a row pushed
~7 copies of the watch screen onto the stack — each mounting its own
native player that autoplays as soon as its source resolves (the
blur-time pause() predates the source and is a no-op), layering
multiple audio streams, and each copy needs its own back press, which
reads as "back is dead".

- The tap IS the open (router.push is synchronous). A single-flight
  lock guards only the in-flight window — from push until the pushed
  screen gains focus, repeat opens of the SAME video are swallowed.
  No time window: once the screen has focused, the same video can be
  opened again immediately.
- Watch-screen autoplay is gated on focus: a screen stacked under
  another never starts playing when its source lands late.
@ghostcoder42
ghostcoder42 force-pushed the fix/duplicate-push-freeze branch from ec7e311 to 54af02b Compare September 27, 2026 23:56
@ghostcoder42
ghostcoder42 merged commit aa7c544 into main Sep 28, 2026
1 check passed
@ghostcoder42
ghostcoder42 deleted the fix/duplicate-push-freeze branch September 28, 2026 00:22
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