fix(tui): correct Dynamic Workflow row rendering and progress - #24
Conversation
The mission-control card rendered raw model output without validating it. When a workflow was called with object items, rows showed [object Object], the streaming argument scanner counted object keys and nested values as extra items, and streamed text was concatenated onto the tool-activity label with no separator. Member progress also crept toward 99% on every streamed token, so a long-running subagent pinned at 99% within seconds and stayed there. Progress now reflects the observed stage only; elapsed time and the latest line carry liveness.
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 50 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)
📝 WalkthroughWalkthroughDynamic Workflow rendering now keeps tool labels separate from model text, uses fixed stage-based progress, removes surplus streamed rows, and renders object items through readable fields without ChangesDynamic workflow rendering
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
commit: |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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
`@apps/pythinker-code/src/tui/components/messages/dynamic-workflow-mission-control.ts`:
- Line 734: Update the regular expression in the arguments parsing logic to
include the Unicode flag, preserving its existing pattern and behavior so it
satisfies require-unicode-regexp.
🪄 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: 7d525cda-00cc-4d1b-80de-f7ef3381f6cd
📒 Files selected for processing (5)
.changeset/dynamic-workflow-garbled-rows.md.changeset/dynamic-workflow-stage-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.ts
💤 Files with no reviewable changes (1)
- apps/pythinker-code/src/tui/constant/rendering.ts
|
All CodeRabbit findings addressed in aced39a (the single |
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.9.1 ### Patch Changes - [#24](#24) [`ae01098`](ae01098) - Fix the Dynamic Workflow card showing `[object Object]`, phantom extra agent rows, and tool labels fused into streamed text when a workflow is called with object items. - [#24](#24) [`ae01098`](ae01098) - Show Dynamic Workflow member progress from the observed stage only, so a running subagent no longer sits at 99% for the rest of its run. Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: M Elkholy <melkholy@techmatrix.com>
Related Issue
No issue filed — the problem is described below.
Problem
The Dynamic Workflow mission-control card renders raw model output without validating it, so a workflow called with object items (
{prompt, description}instead of strings) produced a garbled card:[object Object], because completeditemswere mapped throughString."items": [as an item, so object keys and nested values each became their own row (prompt,description, the values…). They were never removed once the real arguments arrived.Using ReadI've read the first 5 files….Separately, member progress crept toward a 99% ceiling on every streamed token. A subagent reached 99% within seconds and sat there for the rest of an 8-minute run, so the number carried no information.
What changed
prompt/description/title/task) instead of[object Object].The tool call itself still fails validation for object items — that is the schema working as intended. This change only stops the card from displaying garbage while it happens.
Tests: two creep-specific tests were rewritten for stage-only progress, and three tests added for the tool-label separator, object item labels, and phantom-row pruning.
test/tuipasses (2340 tests).Checklist
gen-changesetsskill, or this PR needs no changeset.gen-docsskill, or this PR needs no doc update.Summary by CodeRabbit
Bug Fixes
[object Object].Tests