farmioandClaude Opus 5 88e8f04349 Fix compressed Store lookups and corrupt file handling
The store manager caches by filename, so a compressed store asking for
"key.zst" was told the file does not exist whenever only the uncompressed
predecessor was on disk. That short-circuited the load before the fallback
in _load_data_from_disk could run, so enabling compress on an existing
store read as empty on any real start, where the manager is initialized.
Only report "does not exist" when neither filename is on disk.

Rename the file that actually failed to parse when handling corruption.
The compressed path was renamed unconditionally, which raised
FileNotFoundError out of the executor when the uncompressed fallback was
the corrupt one, and named the wrong file in the repair issue.

Preload compressed stores too. Callers only know the plain key, so look
for both spellings before intersecting with the files on disk.

Also invalidate both filenames when writing or removing, since both drop
the uncompressed predecessor, and use a sentinel to tell "no file" apart
from a file holding an empty dict.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 08:01:22 +02:00
2026-07-03 06:18:04 -04:00
2026-06-11 22:28:29 +02:00
2026-08-18 15:01:21 +02:00
2026-08-14 14:46:41 +02:00
2026-08-14 14:46:41 +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%