MARK V — HITL GLASS STATE MACHINE (WIP) ================================================================================ Glass (HTML helper / CPQ) is NOT the mind. Mind is CLI/one-shot cycle. Critical: ACK != INGESTED != NODE_READY Phases (station glass): IDLE No pending carbon action requiring node mind CPQ_POSTED Node or system posted Catcher-present question/dialog AWAITING_CATCHER Carbon input expected ACK_RECORDED Carbon ACK received; last_ack only — MUST NOT clobber cpq_current BRIDGE_INGESTED Body bridge copied ACK into interrupt/processed path NODE_READY Mind cycle allowed to drain and respond once SEQUENTIAL_LOCK mm_enabled gate: only one MM path; unlock rules per station Invariants: - ACK handler writes last_ack; MUST NOT overwrite active cpq_current body - INGESTED is body/SPAA plane, not "node thought" - NODE_READY only on CLI mind cycle or explicit one-shot worker - No LLM on HITL poll/heartbeat/idle (token thrift / Create No Victims thrash) Failure: Bridge down -> ACK may exist without INGESTED (recover: ensure_runners) Race unlock without mm_enabled gate -> dual MM (forbidden) See Castle html_helper + spaa hitl_bridge living implementation. ================================================================================