fix(stream): passthrough watch commands#1547
Conversation
📊 Automated PR Analysis
SummaryFixes watch/dev-style commands (e.g. --watch, dev, serve, codegen) that were being buffered through RTK's filtered execution pipeline instead of streaming directly to the terminal. Adds centralized detection of long-running/streaming invocations in the runner module and routes them through passthrough execution, while also converting unsupported Go and Dotnet passthrough paths from buffered capture to proper streaming. Review Checklist
Linked issues: #1545 Analyzed automatically by wshm · This is an automated analysis, not a human review. |
|
Thanks for the very thorough fix — the diagnosis in #1545 and the centralized Looks great:
After a deeper pass (with help from a code-review pass on my side), here's what I'd want addressed before merge. 🔴 Blocking —
|
Resolve conflicts in: - src/core/stream.rs: take upstream #[allow(dead_code)] attribute - src/discover/lexer.rs: take upstream #[cfg(test)] for strip_quotes - src/discover/registry.rs: take upstream call signature with transparent_prefixes for shell prefix builtins - src/hooks/constants.rs: take upstream split constants (CONFIG_DIR/OPENCODE_SUBDIR/PLUGIN_SUBDIR/OPENCODE_PLUGIN_FILE)
…tch-passthrough-develop # Conflicts: # src/cmds/dotnet/dotnet_cmd.rs
Summary
Fixes watch/dev-style commands that previously looked like they were streaming but still buffered through RTK filtering paths until the child process exited.
This routes known long-running invocations through passthrough execution so stdout/stderr stay attached to the terminal, while still keeping normal filtered commands on the existing buffered/streaming pipeline. It also updates unsupported
goanddotnetpassthrough paths to actually stream instead of capturing via.output().Changes
gh pr checks --watchdetection when extra args are present.Verification
smll cargo fmt --allsmll cargo clippy --all-targetssmll cargo test --all(1691p 0f)Closes #1545