Skip to content

Replace parallel logs with live-updating table#8

Merged
viamus merged 3 commits intomainfrom
feature/parallel-log-improvements
Mar 1, 2026
Merged

Replace parallel logs with live-updating table#8
viamus merged 3 commits intomainfrom
feature/parallel-log-improvements

Conversation

@viamus
Copy link
Owner

@viamus viamus commented Mar 1, 2026

Summary

  • Replaced chaotic interleaved console output during parallel execution with a clean live-updating table using Spectre.Console Live
  • New ParallelLiveTable class manages per-item state with thread-safe updates
  • Both ParallelForeachStep and ParallelStep now use the live table
  • Elapsed timers refresh every second for running items

Before

Chaotic interleaved thinking/tool_use lines from multiple concurrent items — impossible to follow:

image

After

Clean in-place table with real-time status per item:

  Status     │ Item                                 │ Activity
 ────────────┼──────────────────────────────────────┼──────────────────────────
  ✔  1m 10s  │ Name1             │ 62,169 tokens  $0.0751
  ✘  1m 12s  │ Name2                           │ 61,692 tokens  $0.0737
  ○    45s   │Name3                       │ Bash: dotnet script
  ○    38s   │ Name14                               │ Reading file...
  ◌          │ Name1     123                   │ waiting
  ◌          │ Name1          1234                    │ waiting

Status icons: waiting · running · success · failed

Files Changed

File Change
UI/ParallelLiveTable.cs New — thread-safe live table with per-item state, elapsed timers, metrics
UI/PipelineRenderer.cs Replaced parallel render methods with RunParallelWithLiveTable() + RenderParallelSummary()
Steps/ParallelForeachStep.cs Refactored to use live table callbacks
Steps/ParallelStep.cs Refactored to use live table callbacks

Test plan

  • All 111 tests pass (dotnet test)
  • Visual test with a real parallel_foreach pipeline
  • Verify sequential foreach and normal steps are unaffected
  • Verify fail_fast cancellation still works correctly

🤖 Generated with Claude Code

viamus and others added 3 commits February 28, 2026 21:07
Parallel execution (parallel_foreach and parallel steps) now renders a
clean in-place table via Spectre.Console Live instead of interleaved
thinking/tool_use lines. Each item shows status icon, elapsed timer,
label, and current activity — updating in real-time every second.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Spectre.Console does not allow concurrent interactive displays. Since
parallel steps now use Live table rendering, they must be excluded from
the Status spinner wrapper — same as ForeachStep and ApprovalStep.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Use Rounded border with hidden headers for cleaner table look
- Fix raw markup tags showing in header by separating stepType/detail
- Fix CS1525 error: use `,6` alignment instead of invalid `,>6`
- Use HideHeaders() instead of ShowHeaders(false)
- Add NoWrap to columns and right-aligned duration formatting
- Include elapsed time in completion metrics

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@viamus viamus merged commit 0e5dfa7 into main Mar 1, 2026
1 check passed
@viamus viamus deleted the feature/parallel-log-improvements branch March 1, 2026 00:58
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