James Mackay
|
d004e73d99
|
fix(tests): drop the speculative config-entries install guard — the scoped-stub teardowns already isolate per file; full suite green both variants (completes t30 G6)
|
2026-10-09 07:46:53 +01:00 |
|
James Mackay
|
e77bc12d81
|
test: cross-file stub-scoping repairs — hub ConfigFlow base carries the full plumbing, standalone rebuilds when its holder is gone, test_init scoped hygiene mirrors scoped_stubs (completes t30 G6)
|
2026-10-09 07:38:24 +01:00 |
|
James Mackay
|
80ddff313a
|
test(init): tests/test_init.py lands — domain async_setup units + YAML seed parsing/normalization, flow-init seeding records, hostless drop, duplicate guards (UI host + virtual unique_id) and single-visit interactive routing; scoped stub hygiene mirrors scoped_stubs (t30 G6/U1)
|
2026-10-09 07:34:57 +01:00 |
|
James Mackay
|
2e70587871
|
feat: standards polish — G7 sensor translation_key naming + entity strings, G10 protocol-push device identity on the registry card, G12 unrecorded poll-driven attributes (media player DAG internals + sensors), G14 async_redact_data with an explicit redaction list behind the marker scan (t30)
|
2026-10-09 07:22:23 +01:00 |
|
James Mackay
|
194a97ce34
|
feat(button,media_player): Pair ADB carries entity_category CONFIG (t30 G11) + BrowseMediaSource domain parameter at root and children (t30 G18, 2026-05-20 blog contract); stubs/tests pin both
|
2026-10-09 07:17:14 +01:00 |
|
James Mackay
|
383ec5ada5
|
feat(config_flow): commit the G2 + stub wiring lost in the amend cycle — device-MAC unique_id derivation in the flow, device-registry stubs across the flow suites
|
2026-10-09 07:11:11 +01:00 |
|
James Mackay
|
e1a0fc3039
|
feat(config_flow): the G2 unique_id fix lands — the androidtv entity_id is never a unique_id; MAC derived from the device registry mac connection (empty placeholders skipped), else no unique_id; rename-stability + absence pinned by test (t29 G2)
|
2026-10-09 07:11:03 +01:00 |
|
James Mackay
|
086c089cc1
|
fix: commit G3a wiring lost in the amend cycle — listener removal, update-only host path, reauth via the current API (stub surface includes async_update_reload_and_abort)
|
2026-10-09 07:03:33 +01:00 |
|
James Mackay
|
bcb8b962e7
|
fix: the deprecated listener+reload combo is gone — reauth uses async_update_reload_and_abort(_get_reauth_entry()), zeroconf host update is update-only, the __init__ options-reload listener is removed (grep-pinned); host-change tests assert update-without-reload (t29 G3a)
|
2026-10-09 07:02:21 +01:00 |
|
James Mackay
|
3e0208789a
|
feat: adb_command is a conforming action — always registered in async_setup (option gates USE), services.yaml with required command/entity, strings services+exceptions, ServiceValidationError on empty/unknown-target/ADB-down; participant registry stays (t29 G8)
|
2026-10-09 06:59:44 +01:00 |
|
James Mackay
|
0ecee66953
|
test(entity_stublib): ConfigFlow stub accepts the domain= __init_subclass__ kwarg and load_entity_modules drops config_flow (per-file loader ownership preserved) (completes P5-2 test scaffolding)
|
2026-10-09 06:00:20 +01:00 |
|
James Mackay
|
b37a14b920
|
fix(media_player): the adb_command participant registry key is computed once at registration and stored on the entity — add/remove always match (F4)
|
2026-10-08 11:21:09 +01:00 |
|
James Mackay
|
326f02cb59
|
feat(media_player): BrowseMedia app directory — root lists the options apps map (curated TiviMate/Wholphin/Netflix/YouTube fallback), selection launches via play_media(app) (P4-2c)
|
2026-10-08 11:12:37 +01:00 |
|
James Mackay
|
b451638c65
|
test: command-routing and play_media(channel) orchestration — digit sequence with cancel guard, fallback ordering protocol→ADB→legacy, remote send_command holds/repeats, volume readout, is_on ladder
|
2026-10-08 09:54:23 +01:00 |
|