Repository navigation
feat(studio): show each turn's work in the Activity tab - #94
Merged
Merged
Conversation
The Activity tab showed failures and folded every step that worked behind "Show N completed steps", so a turn with no errors told the reader nothing. Each turn now opens with its question and an outcome line, then lists the plan and the steps that ran a tool on the step rail More Info uses, with each card a step made as a chip that brings it into view. A retry that worked folds into its step as "Worked on try N"; a failure that stands reads "Not done" with its full sentence. `turnView` in src/lib/studio/activityView.ts builds the view, and useChat stamps `approvedAt` on the turn when a plan is approved, so the plan row sits among the steps.
Browser receive times can tie when a failed try and its retry arrive in one chunk, so the retry and plan placement rules misread them. `recordStep` and `recordApproval` in activity.ts number each turn's events as they arrive (`startOrder`, `settleOrder`, `approvedOrder`), and `turnView` folds a retry or places the plan by that order, with the clock rule kept for older saves. A saved plan with no steps list counts none, so reopening it no longer throws.
jm-rivera
marked this pull request as ready for review
October 31, 2026 23:42
This was referenced Nov 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Each turn in Studio's Activity tab now shows what the assistant did for the question, so a turn with no errors no longer reads as "Show 31 completed steps" with nothing in view.
Changes
.railand.stepfromCardInfoPanel.module.scss); status lines stay in the full log behind "Show all N lines, with times".iconOfshared withWidgetChips.tsx).turnViewinsrc/lib/studio/activityView.tsbuilds the view as a pure function with tests;ActivityLog.tsxrenders it andChatPanel.tsxpasses card titles, icons, plans and the waiting state.recordStepandrecordApprovalinsrc/lib/studio/activity.tsnumber each turn's events as they arrive and stampapprovedAt, andrestoreActivitykeeps both, so retries fold and the plan row sits among the steps by arrival order. Older saves fall back to the clock, and a save with no approval time shows the plan at the top of the turn.Notes for reviewers
causeOfdrops the ", so ..." advice from a recovered try by splitting the sentence. Aretry_ofand acausefield onactivity.stepfrom dfo-ai would make both exact.motion-kit/render.tsxselects steps withactivityStyles.step, since.toolno longer exists.Testing:
pnpm lint,pnpm lint:css,pnpm typecheck,pnpm test(2,275 pass) andpnpm buildpass. A headless run againstnext devwith a stub studio stream approved a plan and checked the rail and full log.Screenshots
Before is origin/dev and after is this branch, both run with
next devagainst a seeded local Postgres and a stub studio stream, at 1440 by 900.