Describe the feature or problem you'd like to solve
When the agent runs a long-running shell command (e.g. dotnet test on a large test suite that takes 5+ minutes), the user has no visibility into what's happening. The command runs silently in the background and the session appears frozen until it completes. There's no way to inspect intermediate output, check progress, or know if something has gone wrong early.
Meanwhile, Copilot CLI already has a background tasks UI for tracking concurrent work. Long-running shell commands should integrate with this existing infrastructure.
Proposed solution
When a shell command exceeds a threshold (e.g. 10-30 seconds), automatically promote it to a background task entry visible in the existing background tasks UI. This would allow the user to:
- See the command listed as a running background task
- Inspect live/buffered output (stdout/stderr) via the background tasks panel
- Continue chatting with the agent while the command runs
- Get notified when it completes (with exit code and summary)
Example workflow
- User:
let's run tests now
- Agent runs
dotnet test in a shell
- After ~10s, the command appears in the background tasks UI as:
⏳ dotnet test (running — 00:42)
- User presses the key to inspect background tasks, selects it, sees live test output scrolling
- 5 minutes later, task completes:
✅ shell completed (dotnet test ...) elapsed time 5:12
Additional context
This is especially valuable for:
- Test suites (
dotnet test, npm test, pytest)
- Builds (
dotnet build, npm run build, cargo build)
- Any command the agent runs that takes more than a few seconds
The agent already uses sync/async shell modes internally — this is about exposing that to the user through the existing background tasks UI so they're not left staring at a blank screen.
Describe the feature or problem you'd like to solve
When the agent runs a long-running shell command (e.g.
dotnet teston a large test suite that takes 5+ minutes), the user has no visibility into what's happening. The command runs silently in the background and the session appears frozen until it completes. There's no way to inspect intermediate output, check progress, or know if something has gone wrong early.Meanwhile, Copilot CLI already has a background tasks UI for tracking concurrent work. Long-running shell commands should integrate with this existing infrastructure.
Proposed solution
When a shell command exceeds a threshold (e.g. 10-30 seconds), automatically promote it to a background task entry visible in the existing background tasks UI. This would allow the user to:
Example workflow
let's run tests nowdotnet testin a shell⏳ dotnet test (running — 00:42)✅ shell completed (dotnet test ...) elapsed time 5:12Additional context
This is especially valuable for:
dotnet test,npm test,pytest)dotnet build,npm run build,cargo build)The agent already uses sync/async shell modes internally — this is about exposing that to the user through the existing background tasks UI so they're not left staring at a blank screen.