Skip to content

Single-slot sync plus UI-thread snapshot apply can drop a fire-and-forget command #622

Description

@iamfatness

Problem

Poll, spine, full-state, and one-shot work contend for one sync slot. Fire-and-forget callers depend on retry conventions, so a new command can be lost if it does not re-arm. Snapshot projection and structural updates still run through one UI-thread apply graph.

Not #509. #509 is the 197 ms participant-rebuild stutter. Same apply graph, different failure: lost commands versus jank.

Evidence

Static review at 6f4f025 (2026-09-24).

  • MediaCoreSupervisor.cs ~670-672
  • MediaCoreBridgeService.cs
  • StudioViewModel.cs snapshot/sync paths

Done when

  • Production sync has one scheduler with a stated contention policy (queue, coalesce, or reject-visible).
  • A one-shot command that loses the slot is retried by the scheduler or failed to the caller. Silent drop is not allowed.
  • A test constructs two overlapping syncs and proves the second command is not discarded.

Related, not duplicate

Activity

  1. added
    bugSomething isn't working
    backlogRanked in docs/BACKLOG.md
    on Sep 24, 2026
  2. added 3 commits that reference this issue on Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogRanked in docs/BACKLOG.mdbugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions