Paulus SchoutsenandClaude Fable 5 53bc02a3aa sandbox: A-cluster bug fixes — router state ownership, teardown leaks, wire coercion
Fixes the correctness findings from plan-review-overhead §A (+E4), each
with a regression test:

- A2+A5: core now owns entry state on both router paths. The
  ConfigEntryRouter contract changes to raise ConfigEntryError on
  failure; core maps it to SETUP_ERROR (setup) or leaves the entry
  state untouched (refused unload — previously a refused unload was
  wrongly marked NOT_LOADED while the remote entry stayed loaded).
  Every SLF001 state poke moves out of router.py into
  config_entries.py, which owns ConfigEntry.
- A4: the router setup/unload branches now honor entry.setup_lock, so
  a direct async_setup during a reload can no longer run two
  entry_setup RPCs concurrently for one entry.
- A3: SandboxBridge.async_teardown sweeps _mirrored_services off
  hass.services — a respawned sandbox's re-registration was skipped by
  the has_service guard, leaving every call on a dead channel forever.
- A6: the sandbox translation overlay merges inside
  _async_get_component_strings before the title fallback, so a provider
  dict without "title" gets the catalog/integration.name fill-in;
  _TranslationCache._async_load returns to dev-identical.
- A7: proxy init + upsert share one _apply_description with symmetric
  clearing — a dropped device_class/device_info no longer sticks.
- A8: the frame-size cap is enforced on write too (both channel
  mirrors); an oversize payload fails its own call with
  FrameTooLargeError (oversize replies come back as error frames)
  instead of making the peer abort the whole channel.
- A1: state-attribute pushes run through json_safe — a datetime
  attribute raised ValueError inside the fire-and-forget push task and
  left main's proxy permanently stale. Main-side service_data/query
  args get the same coercion (_wire_safe) before dict_to_struct.
- E4: FlowRunner.async_stop now stops the private hass (executor +
  timer leak per in-process sandbox), and InProcessSandbox.stop runs
  the graceful sandbox/shutdown first, like production.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QCotUYum6AoisyrxshoiJJ
2026-07-07 15:50:43 -04:00
2026-07-03 06:18:04 -04:00
2026-06-11 22:28:29 +02:00

Home Assistant |Chat Status|
=================================================================================

Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.

Check out `home-assistant.io <https://home-assistant.io>`__ for `a
demo <https://demo.home-assistant.io>`__, `installation instructions <https://home-assistant.io/getting-started/>`__,
`tutorials <https://home-assistant.io/getting-started/automation/>`__ and `documentation <https://home-assistant.io/docs/>`__.

|screenshot-states|

Featured integrations
---------------------

|screenshot-integrations|

The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://developers.home-assistant.io/docs/architecture_index/>`__ and the `section on creating your own
components <https://developers.home-assistant.io/docs/creating_component_index/>`__.

If you run into issues while using Home Assistant or during development
of a component, check the `Home Assistant help section <https://home-assistant.io/help/>`__ of our website for further help and information.

|ohf-logo|

.. |Chat Status| image:: https://img.shields.io/discord/330944238910963714.svg
   :target: https://www.home-assistant.io/join-chat/
.. |screenshot-states| image:: https://raw.githubusercontent.com/home-assistant/core/dev/.github/assets/screenshot-states.png
   :target: https://demo.home-assistant.io
.. |screenshot-integrations| image:: https://raw.githubusercontent.com/home-assistant/core/dev/.github/assets/screenshot-integrations.png
   :target: https://home-assistant.io/integrations/
.. |ohf-logo| image:: https://www.openhomefoundation.org/badges/home-assistant.png
   :alt: Home Assistant - A project from the Open Home Foundation
   :target: https://www.openhomefoundation.org/
S
Description
🏡 Open source home automation that puts local control and privacy first.
Readme
2.2 GiB
Languages
Python 100%