Skip to content

ops(perception): diagnose persistent Home Assistant connectivity loss and surface it as degraded perception #191

Description

@adrianwedd

The Pi is logging persistent No route to host when fetching Home Assistant state.

Impact

HA is a significant evidence source: presence, call / hot-mic state, and other household awareness. While it is unreachable:

  • SPARK cannot know Adrian is on a call. The arch(personality): separate language style from behavioural policy #174 policy layer correctly fails open for the call-specific rule, which is the right safety default — but operationally it means the suppressor silently stops suppressing.
  • Awareness snapshots quietly lose a whole modality with no signal that they have.

Today the only evidence of this is timeout spew in the logs.

Wanted

  1. Diagnose the connectivity loss. Is the HA host's IP stale in config, is it a route/VLAN problem, is the host down, is it mDNS-vs-IP (the same class of bug as the announce relay, where M5.local had to become 192.168.0.100)? Pin the answer, then pin the address.
  2. Surface it as degraded perception, not log noise. The HA fetch path should record_failure() / record_success() into state/health/ with a STALE_AFTER_S matched to its poll interval, so read_health() reports degraded/failing and px-mind's awareness carries an explicit "HA perception unavailable" rather than an absent key.
  3. Make the fail-open visible. When a policy rule fails open because its evidence source is down, that should be recorded, so "no suppression fired" can be distinguished from "suppression could not be evaluated".
  4. Back off the retry cadence so an unreachable host does not produce a timeout per poll in the logs.

Related: #174 (policy layer), #169 (invariants audit).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions