6 months ago
102502fThe web dev launcher stopped reading the server child stdout as soon as it saw the readiness event, which left the pipe undrained during longer sessions. It also exited 0 from shared cleanup even when the server or Vite crashed, which hid real failures from wrappers and CI. This keeps a background stdout monitor attached after readiness, makes the launcher exit with the failing child code, and adds focused coverage for the readiness and exit-code helpers. It also records the review habit of revalidating unresolved PR comments against current HEAD before patching. Constraint: desktop:web still needs the spawned server's JSON readiness line to discover the live URL Rejected: switch server stdout to inherit | would drop the structured readiness handshake used by the launcher Confidence: high Scope-risk: narrow Reversibility: clean Directive: Keep draining the server stdout for the full child lifetime unless readiness moves to a different signal path Tested: bun test test/start_web_dev.test.ts; bun run typecheck; bun test Not-tested: manual bun run desktop:web smoke in a live browser session Co-authored-by: Codex <noreply@openai.com>
Parent715ad3a