feat(ui): animate docked pane transitions - #941
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Greptile SummaryThe PR adds a timeline-driven slide transition for the active files sidebar while keeping semantic pane planning immediate.
Confidence Score: 4/5The divider-resize interaction should be fixed before merging because dragging during a sidebar transition can jump the divider and commit the wrong width. Animated rendering and semantic resize state use different geometry when a drag starts mid-transition; the direct environment access is an additional non-blocking repository-convention violation. Files Needing Attention: src/ui/hooks/useExtensionPaneController.ts, src/ui/hooks/useSidebarSlideAnimation.ts, src/ui/lib/sidebarSlide.ts, src/ui/App.tsx Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart LR
Toggle[Sidebar visibility toggle] --> Semantic[Immediate semantic pane plan]
Semantic --> Timeline[180ms presentation timeline]
Timeline --> Presented[Interpolated pane and review bounds]
Presented --> Render[Render panes, dividers, and review host]
Resize[Resize begins] --> Snap[Snap presentation to semantic plan]
Snap --> Render
|
| return process.env.NODE_ENV === "test" ? 0 : SIDEBAR_SLIDE_DURATION_MS; | ||
| } |
There was a problem hiding this comment.
Environment access bypasses Varlock
sidebarSlideAnimationDuration reads process.env.NODE_ENV directly, bypassing the repository's type-safe, validated environment-variable abstraction and making this new environment-dependent behavior inconsistent with the established configuration path.
Context Used: guidelines.mdc Cursor rule (source)
Prompt To Fix With AI
This is a comment left during a code review.
Path: src/ui/lib/sidebarSlide.ts
Line: 8-9
Comment:
**Environment access bypasses Varlock**
`sidebarSlideAnimationDuration` reads `process.env.NODE_ENV` directly, bypassing the repository's type-safe, validated environment-variable abstraction and making this new environment-dependent behavior inconsistent with the established configuration path.
**Context Used:** guidelines.mdc Cursor rule ([source](https://github.com/modem-dev/modem/blob/main/.cursor/rules/guidelines.mdc))
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
There was a problem hiding this comment.
Thanks for flagging this. I’m not changing it because this repository does not use Varlock or expose a validated NODE_ENV abstraction; direct process.env reads already exist in runtime and test code. This read only makes OpenTUI test renders settle synchronously and does not configure user-facing runtime behavior.
Responded by Pi using GPT-5.6 Sol.
This comment was generated by Pi using GPT-5.6 Sol
There was a problem hiding this comment.
That’s fair, and thanks for the repository context. I verified there’s no Varlock usage and no validated NODE_ENV abstraction here, so the direct read is consistent with the existing codebase. Since it only makes test-renderer transitions synchronous and does not affect user-facing runtime configuration, I’m withdrawing this finding.
Summary
Verification
bun run typecheckbun run test— 1,735 passed, 9 skippedbun run test:integration— 139 passed, 1 skippedbun run test:tty-smoke— 9 passedbun run install:binVisual evidence
The installed build was manually reviewed in a real terminal. No video is attached.
Platforms
Notes
Initial mount, terminal resize, direct pane resizing, and broader multi-pane registration changes remain unanimated. A single pane visibility transition may occur on any edge.
This PR description was generated by Pi using GPT-5.6 Sol