13b75e73ff
The first fix handled the EAGAIN McpError path. But the persistent MCP session (long-running gateway/desktop worker) has a second failure mode: list_windows or get_window_state 'succeed' over MCP yet return a degenerate/empty payload (no windows, or no screenshot + blank tree) WITHOUT raising — typically when the bridge reconnected mid-call and dropped the heavy response. That surfaced to the model as a silent 0x0 capture with no error and no fallback firing (0.00s empty return). Fix: detect empty results in capture() and re-fetch over the CLI transport before giving up: - empty list_windows -> CLI re-fetch the window list - empty get_window_state (som/ax) -> CLI re-fetch the AX tree + screenshot - empty screenshot (vision) -> CLI re-fetch get_window_state for the PNG Adds 2 regression tests. Full suite: 83 passed.