feat(tui): show Dynamic Workflow progress rings - #54
Conversation
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 8 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe Dynamic Workflow TUI replaces work and idle indicators with lifecycle glyphs, shared progress animation, responsive status columns, and compact rows. Tool-call and model-delta handling avoids restarting active members. ChangesDynamic Workflow progress
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant ToolCallAndModelDeltaEvents
participant DynamicWorkflowMissionControl
participant MemberRows
participant SubagentResultParser
ToolCallAndModelDeltaEvents->>DynamicWorkflowMissionControl: pending or queued activity
DynamicWorkflowMissionControl->>MemberRows: start eligible member
SubagentResultParser->>DynamicWorkflowMissionControl: schema_error outcome
DynamicWorkflowMissionControl->>MemberRows: failed status
Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
commit: |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
apps/pythinker-code/test/tui/components/messages/dynamic-workflow-mission-control.test.ts (1)
341-341: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAdd the Unicode regex flag.
Line 341 has a regular expression without the
uflag. Adduto clear the reported Oxlint warning.Proposed fix
- expect(memberLine(output, 1)).toMatch(/○\s+PEND/); + expect(memberLine(output, 1)).toMatch(/○\s+PEND/u);🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@apps/pythinker-code/test/tui/components/messages/dynamic-workflow-mission-control.test.ts` at line 341, Add the Unicode <code>u</code> flag to the regular expression in the assertion using memberLine so it satisfies Oxlint while preserving the existing pattern and expectation.</code>Source: Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/reference/tools.md`:
- Line 106: Update the TUI documentation description to state that running rows
use a periwinkle arc instead of a cyan arc, matching the renderer’s primary
token and component test.
---
Nitpick comments:
In
`@apps/pythinker-code/test/tui/components/messages/dynamic-workflow-mission-control.test.ts`:
- Line 341: Add the Unicode <code>u</code> flag to the regular expression in the
assertion using memberLine so it satisfies Oxlint while preserving the existing
pattern and expectation.</code>
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: f1f6fc55-ce53-4af4-ae75-afc6ee254938
📒 Files selected for processing (6)
.changeset/workflow-progress.mdapps/pythinker-code/src/tui/components/messages/dynamic-workflow-mission-control.tsapps/pythinker-code/src/tui/constant/rendering.tsapps/pythinker-code/test/tui/components/messages/dynamic-workflow-mission-control.test.tsapps/pythinker-code/test/tui/pythinker-tui-message-flow.test.tsdocs/reference/tools.md
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## @pythoughts/pythinker-code@0.15.0 ### Minor Changes - [#54](#54) [`1f45a5f`](1f45a5f) - Show indeterminate lifecycle progress for Dynamic Workflow rows in the TUI, and report schema-error outcomes as failed. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Related Issue
No linked issue.
Problem
Dynamic Workflow rows showed tool-call counts and idle age under
WORK IDLE. These labels looked like completion progress and worker state, but they represented only observed events. Long-running work could therefore look stalled.What changed
WORK IDLEwith an indeterminate circular progress glyph and a separate lifecycleSTATEcolumn.Verification
pnpm test: 651 test files passed, 11 skipped; 9,951 tests passed, 71 skipped, 2 todo.pnpm --filter @pythoughts/pythinker-code run typecheck: passed.pnpm exec tsgo -p apps/pythinker-code/tsconfig.json --noEmit: passed.2/2 complete, with running progress frames and fixedDONErows.Checklist
gen-changesetsskill, or this PR needs no changeset.gen-docsskill, or this PR needs no doc update.Summary by CodeRabbit