Skip to content

Add inline progress for long-running queued tasks - #35

Closed
steve-the-edwards wants to merge 3 commits into
block:mainfrom
steve-the-edwards:sedwards/CLF-440/inline-task-progress
Closed

Add inline progress for long-running queued tasks#35
steve-the-edwards wants to merge 3 commits into
block:mainfrom
steve-the-edwards:sedwards/CLF-440/inline-task-progress

Conversation

@steve-the-edwards

@steve-the-edwards steve-the-edwards commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Long-running Gradle and benchmark commands currently hold a Model Context Protocol [MCP] tool turn until completion. Developers only see “Run Queued Task,” cannot distinguish quiet progress from a hang, and steering cancels the command.

What changed

  • Return short command results normally, but yield a queued/running handle after at most 30 seconds.
  • Add bounded task_status updates with queue position, process liveness, incremental inline output, and 30-second heartbeats.
  • Keep commands alive when run_task or task_status requests are interrupted; add explicit cancel_task termination.
  • Persist terminal results after releasing active queue rows.
  • Drain stdout and stderr concurrently to prevent a full pipe from deadlocking the subprocess.

Review focus

Please focus on background task ownership, cancellation races, and persisted result/output-offset lifecycle. A regression test writes 2 MB to stderr before stdout to prove both pipes are drained concurrently.

@steve-the-edwards
steve-the-edwards marked this pull request as ready for review August 28, 2026 20:06
@steve-the-edwards
steve-the-edwards deleted the sedwards/CLF-440/inline-task-progress branch August 28, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant