Repository navigation
0.2.9: fix red playlist rows, track editor and clocks on a server; screen scaling options - #15
Conversation
…ks; screen scaling - Playlist rows are red only when the file is missing on the server (the server sends its list of missing playlist files with the state poll). - The track editor gets waveforms and cues from the server (POST /api/v1/wave), and shows why when a file can't be analysed instead of spinning on "analysing…" for ever (locally too). - The mirror follows the server's clock and counts the on-air position on between polls, so the clock, elapsed/remaining and start times tick together. - Appearance: choose how the interface size applies on other screens (follow display scaling, same pixels everywhere, or fit each screen like 1920x1080). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wktb5zD7vpunQtvFHx6adf
There was a problem hiding this comment.
MergeGuard review
Risk: 🟠 35/100 — moderate
Findings: 🟠 1 medium
Open Files changed for 1 inline review thread on the diff.
💡 Use the Fix All MergeGuard Findings checkbox comment on this PR to apply auto-fixes in batch, or reply
@mergeguards fixon any inline finding.
Reviewed by MergeGuard AI
MergeGuard agent actionsFix all findingsAll issues (1)
Apply auto-fixes for the findings above on this branch:
Or reply with |
…ir own folder The data folder is set once per test process. The new test could become it and then delete it while the HTTPS test was still using it (macOS CI). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wktb5zD7vpunQtvFHx6adf
There was a problem hiding this comment.
MergeGuard review
Risk: 🟠 35/100 — moderate
Findings: 🟠 1 medium
Open Files changed for 1 inline review thread on the diff.
💡 Use the Fix All MergeGuard Findings checkbox comment on this PR to apply auto-fixes in batch, or reply
@mergeguards fixon any inline finding.
Reviewed by MergeGuard AI
…pendent - clippy 1.99: is_multiple_of in Revs::refresh - Server tests: each station starts with exactly its own rows. Playout::new loads the playlists saved in the data folder, which the tests running at the same time share, so a station could start with another test's rows and the "first copy" / "playlist over HTTPS" waits never matched (seen on macOS CI, and on main with two cores). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wktb5zD7vpunQtvFHx6adf
There was a problem hiding this comment.
MergeGuard review
Risk: 🟠 35/100 — moderate
Findings: 🟠 1 medium
Open Files changed for 1 inline review thread on the diff.
💡 Use the Fix All MergeGuard Findings checkbox comment on this PR to apply auto-fixes in batch, or reply
@mergeguards fixon any inline finding.
Reviewed by MergeGuard AI
Requested by epell · project thread
Fixes the App "Bugs" section of the 0.2.9 list (the cart wall picking local files is handled in the server-integration PR).
What changed
missing/missing_revinSnapshot, checked every ~2 s inRevs::refresh), and a mirror colours rows from that (Playout::row_missing). Locally nothing changes.POST /api/v1/wave {path}: the server analyses the file (on its own thread, up to 3 at once, 202 while busy) and returns the waveform (u16 levels) plus the cues it uses. Only files in the server's library or playlists are allowed.link.rshas a fetcher thread and the mirror'srequest_analysisgoes there. Cues set by hand in the app are kept in the mirror as well as sent to the server, so the editor shows them straight away. If a file can't be analysed (locally or on the server), the editor now says why instead of spinning forever.Livecarries the server's clock (now_ms). The app estimates the offset from the quickest recent poll, and every clock (status bar, player, studio clock, hour-marker countdown, start times, scheduler) usesPlayout::now(), which is the station's time. The on-air position is counted on between polls and only jumps on a seek or a track change, so elapsed/remaining tick in step with the clock.Testing
cargo buildhas no new warnings (thedelaywarning in the server test was already there),cargo testpasses on both binaries,tools/check_glyphs.pypasses, andlang/template.jsonhas been regenerated.server::tests::app_sees_the_servers_files_and_clock(missing rows, waveform from the server, errors for unreadable or off-list files, clock offset), plus sync tests for waveform round trips, position interpolation and hand-set cues on a mirror.Known limits
CHANGELOG lines (for the release)
Fixed
New
Generated by Claude Code