Offline/playback recording robustness (contract-audit follow-ups) #90
Reference in New Issue
Block a user
Delete Branch "dev"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to the v2026.06.11 history-recording repair. A full Android↔server
connection-point audit cleared the silent-contract bug class and surfaced a
cluster of offline/playback-robustness defects, now fixed.
Fixes
PlayEventsReporterclose-by-idrouting + paused-only
onStop+ in-flight guard; newPLAY_ENDEDdurablemutation kind. Eliminates the duplicate/skip-misclassified row produced on
every screen-lock.
SENT/DROP/RETRYmodel; permanent 4xx + corruptpayloads dropped, 408/429/5xx/transport retry.
RecordOfflinePlaydedup on(user, track, started_at);RecordPlayEndedskips a duplicate skip_event on re-close(+2 integration tests). Makes at-least-once replay safe.
can't invert the final like state.
NetworkStatusController → Healthy;SyncController.syncSafegains a single-in-flight mutex.Commits
d2a22e49+4ecb1680. CI green on dev head4ecb1680(server run 884 ✓,Android run 885 ✓). Tracked in Scribe task #776.
🤖 Generated with Claude Code