Repository navigation
refactor(desktop): draw the issue peek in the window's own side panel - #3728
Merged
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
luke-agent Bot
added a commit
that referenced
this pull request
Oct 18, 2026
Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
luke-agent
Bot
force-pushed
the
luke/refactor/issue-peek-side-panel
branch
from
October 18, 2026 22:05
433cc39 to
5ca889a
Compare
The Issues peek was a pane of its own that looked and moved unlike the side panel beside a task, an agent's page, and the Inbox. It now stands in the same frame: PanelFrame, taken out of SidePanel, draws the pane, its top row of tabs, the chosen tab's actions and the full-screen button, its resize edge, and its exits for both. The peek's one tab is the issue, whose × shuts the panel; its ⋯ is the issue's menu, Open as page among it. Whether it stands, how wide, and whether it fills the page are the window's side panel's own, as beside the Inbox, so the title bar's toggle and ⌥⌘B show and hide it once an issue has been peeked (issuesView.peeked). While the Issues pages stand the panel is no task's, its one tab drawn by the list (drawsOwn), so a plan behind them with no tab hides nothing. Escape steps out of full screen, then puts it away, and Open as page brings a full-screen peek back first. Co-authored-by: luke-agent[bot] <339870089+luke-agent[bot]@users.noreply.github.com>
luke-agent
Bot
force-pushed
the
luke/refactor/issue-peek-side-panel
branch
from
October 18, 2026 22:20
5ca889a to
eec65a1
Compare
This branch was successfully 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.
The developer's ask, following #3664: "it looks and behaves different from the side panel on a task/inbox. Can you make sure we are sharing components."
What was different
#3664 drew the peek as a pane of its own, modelled on the automation's Runs pane, with its own:
usePaneSlide)Nothing about it matched the side panel beside a task, an agent's page, or the Inbox: no tab, no full screen, no title-bar toggle, no ⌥⌘B, a different width, and different motion.
What it shares now
PanelFrame, extracted fromSidePanel(side-panel.tsx). It draws:.side-panelpaneplayExit)SidePanelnow renders through it with no change in behaviour, and the peek renders through the same frame.The tab row. The peek's one tab is the issue, drawn with the strip's own
Tab(status glyph, identifier, title). Its × shuts the panel, as closing a panel's last tab does. The chosen tab's ⋯ is the issue's ownIssueMenu, which now offers Open as page in place of the old button.The window's side panel state. Whether the peek stands, its width (
SIDE_PANEL_WIDTHand the kept width), and full screen all come fromtasks.sidePanel, as the Inbox's panel does.issuesView.peekedholds it, in the wayinboxView.chosenholds the Inbox's item.Motion. The arrival is the shared pane glide (
.side-panel), and the exit is the side panel's own.Content. The issue still scrolls in
DocumentScroll, the column every document uses.Behaviour kept from #3664
Tests
issues-page.test.ts's harness now uses the realuseSidePanel. The peek tests assert on.side-panel, the tab's ×, and Open as page in ⋯. The narrow-window width moves from 600 to 500, since the panel's minimum is 280.desktop-shell.test.ts): the panel toggle appears over the Issues list once an issue has been peeked, and not before.#testing/pane-motion's recording engine now answersgetAnimations, which the shared exit calls.The desktop renderer suite (2065 tests), typecheck, oxlint, biome, knip and repository-checks pass.
Screenshots
The peek in the side panel's frame: the well ground, the issue's tab with ×, ⋯ and Expand panel.
Expand panel fills the Issues page, as it fills a task's window.
The harness renders
IssuesPagealone, so the title bar's toggle is out of frame; it is covered by the shell test.Made with Luke