docs(claude): add 2026-07-11 SESSION LOG — failsafe FC-comms-loss resolved, parked items

This commit is contained in:
Grant 2026-07-11 17:55:30 +02:00
parent 7ce9d282db
commit aae70776a0

View File

@ -427,6 +427,34 @@ entries; correct forward with a new dated entry if something needs revising.
connection + heartbeat and drive W1 RED on FC comms loss. W1 status line should carry
cause text (e.g. "Vehicle Disconnected", "Heartbeat Lost", "No Board Running"). Also
flagged: no FD-count check on ardupilot_manager in the pre-dive gate.
- 2026-07-11 — RESOLVED the 2026-07-09 flagged safety-critical fault: failsafe_monitor now
drives W1 RED on FC comms loss. Four commits: (1) 86b2728 — comms loss forces
unconditional RED (was scored as one marginal parameter, only reached AMBER) plus
fcu_ever_connected latch so the startup window before any heartbeat is not reported GREEN;
cause text "Heartbeat Lost"/"Vehicle Disconnected" added to FailsafeStatus.message per
DIR-7. (2) 1b0050d — FSM recovery fix: RETURN_TO_SAFE was a terminal trap (only
HOLD_AND_RECOVER could return to NORMAL); now both recover when conditions clear. (3)
dbe9515 — cockpit_bridge publishes new data lake variable rov-failsafe-cause (substring of
message before first "|"; empty when nominal). (4) 3409ae5 — W1 shows state word on
#w1-message (state-driven, no flicker) and cause text on #w1-footer, footer restyled red
11px, blank when nominal. All four verified live end-to-end: kill mavros -> RED +
"Heartbeat Lost", restart -> recover to GREEN. Also corrected: cockpit_bridge was
publishing failsafe_state (FSM, can be 3+) not assessment_state (0/1/2) to rov-failsafe —
fixed in dbe9515's sibling commit d854641; this was the real cause of the day's "widgets
show no data" (value 3 out of W1's range), compounded by a restart-storm wedging 9001.
- 2026-07-11 — PARKED for next sessions, in priority order: (a) DOC RESTRUCTURE (do first
next session) — consolidate all current-state into the handover as single source of truth,
strip state from CLAUDE.md leaving rules only, make SESSION LOG the handover's changelog;
DIR and domain docs stay separate. Reason: current-state is smeared across CLAUDE.md,
handover and SESSION LOG, causing loss of situational awareness. (b) Mode-dependent
failsafe recovery: AUV (health_role=gate) commits to recovery on condition-clear, ROV
(advisory) holds AMBER and hands to operator to decide — requires failsafe_monitor to read
the mode profile (currently mode-blind). (c) Auto-recovery: failsafe_monitor should attempt
to re-establish the FC link itself and only escalate/hold RED if it cannot — real-world has
no operator to restore comms. (d) Dedicated "string cause" field in FailsafeStatus.msg to
replace the message-substring shortcut in cockpit_bridge. (e) Operator control surface
(start/pause/stop buttons via rov_api) and one-command stack startup+healthcheck. (f) DIR
and handover updates for the above still owed this session.
---