Repository navigation
fix(vscode): keep background agent avatar pulse smooth - #14711
Merged
Merged
Conversation
The actions-row layout pass hid the agent stack with display none to measure the other rows. Forced layout under display none cancels the avatar pulses, so each pass restarted them and they jumped out of phase. Take the stack out of flow with position absolute instead, which measures the same way without cancelling the animations.
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (2 files)
NotesThe Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
eshurakov
approved these changes
Oct 1, 2026
This was referenced Oct 2, 2026
This was referenced Oct 7, 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.
What Problem This Solves
The background agent identicons above the prompt input flickered while they pulsed. The same identicons stayed smooth in the transcript task cards and in the Agent Manager panel.
Why This Change Was Made
The dock places the agent stack on the actions row with a layout pass in
SessionDock.tsx. To measure the other rows, that pass hid the stack withdisplay: noneand read the positions of the remaining children.Reading positions forces a layout while the stack is hidden. Under
display: nonethe browser cancels the CSS avatar animations, so the pulse restarted on every pass. The sharedsynchandler then pinned the animations back to the document timeline one frame later, which showed up as two opacity jumps per pass.The pass runs on any change in the actions row, on a row resize, and each time the main agent's turn ends and the actions row returns. The transcript and Agent Manager surfaces have no such pass, so their identicons were unaffected.
The fix takes the stack out of the layout with
position: absoluteinstead ofdisplay: none. The other children measure the same way, but the browser does not cancel the animations, and the stack is returned to the flow before paint.User Impact
The background agent identicons pulse smoothly in the prompt input, with no flicker when the actions row changes, the sidebar resizes, or a turn ends.
Evidence
Verified in an isolated VS Code with two background agents running
sleep, counting animation cancels and restarts and any opacity jump above 0.08 between frames:The stack still lands on the correct row.
bun run compile(typecheck, lint, bundle) passes, andtests/unit/session-dock.test.tspasses 15/15.