You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extracts independently-mergable fixes from the ongoing ACP work
(tailcallhq#2858) that can land on main immediately.
Three classes of fix:
1. stdin pre-read encapsulation (cli.rs, main.rs)
Add Cli::uses_stdin() method that centralizes the decision of which
subcommands own stdin. Subcommands opt in via uses_stdin() rather
than having the startup pipeline guess from a hardcoded exclusion
list. This makes it easy to add new stdin-consuming subcommands
(e.g. an ACP stdio server) without touching the startup logic.
2. Tool output leaking to stdout (context.rs, tool_executor.rs)
Shell tool execution streamed raw output to io::stdout(), corrupting
the ACP JSON-RPC stream. Add silent: bool field on ToolCallContext
(the correct home for per-invocation runtime flags). Default false;
ACP sets .silent(true) to route output to io::sink() instead.
3. Stderr vs stdout discipline (main.rs, sandbox.rs)
Panic hook and worktree status messages used println! which writes
to stdout. Changed to eprintln! (stderr) to avoid contaminating
structured transport channels.
Signed-off-by: ssfdust <ssfdust@gmail.com>
Co-authored-by: ForgeCode <noreply@forgecode.dev>
Co-authored-by: DeepSeek <deepseek-ai@deepseek.com>
0 commit comments