Playback report, audio passthrough, resource sampling, shell runner - #90
Merged
bryanroscoe merged 9 commits intoSep 17, 2026
Merged
bryanroscoe merged 9 commits into
bryanroscoe merged 9 commits into
Conversation
Four additions to v2, all reading facts off the device rather than assuming them. Playback tab (engine/media.rs): rolls up the decoder list from media_codecs*.xml, every supported display mode, HDR formats, and the encoded-surround settings into one report, then derives a verdict — whether 24p can actually reach the panel, whether lossless audio is being decoded on the way out, what a format falls back to. Two layers, kept apart on purpose: derived facts work on any Android TV, while curated per-family notes (a Shield will not tell you its SoC has no AV1 block) are additive and rendered separately. An unreadable codec list is reported as unknown, never as unsupported. That distinction is load-bearing: a Shield TV Pro keeps the file under /vendor/odm/etc, so a glob missing that path made the whole report read as "no AV1" on the device this app is named after. Tweaks: encoded_surround_output plus a format allow-list, for sinks that under-report what they can decode and leave TrueHD/DTS-HD downmixed. Health: CPU and network rates from two /proc reads either side of a device-side sleep, in one round trip. Kept out of health_report so a refresh never pays the sampling second. Shell tab: command runner with read-only presets and local bookmarks. engine::safety::shell_command_blocked refuses commands that plainly disable or remove a never-disable package before anything is sent — an anti-footgun, not a boundary, and its docs and tests say so explicitly. parse_display_modes now returns every mode instead of only the active one; 23.976 is never the active mode while the UI is on screen, which is exactly why it needed finding.
Owner
|
Thanks for contributing here, i will take a look this week and get this cleaned up and ready to merge. |
bryanroscoe
marked this pull request as draft
September 16, 2026 20:34
bryanroscoe
marked this pull request as ready for review
September 17, 2026 01:15
# Conflicts: # .github/workflows/v2-tests.yml # v2/package.json
The new section landed between the v2-2.2.0-beta.1 heading and the paragraph that introduces it, so the intro read as if it belonged to the playback work. Move it below, split it the way the rest of the file is split, and rewrite the bullets in the changelog's voice — it is release notes for users, not a commit summary. The audio controls live on Tweaks, not on Playback; say so. Renumber the capture script's screen comments now that two screens were inserted, and move the test module's import back above its tests. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
# Conflicts: # .github/workflows/v2-tests.yml # v2/package.json
The Remote screen gained a Paste button and new copy on main, and the gallery was not regenerated with it. This run picks that up along with the Playback and Shell screens. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
bryanroscoe
approved these changes
Sep 17, 2026
# Conflicts: # v2/src/lib/prefs.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds desktop playback configuration reports, per-interface resource sampling, audio controls, and an opt-in expert shell with bounded execution and output. Expert shell is explicitly outside the curated actions' protected-package guarantee.
Reuses playback/resource reports and audio controls in the mobile app, retaining Free reads and Pro writes. Snapshot restoration now distinguishes absent settings from empty values, while older snapshots retain their existing behavior.
Includes corrected codec/audio reporting, stale-result and readback fixes, regression coverage, and refreshed desktop galleries. Draft pending physical-device validation.