You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Turns the reconnect design (docs/DESIGN-38-RECONNECT-WIRING.md, decisions locked) into a buildable sequence. Lights up the DARK controller_proxy module so a dropped wireless pad re-attaches to its running instance.
Why this is the right approach (settled this session)
Turns the reconnect design (
docs/DESIGN-38-RECONNECT-WIRING.md, decisions locked) into a buildable sequence. Lights up the DARKcontroller_proxymodule so a dropped wireless pad re-attaches to its running instance.Why this is the right approach (settled this session)
Build sequence (each PR gated; raw-binding never regresses)
PR-a —
slot_manager.sh(behavior-neutral, flag off)phys_uniq/vendor/product/event_node,disconnected,disconnected_at)slot_by_uniq,slot_by_event_node,free_slot,most_recent_abandoned_within,slot_is_active/disconnectedslot_claim→SPAWN|RESUME|ADOPT|REJECT(full policy, but only SPAWN reachable while flag off)slot_release(CONTROLLER_REMOVE → mark abandoned+ts),slot_free(SLOT_DIED)_find_free_slot,update_slot_state,slot_is_active,_find_slot_by_event_node)PR-b — proxy launch wiring (behind
MCSS_PROXY_ENABLE, default off)proxy_start_slot→ bind the virt node into bwrap instead of the raw jsslot_reservePR-c — reconnect policy live
CONTROLLER_ADD→slot_claim→ execute outcomeproxy_repoint_slot; ADOPT =proxy_restart(device-id changes); grace 180sPR-d — watchdog supervision + on-Deck verify → flip default
watchdog.sh(restart on death of a present-controller slot)persist=reopenhonor a moved symlink (seamless) or need restart (sub-second blip)? (design §9)grabvs Steam guide button/overlayMCSS_PROXY_ENABLEdefault ONTracking
Design:
docs/DESIGN-38-RECONNECT-WIRING.md· Blocks/absorbs: #112 · Milestone headline: #38