Problem
IExternalProcessRunner/ProcessExternalProcessRunner only spawn the WINC flash tool and stream output; ExternalProcessRequest.StandardInputResponseFactory is a plain Func<string,string?> with no way to express "on this stdout marker, run a device-side side-effect (LAN:FWUpdate+LAN:APPLY) to win the bridge-init race, wait N seconds, then reply", nor to retry on transient failure markers.
Core already ships WifiBridgeActivator (src/Daqifi.Core/Firmware/WifiBridgeActivator.cs) that performs exactly this serial bridge activation (DTR settle, FWUpdate/APPLY timing) — but FirmwareUpdateService.BuildWifiProcessRequest (:706-777) never invokes it. So daqifi-desktop reimplements all of it in WifiPromptDelayProcessRunner (208 LOC) as a decorator.
Proposed
- Add a prompt-aware hook to
IExternalProcessRunner (stdout marker -> async action + delay + reply, plus transient-failure retry).
- Invoke
WifiBridgeActivator from FirmwareUpdateService at the power-cycle prompt.
Evidence
- Desktop decorator:
Daqifi.Desktop/Device/Firmware/WifiPromptDelayProcessRunner.cs:13-19,99-149; wiring FirmwareUpdateCoordinator.cs:390-427,449-452; race rationale SerialStreamingDevice.cs:269-278
- Core unused helper:
WifiBridgeActivator.cs:1-82; not called by FirmwareUpdateService.cs:706-777
Related
Identified via a cross-repo audit to make daqifi-desktop a thin wrapper over Core.
Problem
IExternalProcessRunner/ProcessExternalProcessRunneronly spawn the WINC flash tool and stream output;ExternalProcessRequest.StandardInputResponseFactoryis a plainFunc<string,string?>with no way to express "on this stdout marker, run a device-side side-effect (LAN:FWUpdate+LAN:APPLY) to win the bridge-init race, wait N seconds, then reply", nor to retry on transient failure markers.Core already ships
WifiBridgeActivator(src/Daqifi.Core/Firmware/WifiBridgeActivator.cs) that performs exactly this serial bridge activation (DTR settle, FWUpdate/APPLY timing) — butFirmwareUpdateService.BuildWifiProcessRequest(:706-777) never invokes it. So daqifi-desktop reimplements all of it inWifiPromptDelayProcessRunner(208 LOC) as a decorator.Proposed
IExternalProcessRunner(stdout marker -> async action + delay + reply, plus transient-failure retry).WifiBridgeActivatorfromFirmwareUpdateServiceat the power-cycle prompt.Evidence
Daqifi.Desktop/Device/Firmware/WifiPromptDelayProcessRunner.cs:13-19,99-149; wiringFirmwareUpdateCoordinator.cs:390-427,449-452; race rationaleSerialStreamingDevice.cs:269-278WifiBridgeActivator.cs:1-82; not called byFirmwareUpdateService.cs:706-777Related
Identified via a cross-repo audit to make daqifi-desktop a thin wrapper over Core.