diff --git a/supervisor/misc/filter.py b/supervisor/misc/filter.py index 3fd5ac8ac..9846c3059 100644 --- a/supervisor/misc/filter.py +++ b/supervisor/misc/filter.py @@ -64,6 +64,19 @@ def filter_data(coresys: CoreSys, event: Event, hint: Hint) -> Event | None: # Not full startup - missing information if coresys.core.state in (CoreState.INITIALIZE, CoreState.SETUP): + # During SETUP, we have basic system info available for better debugging + if coresys.core.state == CoreState.SETUP: + event.setdefault("contexts", {}).update( + { + "versions": { + "docker": coresys.docker.info.version, + "supervisor": coresys.supervisor.version, + }, + "host": { + "machine": coresys.machine, + }, + } + ) return event # List installed addons diff --git a/tests/misc/test_filter_data.py b/tests/misc/test_filter_data.py index f668419c8..9d3d3fa4b 100644 --- a/tests/misc/test_filter_data.py +++ b/tests/misc/test_filter_data.py @@ -115,7 +115,17 @@ async def test_not_started(coresys): assert filter_data(coresys, SAMPLE_EVENT, {}) == SAMPLE_EVENT await coresys.core.set_state(CoreState.SETUP) - assert filter_data(coresys, SAMPLE_EVENT, {}) == SAMPLE_EVENT + filtered = filter_data(coresys, SAMPLE_EVENT, {}) + # During SETUP, we should have basic system info available + assert "contexts" in filtered + assert "versions" in filtered["contexts"] + assert "docker" in filtered["contexts"]["versions"] + assert "supervisor" in filtered["contexts"]["versions"] + assert "host" in filtered["contexts"] + assert "machine" in filtered["contexts"]["host"] + assert filtered["contexts"]["versions"]["docker"] == coresys.docker.info.version + assert filtered["contexts"]["versions"]["supervisor"] == coresys.supervisor.version + assert filtered["contexts"]["host"]["machine"] == coresys.machine async def test_defaults(coresys):