mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-04 08:01:54 +00:00
4658224592
* fix(debugger): parse bun 1.4's UUID inspector token Bun 1.4 changed the inspector URL's token to a hyphenated UUID. The stderr scraper matched `[a-z0-9]+`, so it stopped at the first hyphen and connected to a truncated path, which the inspector answers with 404. Every TypeScript debug session has failed to attach since the 1.4.0 bump, taking the windmill-extra integration tests with it. Match the whole path, and only once its line is newline-terminated: a stderr chunk can end mid-URL and would otherwise be read as a complete, truncated URL. A close before the handshake completes is now reported as the connection failure it is, rather than as a finished script, and the debuggee is reaped - --inspect-wait blocks until a debugger attaches, so a failed attach leaked a bun process per session. On the test client, queue events that arrive before their waiter registers: the server sends 'initialized' immediately behind the 'initialize' response, which the client could drop and then time out waiting for. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XMizaQRcnWRd79t5wWhjBN * fix(debugger): keep the first terminated event's result on launch failure A socket that drops after the handshake opens but mid-command-sequence reports the termination from onclose, carrying the script result, and then fails the launch. Sending a second terminated from the failure path overwrote that result with an error-only event. Guard the send the way every other emit site in the file does, leaving the reaping unconditional. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XMizaQRcnWRd79t5wWhjBN * fix(debugger): report an inspector drop during setup as the failure it is The setup commands run over an open socket and none of them reject when it drops - sendInspectorCommand only has its own timer - so a drop between the upgrade and Inspector.initialized was reported as a clean termination, and the error surfaced up to 10s later or, once the duplicate was guarded, not at all. Draw the line at execution actually starting rather than at the socket opening, so those failures terminate with the connection error, immediately and once. Pair the "Failed to start Bun" output with the terminated event it explains, so a run that already reported its result cannot also be told it failed to launch. Prove the inspector URL complete with whitespace rather than an end-of-line: trailing text on the banner line would otherwise stall the parse for 10s. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XMizaQRcnWRd79t5wWhjBN * fix(debugger): mark execution started only once the start command is answered Inspector.initialized is what starts the script, so setting the flag before awaiting its reply left a drop during that round trip looking like a clean termination - the same silent failure, narrowed to one command. Its reply precedes any close on the socket, so the continuation still runs before onclose and a real run is not misread as a failure. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XMizaQRcnWRd79t5wWhjBN --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>