fix(k1): simplify response-gated launch UX

This commit is contained in:
DCCONSTRUCTIONS
2026-07-18 18:17:16 +03:00
parent 7b7b5d6cad
commit d7a2c22faf
10 changed files with 306 additions and 161 deletions
+8 -8
View File
@@ -156,9 +156,10 @@ physical-acceptance transport reproducing MQTT 3.1.1 `clean_session=false`,
keepalive 60, exact
response subscriptions, QoS2 completion and the five response-gated batches.
It consumes operation keys before publish and poisons unknown outcomes without
retry. One background owner services that socket between separate connection,
workspace, project, START, STOP and steady-green UI actions; navigation cannot
emit a command. The first operator-present physical attempt on 2026-07-18 emitted only
retry. One background owner services that socket through response-gated
connection, workspace, project, START, STOP and steady-green stages. The normal
UI collapses only the pre-START controls into one explicit operator intent;
navigation cannot emit a command. The first operator-present physical attempt on 2026-07-18 emitted only
the first six bootstrap requests, then failed closed while correlating the third
response batch; START was not emitted. A second one-shot attempt correlated all
ten pre-START requests and the START acknowledgement, but incorrectly collapsed
@@ -172,11 +173,10 @@ immediate status read 12 and state-gated reads 1314 onto one continuously own
MQTT session. No captured operator delay is a protocol timer: the final reads
wait for live `SCANNING`, project binding and `init_ready`, while STOP/save waits
for live `READY` plus physical standby confirmation. Standalone START and STOP
are both rejected. The same socket is serviced during every operator/UI wait,
and the short START/STOP permits are created only at their respective button
confirmations rather than at connection time. This executor remains uninstalled and is not wired to the
facade/UI; physical command acceptance is still paused. The temporary laboratory
Keychain item was deleted.
are both rejected. The same socket is serviced throughout launch and STOP
confirmation, and no captured human delay is replayed as a protocol timer.
Plugin v0.5.0 wires this executor to the facade and plugin UI; physical command
acceptance remains an operator-run gate.
This locked bootstrap is repeatable in the current workspace, not yet a
standalone release install. The frontend consumes sibling `file:` packages from