Commit Graph

  • 6ab185ce50 chore(release): v2026.10.12.2 [skip ci] master v2026.10.12.2 gitea-actions 2026-10-12 13:28:59 +00:00
  • 400f0327af nMerge branch 'master' of https://git.notexpectedyet.com/notexpectedyet/ha-nvidia-shield James Mackay 2026-10-12 14:28:44 +01:00
  • 7ed982801a test(adb-off audit): name the carve-outs, drive the paths the audit names (t25) James Mackay 2026-10-12 13:46:55 +01:00
  • de1c34777d fix(adb): ADB-off is asked by every device path, not inferred from a missing poller (t23) James Mackay 2026-10-12 13:32:34 +01:00
  • 8f064b3247 fix(intents): an ADB-off entry never scans, and a truncated detail is never believed (t21) James Mackay 2026-10-12 13:14:34 +01:00
  • 6b866019ef fix(transport): no stale protocol error, no connect task outliving its entry, honest banners (t20) James Mackay 2026-10-12 13:08:54 +01:00
  • 66846b2f82 test(intents): the button's uninstalled-app press, with the device's own words (t17) James Mackay 2026-10-12 13:00:24 +01:00
  • e6c6bdb1e6 test(intents): the real-HA action proof, the README pins and the raised drift floor (t17, part 3) James Mackay 2026-10-12 12:59:08 +01:00
  • 259a6c29bd feat(intents): the Intents options screen, the seed, the strings and the tests (t17, part 2) James Mackay 2026-10-12 12:54:41 +01:00
  • a8041e1428 feat(intents): the registered-intent engine, the buttons and the send_intent action (t17, part 1) James Mackay 2026-10-12 12:43:10 +01:00
  • 2819ee5a49 fix(media_player,config_flow): close the batch review's O2 and O3 (t17) James Mackay 2026-10-12 12:36:15 +01:00
  • 91d9fb3883 feat(intents): discover an app's intents from its activity resolver table (t16) James Mackay 2026-10-12 12:26:18 +01:00
  • 14c168c25e feat(remote): the app/activity picker, and a protocol transport that really connects (t15) James Mackay 2026-10-12 12:15:58 +01:00
  • 6aa3b6bfdd feat(adb_command): selectable target, strict resolution, and a real response (t14) James Mackay 2026-10-12 11:23:47 +01:00
  • 8a4e72b80a docs(intents): plan the intent catalogue and registered actions James Mackay 2026-10-12 10:55:32 +01:00
  • 7b32de789a t66: app names on a device that exposes none James Mackay 2026-10-12 10:54:38 +01:00
  • f29f62ddae feat(image): opt-in screen capture as an image entity, binary-safe over ADB James Mackay 2026-10-12 10:28:32 +01:00
  • a1ce28996e feat(media-player): flatten now-playing into separate attributes and name the tier James Mackay 2026-10-12 10:13:27 +01:00
  • 46738063aa fix(options): edit apps one row per step in a multiline field, and report discovery James Mackay 2026-10-12 09:56:56 +01:00
  • eb62011ded fix(media-player): the browse root carries a real string id (t63) engineer 2026-10-12 09:42:07 +01:00
  • 4d7540e6f4 chore(release): v2026.10.12 [skip ci] v2026.10.12 gitea-actions 2026-10-12 08:25:36 +00:00
  • 5ae2baa618 docs(installed-apps): the -3 output shape is documented, not observed (t62 nit c) engineer 2026-10-12 08:38:13 +01:00
  • 181a51af95 chore(ci): run the real-HA config-flow tests and fail on silent skips engineer 2026-10-12 08:36:51 +01:00
  • 431b7cd8f4 feat(media-player): a switch Receiver is ensured on, and apps leave the browser (t61) engineer 2026-10-12 08:33:55 +01:00
  • c884c7e1ab docs(discovery): the not-observed mark lands in the in-scope module (t62 nit c) engineer 2026-10-12 08:25:41 +01:00
  • afc3326fc3 docs(discovery): precise wording on the watchdog, the empty state, recovery engineer 2026-10-12 08:23:29 +01:00
  • 1c414c2f70 docs(discovery): mark the command shapes documented, not observed (t62 nit c) engineer 2026-10-12 08:22:20 +01:00
  • 93d0afcdcf test(drift): flag unreachable statements and raise the call-argument floor (t62 F2) engineer 2026-10-12 08:22:14 +01:00
  • 0ef72a1fbb fix(connection): delete the unreachable duplicated label-drain body (t62 F2) engineer 2026-10-12 08:22:10 +01:00
  • c05e6fa929 fix(discovery): a sweep that could not run is not an answer (t62 F1) engineer 2026-10-12 08:19:10 +01:00
  • ef42682250 fix(media-player): ON means no power or playback fact reported (t58 UNIT 0) James Mackay 2026-10-12 08:04:06 +01:00
  • ff8dd1c454 fix(discovery): a cached negative is an answer, not a miss (t57) James Mackay 2026-10-12 07:42:38 +01:00
  • 364d4b7da3 test(discovery): pin that the discovered list is a superset James Mackay 2026-10-12 07:40:41 +01:00
  • 95d8d20571 docs(readme): the setup menu's rows and the sweep's socket behaviour James Mackay 2026-10-12 07:39:38 +01:00
  • 3a55519b74 fix(config-flow): the setup menu was unreachable under real HA (t57 UNIT 0a) James Mackay 2026-10-12 07:39:01 +01:00
  • 5eefd0c6d0 test(discovery): fixtures for the parsers, the bounded sweep and the surfaces James Mackay 2026-10-12 07:29:01 +01:00
  • a56ec38170 feat(config-flow,sensor): the discovered apps reach the UI and dashboards (t57) James Mackay 2026-10-12 07:28:55 +01:00
  • ee3f2845af feat(discovery): enumerate the apps installed on the Shield (t57) James Mackay 2026-10-12 07:28:50 +01:00
  • 9461d69469 fix(connection): a label dump that returned nothing is a FAILED fetch (t57 UNIT 0) James Mackay 2026-10-12 07:21:34 +01:00
  • ca3fdec218 test(config-flow): drive the menus, pin the tables, probe real HA James Mackay 2026-10-12 07:17:41 +01:00
  • b0adbd2dfd docs(readme): the configure menu, the apps table and the switch receiver James Mackay 2026-10-12 07:17:23 +01:00
  • cd8f528a27 feat(config-flow): menu of sub-screens on setup and options James Mackay 2026-10-12 07:17:21 +01:00
  • 74e0549196 docs(readme): the t55 state ladder and the label tier's retry rule James Mackay 2026-10-12 06:53:13 +01:00
  • 85e96f3c60 docs(sensor): name where the Current App name chain comes from (t55) James Mackay 2026-10-12 06:53:13 +01:00
  • 0c7e405108 fix(connection): a failed app-label fetch is retried, not cached as a miss (t55) James Mackay 2026-10-12 06:53:09 +01:00
  • ccde3cff71 fix(media_player): the state ladder is idle/playing/buffering/off; ON means no data (t55) James Mackay 2026-10-12 06:53:04 +01:00
  • 07682ff082 feat(media_session): map Android PlaybackState 6 to buffering (t55) James Mackay 2026-10-12 06:52:58 +01:00
  • 49bc23ae34 chore(release): v2026.10.11.2 [skip ci] v2026.10.11.2 gitea-actions 2026-10-11 07:11:34 +00:00
  • 0357f47284 fix(media_player): dedupe source_list case-insensitively (t53 F1) James Mackay 2026-10-11 07:26:07 +01:00
  • dc3cfbbe3e fix(media_player): normalize the app directory in one place (t51) James Mackay 2026-10-11 07:21:33 +01:00
  • 97615408c0 fix(media_player): keep blank app names out of the source list (t49 F1) James Mackay 2026-10-11 07:17:56 +01:00
  • 1c6c223f27 docs(readme): the app list as sources, the remote command script, current versioning (t47 D) James Mackay 2026-10-11 07:07:36 +01:00
  • c3e4c7855c feat(remote): optional command script for remote.send_command (t47 B) James Mackay 2026-10-11 07:07:06 +01:00
  • b2aab15ebf feat(media_player): source list + native select_source from the app list (t47 A) James Mackay 2026-10-11 07:05:57 +01:00
  • b3f897c36e fix(config_flow): clearing an entity field no longer fails validation (t47 C) James Mackay 2026-10-11 07:04:28 +01:00
  • 0cfa045190 docs(readme): the release write-back and the command scripts (t44 3, R2) James Mackay 2026-10-11 06:49:44 +01:00
  • b03cfbae13 fix(release): notes must not open with the bot commit; guard matches the subject (t44 3b/3c) James Mackay 2026-10-11 06:48:44 +01:00
  • 89c05f1dcd feat(media_player): per-command script overrides (t44) James Mackay 2026-10-11 06:47:20 +01:00
  • 2e1d162ef4 test(harness): make the stub scoping independent of file order (t44) James Mackay 2026-10-11 06:41:56 +01:00
  • fbc72dfd9e docs: correct two stale claims about a tier and a red proof (t44 0b/0c) James Mackay 2026-10-11 06:38:48 +01:00
  • 3175582419 fix(config): degrade an unreachable Shield to the pairing form (t44 F1) James Mackay 2026-10-11 06:37:18 +01:00
  • 7608518d97 feat(release): same-day versions + manifest write-back so HACS sees every release (t42) James Mackay 2026-10-11 06:32:05 +01:00
  • aea9f9f9d2 test(config): pin the Jellyfin name tiers and the address redaction (t41) James Mackay 2026-10-11 06:26:42 +01:00
  • 130dee4bc6 test(ci): sweep every module for dangling imports (t41) James Mackay 2026-10-11 06:25:45 +01:00
  • 151c49a0da docs(readme): replacement guide + a verified seed example (t41) James Mackay 2026-10-11 06:21:40 +01:00
  • fb481c3c14 feat(config): enable both native transports by default (t41) James Mackay 2026-10-11 06:20:41 +01:00
  • 81f70585cd feat(config)!: migrate entries to v3 — one address, no androidtv key (t41) James Mackay 2026-10-11 06:19:36 +01:00
  • 75ebeb40b0 refactor(config): one Shield IP field for both transports (t41) James Mackay 2026-10-11 06:18:22 +01:00
  • 86aa2827a2 refactor(config): drop the androidtv media_player entity path end-to-end (t41) James Mackay 2026-10-11 06:09:43 +01:00
  • 60d884b76a fix(availability): F3 — any usable transport keeps the entities up (t40) James Mackay 2026-10-11 06:02:46 +01:00
  • dd23d01a88 fix(sensor): F2 — the Current App sensor shows the resolved app name (t40) James Mackay 2026-10-11 06:02:30 +01:00
  • be3abae3e7 test(ci): F4 — entity-contract pass in the drift sweep + real-HA state-write proof (t40) James Mackay 2026-10-11 06:02:22 +01:00
  • acc7bc3d01 fix(media_player): F1 — extra_state_attributes must be a property (t40 blocker) James Mackay 2026-10-11 06:02:08 +01:00
  • c588a7c66b docs(readme): record the MAC-less discovery contract (t37 D3, t39) v2026.10.11 James Mackay 2026-10-10 21:29:46 +01:00
  • fd62d850b7 fix(drift): F1+F2 — the sweep refuses false greens, and CI provisions the real floor (t39) James Mackay 2026-10-10 21:29:36 +01:00
  • 824d6192a1 test(ci): D1/D2/D3 — repo-owned HA API-drift sweep with a CI job (t37) James Mackay 2026-10-10 21:20:28 +01:00
  • 60fb4f7557 fix(config_flow): D3 — await the discovery-dedup coroutine (t37) James Mackay 2026-10-10 21:20:13 +01:00
  • bd72ae3170 fix(diagnostics): D2 — redact through homeassistant.helpers.redact (t37) James Mackay 2026-10-10 21:20:04 +01:00
  • 37b2accfda fix(media_player): D1 — browse builds real BrowseMedia nodes, not BrowseMediaSource (t37) James Mackay 2026-10-10 21:19:53 +01:00
  • 5ede4fe722 test(config_flow): prove a reconfigure entry really rebuilds the protocol transport (t35 F1) James Mackay 2026-10-10 21:05:13 +01:00
  • e11dccf2c8 fix(config_flow): F1 — a discoverable later pairing path (Reconfigure) and truthful skip copy (t35 F1/F1b) James Mackay 2026-10-10 21:04:47 +01:00
  • 7a0152e6b5 fix(tests): F2 — the voluptuous mirror compares fields, not marker classes (t35) James Mackay 2026-10-10 21:04:34 +01:00
  • 186e5c1935 test(config_flow): the t33 UX suite — schema-level prefill, skip paths, copy contract, strings parity (t33) James Mackay 2026-10-10 20:50:38 +01:00
  • 08b97fde73 fix(strings): F-C — plain, self-consistent setup copy for the live-run feedback (t33) James Mackay 2026-10-10 20:50:28 +01:00
  • a6cc56feb4 fix(config_flow): F-B — neither pairing step is a dead end (t33) James Mackay 2026-10-10 20:50:22 +01:00
  • 73e886dafe fix(config_flow): F-A/F-A2/F-D — the discovered host and the 5555 port ride the schema KEY defaults (t33) James Mackay 2026-10-10 20:50:16 +01:00
  • bbd98ebc3f ci: survive PEP 668 on externally managed runners — retry the test-tooling install with --break-system-packages, pin the gate tool versions James Mackay 2026-10-10 08:34:34 +01:00
  • 60d426945b Merge branch 'master' of https://git.notexpectedyet.com/notexpectedyet/ha-nvidia-shield v2026.10.10 James Mackay 2026-10-10 08:31:15 +01:00
  • c20146b08b fix(init,config_flow): F4 — seed blocks and the import prefill honor the block's shape: ADB only when the block carries an adb host, protocol-only blocks keep adb_enabled off; TestSeedBlockShapeF4 pins all three paths (t32) James Mackay 2026-10-09 08:04:41 +01:00
  • 6087566336 fix(config_flow): F2 — MAC-less zeroconf discovery calls the audited _async_handle_discovery_without_unique_id helper and guards against a same-host duplicate prefill, so re-discovery can't stack entries; the import guard reads entries via the base _async_current_entries helper; TestMacLessDiscoveryF2 pins helper call + one-entry outcome (t32) James Mackay 2026-10-09 08:04:05 +01:00
  • 8f40b6435c fix(poller): F1 — the poller factory re-reads entry.options at call time (audit-sanctioned option), so the next built poller targets the NEW address after a zeroconf IP change; the stale live-read comment in config_flow points at the actual mechanism; TestIpChangeSelfHealF1 drives an IP change and pins the next poller host (t32) James Mackay 2026-10-09 08:03:28 +01:00
  • c1a82a2fa5 fix(diagnostics): hosts join the explicit TO_REDACT list per the audit's G14 citation (t30 G14) James Mackay 2026-10-09 07:47:12 +01:00
  • 782d749b4a docs(readme): sensor names follow the translation_key entity naming (t30 G7) James Mackay 2026-10-09 07:47:02 +01:00
  • 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) James Mackay 2026-10-09 07:46:53 +01:00
  • 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) James Mackay 2026-10-09 07:38:24 +01:00
  • 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) James Mackay 2026-10-09 07:28:11 +01:00
  • 297f8a21a7 docs(readme,strings): YAML seed-only semantics documented — interactive flow, duplicate guards, no implicit entry changes on block removal (t30 U1) James Mackay 2026-10-09 07:24:52 +01:00
  • a6eeae86e9 feat:init,config_flow: YAML seed-only setup — an optional nvidia_shield block starts interactive SOURCE_IMPORT flows (parsed in async_setup), the import step guards duplicates by host/MAC-virtual unique_id and never re-seeds UI-configured hosts, protocol fields are prefill hints only (t30 U1) James Mackay 2026-10-09 07:24:39 +01:00
  • 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) James Mackay 2026-10-09 07:22:23 +01:00
  • 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 James Mackay 2026-10-09 07:17:14 +01:00