S43 · Presence & Continuity

Declared state: half-built.

This is the repository plan and evidence, not a live health reading. A task marked done may still depend on credentials, devices, deployment or a newer acceptance test.

Dependencies

S07, S12, S26

Tasks and gates

43.F1 · Presence tracking and arrival detection. *gate:* `test_presence.py`,

Tier F · done · Verification: hermetic-test

Gate: `test_presence.py`,

  • unverified-import · undated · docs/SYSTEMS-DETAILS.md:4208

43.F2 · Departure and return are symmetric — a return gets a "while you were gone" only when

Tier F · done · Verification: hermetic-test

Gate: `test_presence_arrival.py` [7]

  • recorded-note · 2026-09-12 · docs/SYSTEMS-DETAILS.md:4210

43.F3 · Presence is a fused signal (voice + face + device activity), not any single source.

Tier F · done · Verification: hermetic-test

Gate: `test_perception_snapshot.py` [presence fusion]

  • recorded-note · 2026-09-12 · docs/SYSTEMS-DETAILS.md:4221

43.R1 · Context migration across devices — the thread, not just the session id (with S07, S12).

Tier R · open · Verification: hermetic-test

Gate: `test_session_identity.py` [migration]

    43.R2 · Ambient acknowledgement: a quiet signal that he is listening, without speaking.

    Tier R · open · Verification: hermetic-test

    Gate: `test_wakeword.py` extended.

      43.R3 · Long-absence handling — a week away is not resumed as if it were ten minutes.

      Tier R · done · Verification: hermetic-test

      Gate: `test_presence.py` [long absence] - a gap of a day or more is named to the model on the next turn, once; old 'tomorrow's are said to be past; no unasked recap.

      • hermetic-green · 2026-10-16 · bench/test_presence.py

      43.E1 · A day where the owner never has to re-establish context after moving or pausing.

      Tier E · open · Verification: manual

      Gate: live day recorded.

        43.R4 · **Live presence key in the brain's own memory, pushed over the existing WebSocket** — not a second daemon. Jev p=0.59, conf 0.38: there is one brain and it already knows who is connected.

        Tier R · open · Verification: planned-test

        Gate: new `test_presence_key.py` — presence survives a device reconnect and needs no store outside the brain.

          43.R5 · Room presence comes from the house, not from the laptop: the mmWave sensors give a real per-room occupancy signal in office and living, with the hallway as the transition room, replacing a model where presence means 'which app is in the foreground' (D-37, D-38).

          Tier R · open · Verification: planned-test

          Gate: new `test_room_presence.py` — occupancy is reported per room with the sensor that produced it named, a bedroom or bathroom sensor is refused at configuration time, and a missing sensor holds the last verified state rather than guessing (D-61).

            HUD screen contracts

            All subsystems · Source: docs/systems-plan.json.