# 1.1.0 playback observations and write scheduling > Version: 1.1.0. Release requirements; implementation and delivery are recorded below. > [Verification status](/Riff/1-1-0/status). ## Attempts and qualification Each actual new occurrence activation or deliberate new playback attempt, including Repeat, has one content-derived attempt ID. Pause/resume, focus regain, UI recreation, ordinary in-occurrence seek and chapter transport within the same logical media do not create a new attempt. A Music attempt qualifies for history only after accumulated actual playing time exceeds the resolved player.rewindPreviousThresholdSeconds.music value (currently 3 seconds). Reuse this exact configuration leaf; introduce no history-specific timeout. Exclude preparation, buffering and pause; seeking ahead does not add played time. Crossing the threshold sends one START immediately. A BOOK queue or effective Book media creates no history. The audiobook REW threshold remains transport configuration. A failed/ended attempt before qualification creates no history entry. Qualification freezes attempt ownership/classification from the accepted playback context. Checkpoint stores attempt ID and whether its history START was recorded. The flag and history entry publish atomically. Restoring a recorded attempt produces no second START. Restoring an unqualified attempt restarts its qualification timer; no persistent wall-clock or timer field is added. ## Player cadence While actively playing, send PROGRESS every 15 seconds for Books and every 45 seconds for Music. PROGRESS only updates queue/checkpoint. An unchanged paused state needs no periodic report. Send new queue/track state immediately; qualified Music START is sent immediately on qualification. Accepted settings/reaction/bookmark/list edits, Pause, completed seek, Repeat/Shuffle changes and queue completion send updated state immediately. Sending does not imply immediate disk publication. Capture root, source-profile slot, queue/execution/occurrence/attempt identity before enqueue. Coalesce only unsent progress for the same target; retain the newest actual position. Never coalesce distinct qualified starts merely because their Media.IDs match. ## Indexer cadence One common user-state scheduler uses soft = 5 seconds and hard = 30 seconds: ```text deadline = min(last_new_dirty_change + 5s, first_unsaved_change + 30s) ``` First dirty change starts both deadlines. Further real changes move only soft. Retransmission, already-applied operations and semantic no-ops do not restart either deadline. Publish dirty files only. New changes arriving during serialization remain dirty with their own first-unsaved deadline; publishing an earlier cut must not clear them. A 20-second burst with gaps below five seconds is normally one publication at 25 seconds. An uninterrupted burst is cut by the hard deadline. A Music start qualifying near three seconds normally reaches disk near eight seconds absent other changes. The hard limit bounds intentional scheduling delay with a live process and usable storage; it cannot bound blocked I/O. Persistence and ACK executors must remain independent of scanning, metadata extraction, analysis and playback/UI-critical threads. Explicit orderly drain and relocation may flush before soft. Durability never relies on shutdown callbacks. This replaces the released 30/60-second checkpoint cadence.