S42 · Media & Entertainment Control
Declared state: built, not well structured.
This is the repository plan and evidence, not a live health reading. A task marked done may still depend on credentials, devices, deployment or a newer acceptance test.
Dependencies
S15
Tasks and gates
42.F1 · **Stop routes to whichever path is playing** — desktop or music room; the two now ask
Tier F · done · Verification: hermetic-test
Gate: `test_localplay_routing.py`
- unverified-import · undated ·
docs/SYSTEMS-DETAILS.md:4138
42.F2 · One playback-state owner, so "what's playing" has a single answer.
Tier F · done · Verification: hermetic-test
Gate: `test_localplay_routing.py` [7]
- recorded-note · 2026-09-12 ·
docs/SYSTEMS-DETAILS.md:4140
42.F3 · Volume and mute are the same concepts across paths.
Tier F · done · Verification: hermetic-test
Gate: `test_audio_output_switch.py` [7]
- recorded-note · 2026-09-12 ·
docs/SYSTEMS-DETAILS.md:4151
42.R1 · Queue and history — "play that again", "skip", "what was the last one".
Tier R · done · Verification: hermetic-test
Gate: `test_media_queue.py` [history] + [skip] - every browser play is recorded (capped, on disk); play_music last=true names it without playing, again=true reopens it; media_pause action next/previous sends the track keys and an unknown action is refused, not toggled.
- hermetic-green · 2026-10-17 ·
bench/test_media_queue.py
42.R2 · Context-aware playback: pause on a call, duck on speech, resume after.
Tier R · open · Verification: planned-test
Gate: new `test_media_queue.py` - planned gate. `test_media_queue.py` [ducking]
42.R3 · Taste memory feeding S15's media domain. *gate:* `test_recommend.py` [media]
Tier R · open · Verification: hermetic-test
Gate: `test_recommend.py` [media]
42.E1 · A week of daily use with zero "nothing is playing" when something is.
Tier E · open · Verification: manual
Gate: media log review.
HUD screen contracts
- Media & Entertainment Control · /systems/S42
All subsystems · Source: docs/systems-plan.json.