Conversation
… panel Subagent rows in the thread details panel pulse while the agent is actually running, and each subagent row gains a split action that opens the subagent thread as a read-only transcript in the right panel, beside the current conversation instead of replacing it.
Thread transfer impact
This comment will update automatically after the next completed run. |
This branch has not been deployed
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.
What Changed
Subagent rows in the thread details panel's Lineage section now pulse while the agent is actually running, using the repo's stepped
status-pulseanimation (settled agents keep a steady dot). Each subagent row also gains a split action: clicking the row still navigates to the thread as before, and a new panel button opens the subagent thread as a read-only transcript in the right panel, beside the current conversation instead of replacing it.The transcript surface is a new right-panel surface kind (
thread), rendered from the target thread's projection with every mutating interaction disabled. Scope: web client only. Mobile, desktop shell, wire contracts, and providers are untouched; the server already exposes everything the client needs.Why
Subagent lineage rows had exactly one behavior: replace the current thread. Watching what a subagent is doing meant losing your place in the parent conversation. The pulse closes the opposite gap: a settled dot and a running dot looked identical, so you couldn't tell at a glance whether the fleet was still working. This builds on the lineage panel from
agent/web-subagent-lineageand follows its existing split-row pattern (the same one the merge-back button uses).Verification
pnpm --filter @t3tools/web run typecheck: passed (no errors; only pre-existing effect-schema suggestions in unrelated files).vp test run src/rightPanelStore.test.ts src/components/chat/ThreadTranscriptPanel.test.tsx src/components/chat/ThreadRelationshipsControl.agents.test.tsxin apps/web: 69 passed, 0 failed. New tests cover: thread surface dedupe/title refresh/scoping/closing, loading persisted panels from versions without thread surfaces, the open-in-panel action wiring and its callback, and rows staying single-button when the callback is absent.animate-status-pulsewhile running, clicked "Open in side panel" and confirmed the read-only transcript beside the thread, then re-verified the before state by temporarily stashing the diff against the same session.UI Changes
Before — lineage rows navigate only, static dots:
After — split rows with an open-in-panel action:
After — subagent thread open as a read-only transcript beside the conversation:
Motion — running subagent's dot pulsing in the Lineage panel (MP4):
running-pulse video (MP4)
Checklist
Implementation used GLM xlarge via OpenCode in T3 Code.