fix: sandbox probe diagnostics and proc-exit fast-fail (#762)#794
fix: sandbox probe diagnostics and proc-exit fast-fail (#762)#794ZeusCraft10 wants to merge 1 commit intodifferent-ai:devfrom
Conversation
…ifferent-ai#762) The detached orchestrator startup discarded the CommandChild and event receiver from spawn(), losing all sidecar output and making timeout errors opaque ("Connection refused" with no context). - Capture (rx, child) from spawn and drain stdout/stderr into a ring buffer via an async task. - Detect early process exit via AtomicBool and fail fast with the last orchestrator output instead of waiting the full 90s timeout. - Add structured stage logs: spawn (port/bind info), first-health- attempt, proc-exit-early, and timeout with orchestratorOutput in the emitted progress event payload. - Add unit tests for snapshot_proc_output helper. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
@ZeusCraft10 is attempting to deploy a commit to the 0 Finance Team on Vercel. A member of the Team first needs to authorize it. |
|
The following comment was made by an LLM, it may be inaccurate: |
|
@ZeusCraft10 are you available for work rohan@polarcut.io |
Hello Rohan. It does depend on the kind of work we are talking about. I am sending you an email. |
OmarMcAdam
left a comment
There was a problem hiding this comment.
Looks good overall — diagnostics are clearer and early-exit handling is a solid improvement.
Notes (non-blocking):
- The ring-buffer trim uses byte indexing on a UTF-8 String (buf[keep_from..]) which can panic if keep_from lands mid‑codepoint. Consider trimming via char_indices or by storing VecDeque lines.
- Please confirm sidecar logs won’t include sensitive tokens before surfacing in progress payloads (even if local).
CI: Vercel deploy checks require authorization; otherwise looks clean.
OmarMcAdam
left a comment
There was a problem hiding this comment.
Looks good overall — diagnostics are clearer and early-exit handling is a solid improvement.
Notes (non-blocking):
- The ring-buffer trim uses byte indexing on a UTF-8 String (buf[keep_from..]) which can panic if keep_from lands mid-codepoint. Consider trimming via char_indices or by storing VecDeque lines.
- Please confirm sidecar logs won’t include sensitive tokens before surfacing orchestratorOutput in progress payloads (even if local).
CI: Vercel deploy checks require authorization; otherwise looks clean.
|
Plz also fix conflicts |
Summary
orchestratorOutputin progress event payloads.Why
CommandChildand event receiver fromspawn(), losing all sidecar output.Connection refused (os error 61)with no context about whether the process crashed, failed to bind, or hit a readiness issue.Issue
Scope
packages/desktop/src-tauri/src/commands/orchestrator.rs—orchestrator_start_detached()function and newsnapshot_proc_output()helper.Out of scope
orchestratorOutputfield from progress events.Testing
Ran
rustfmt --edition 2021 --checkon the modified file — passes clean.cargo checkcould not complete due to pre-existing Windows linker environment issue (OneDrive path with spaces breakslink.exe). Not caused by this PR — affects all Rust compilation on this machine.Result
rustfmtformatting checkcargo check/cargo testblocked by Windowslink.exepath resolution conflict (pre-existing)CI status
cargo checkblocked by Windows linker issue (not PR-related)Manual verification
Orchestrator output (last lines):section andstage: "timeout"in the progress event.Evidence
Risk
(rx, child)fromspawn()instead of discarding — theCommandChildis now held alive inside the async drain task, which is consistent with how all other sidecar spawns in the codebase work (seecommands/engine.rs,orchestrator/mod.rs).Rollback