Menu
BifrOSt-Apps
publicLatest change f67fd8437552caf5eb9371b0012e81d27c807ca3 - Add native RÚV television application by Ólafur Búi Ólafsson
# BifrOSt RÚV implementation status Updated: 2026-08-06 ## Current state The first native BifrOSt application is implemented under `apps/ruv/` as `org.bifrost.Ruv`. Implemented: - Rust 2024 and libcosmic application with Home, Live, Guide, On demand, and Search navigation. - RÚV RSS news and article reading. - RÚV GraphQL VOD shelves, program and episode details, dated RÚV/RÚV 2 schedules, and mixed search. - RÚV and RÚV 2 HTTPS HLS playback through `iced_video_player` and GStreamer. - English and Icelandic Fluent UI resources plus bilingual desktop and AppStream metadata. - Sandboxed Flatpak manifest using Freedesktop 25.08, COSMIC BaseApp, offline locked Cargo sources, network/audio/display/GPU access, and no host filesystem access. - Contract fixtures and tests for RSS, GraphQL, search, schedules, URL trust, response limits, player URL policy, and volume bounds. - Repository guidance, README updates, and `.github/workflows/validate-ruv.yml` for tests, metadata validation, offline Flatpak construction, and unsigned candidate artifacts. ## Completed UI, playback, and preview work The final application now: - decodes RÚV WebP artwork and limits image downloads to four concurrent requests; - uses responsive one-to-four-column programme layouts with uncropped 16:9 artwork; - provides play/pause, replay, ±10-second seek, timeline, volume, mute, fullscreen, and keyboard controls; - uses GStreamer `playbin3`, which is compatible with the current streams-aware HLS demuxer; - accepts RÚV's short-lived `*.cdn.ruv.is` live resolver hosts without weakening the media-origin policy; - uses the official square RÚV logo at standard 32, 64, 128, 256, and 512 pixel icon sizes; - labels the Icelandic home page `Aðalskjár`; - extracts independent 640×360 frames from RÚV and RÚV 2 without starting audible playback, displays the channels side by side on wide viewports, and refreshes both frames every minute. ## Verified on 2026-08-06 - `cargo fmt --check --manifest-path apps/ruv/Cargo.toml`: passed. - `cargo test --all-targets --locked --manifest-path apps/ruv/Cargo.toml`: 16 tests passed. - `cargo clippy --all-targets --locked --manifest-path apps/ruv/Cargo.toml -- -D warnings`: passed. - `desktop-file-validate apps/ruv/data/org.bifrost.Ruv.desktop`: passed. - `appstreamcli validate --no-net apps/ruv/data/org.bifrost.Ruv.metainfo.xml`: passed. - The RÚV and RÚV 2 preview extractor returned 640×360 RGBA frames of 921,600 bytes for both current HTTPS HLS streams. - Live playback loaded a 1920×1080 RÚV stream with the corrected `playbin3` pipeline. - The final Flatpak build exported commit `a52e59c030eade5d171667e309d031466fc59f1017d194316d2d59f5a741897d`. - The unsigned bundle was installed and launched from the user Flatpak installation. - Visual inspection of the installed Flatpak confirmed `Aðalskjár`, side-by-side RÚV/RÚV 2 frames, current news imagery, and the official dock icon. - A second visual capture after more than 60 seconds confirmed that both channel frames changed automatically. ## Remaining release work Review the uncommitted application and integration changes, commit and push them, then confirm that the `Validate RÚV` GitHub Actions workflow succeeds. Final signing and catalog publication remain in the BifrOSt OS repository. ## Repository state Changes are intentionally uncommitted. They include the complete `apps/ruv/` application, `cargo-sources.json`, `Cargo.lock`, the RÚV CI workflow, root README/AGENTS/.gitignore updates, and this handoff file. Build directories, local OSTree repositories, and `.flatpak` bundles are ignored and must not be committed. The remaining tracked work is to review and commit the first application, push it, and confirm the GitHub Actions result.