# Task26 continuous lifecycle observer v2 - e788f5d5 rebind

Status: `READY_REBIND_PENDING_NETWORK`

This append-only v2 changes the observer's full-candidate binding from `30bcd6633875050aa4f56f49a8bb26cd616ffa2409fc04caef523a8a62d5d1cc` to test-isolated successor `e788f5d56aef04da3097007e2ab79614f2060607d4331162169733b1208d9377`. Core `a113a57564a11710dffd238688dd73f8037eabaed0b48532b4bc90b2996e69fc`, wheel `2fbd6c9ad9d4b5ee979e7671d44e32fd4769e8737e26d7459fe73c81a525c656`, and all three production modules remain byte-identical. v1 code, FAIL ledger, and timeout receipt are immutable predecessors.

The live state is still onboarding `collecting`, cursor `0`, committed customer prompt message `161`; no authenticated customer action exists. `hermes-gateway-dualcoachtest.service` is currently inactive/dead.

## Mandatory non-consuming Telegram transport gate

Run this exact command while the gateway remains inactive, immediately before launching the observer:

```bash
/home/cube/projects/richard/hermes-agent/.venv/bin/python /home/cube/projects/richard/traning\ coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-st_01a007da-v2-e788f5d5/telegram_transport_probe.py --profile /home/cube/.hermes/profiles/dualcoachtest --timeout 10
```

The gate invokes only the existing Bot API `getMe` method with bounded connect/read/write/pool and total timeouts. It never invokes `getUpdates`, starts polling, reads or changes an update cursor, replays an update, sends a message, or writes profile state. Continue only on exit `0` with JSON status exactly `READY_TELEGRAM_TRANSPORT`, successor exactly `e788f5d5...9377`, and bot identity internally matched to `dual_coach_pilot_test_bot`. Bad Gateway, timeout, transport error, absent credentials, or identity mismatch exits nonzero and fails closed. Do not launch the observer, start the service, or authorize customer action after a failed probe.

## Exact observer launch command

Only after the transport gate passes, launch exactly one observer using these fresh, initially absent outputs:

```bash
/home/cube/projects/richard/hermes-agent/.venv/bin/python /home/cube/projects/richard/traning\ coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-st_01a007da-v2-e788f5d5/observer_v2.py observe --profile /home/cube/.hermes/profiles/dualcoachtest --ready /home/cube/projects/richard/traning\ coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-st_01a007da-v2-e788f5d5/live-v2-ready.json --events /home/cube/projects/richard/traning\ coach/.omo/evidence/task26/task26-continuous-lifecycle-observer-st_01a007da-v2-e788f5d5/live-v2-events.jsonl --stage-timeout 1800 --total-timeout 21600
```

The observer subscribes before emitting readiness and performs post-event reconciliation from authenticated durable authority without replay. Starting the gateway remains a separate external operator action after observer readiness. A transport probe PASS alone does not authorize customer action.

## Single continuous customer instruction

Only after the gate passed, the observer is running, the gateway has a positive active/connected service event, and the observer emits `READY_CUSTOMER_ONBOARDING` for actor `8527916639`, route `8527916639/0`, message `161`, action `submit_answer:date_of_birth`: **Customer, reply once to message 161 with the requested date-of-birth answer, then continue responding only to each newly committed prompt emitted by this same observer.**

Stop on any probe failure, service transport degradation, `STOP_*`, observer `FAIL`, timeout, stale/duplicate action, route or identity mismatch, unknown outcome, or absent durable transition.
