Skip to content

Open notes in standalone windows#5642

Closed
ComputelessComputer wants to merge 1 commit into
mainfrom
fix/sidebar-note-window
Closed

Open notes in standalone windows#5642
ComputelessComputer wants to merge 1 commit into
mainfrom
fix/sidebar-note-window

Conversation

@ComputelessComputer

@ComputelessComputer ComputelessComputer commented Jun 21, 2026

Copy link
Copy Markdown
Collaborator

Adds a note-specific native window route and wires sidebar double-click to open the existing note view in that window. Includes regression coverage for the sidebar double-click path.


Note

Medium Risk
Introduces a new window lifecycle and route keyed by session id; behavior change for how users open notes from the sidebar, but reuses the existing note UI and STT/session store.

Overview
Users can open a note in its own native window instead of only in the main app tab strip. The windows plugin gains an AppWindow note variant (session id) that loads /app/note/{sessionId} in a resizable window (~720×820).

A new TanStack route renders the existing TabContentNote inside StandaloneWindowShell, passing standaloneWindow so OuterHeader uses a tighter title drag region (no main-window sidebar gutters).

Sidebar timeline session rows now call windowShow({ type: "note", value: sessionId }) on double-click and via "Open in New Window" in the context menu; "Open in New Tab" is removed for sessions (events unchanged). InteractiveButton delays single-click by 200ms when onDoubleClick is set so double-click does not also open the tab.

Regression tests cover delayed single-click, double-click, and the context-menu action.

Reviewed by Cursor Bugbot for commit f989422. Bugbot is set up for automated code reviews on this repo. Configure here.


This is part 1 of 2 in a stack made with GitButler:

@netlify

netlify Bot commented Jun 21, 2026

Copy link
Copy Markdown

Deploy Preview for old-char canceled.

Name Link
🔨 Latest commit f989422
🔍 Latest deploy log https://app.netlify.com/projects/old-char/deploys/6a380a38d043110008043ec6

Comment thread apps/desktop/src/sidebar/timeline/item.tsx
Comment thread apps/desktop/src/shared/ui/interactive-button.tsx
Adds a note-specific native window route and wires sidebar double-click to open the existing note view in that window. Includes regression coverage for the sidebar double-click path.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f989422. Configure here.

type: "sessions",
}) satisfies Extract<Tab, { type: "sessions" }>,
[sessionId],
);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Standalone note view tabs stuck

High Severity

The standalone route builds a session tab with fixed state.view: null and never updates it. TabContentNote derives the active editor view from that prop, while header tab changes only update the tabs store. Raw, transcript, and enhanced switching in a standalone note window therefore does not stick.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f989422. Configure here.

}
}, []);

useMountEffect(() => clearPendingClick);

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Click timeout lacks unmount cleanup

Medium Severity

useMountEffect(() => clearPendingClick) runs clearPendingClick on mount instead of registering it as effect cleanup. If the button unmounts during the 200ms single-click delay, the timer can still fire and invoke onClick afterward.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f989422. Configure here.

className={cn([
"pointer-events-none absolute inset-y-0 flex items-center",
reserveCollapsedLiveControls ? "right-[153px]" : "right-[70px]",
showSidebarTimelineHeaderGutter

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Standalone header keeps sidebar gutter

Medium Severity

OuterHeader still applies main-window sidebar gutter padding (pl-[156px]) from shell state when standaloneWindow is true. Toggling sidebar state (e.g. mod+\) in a standalone note window shifts the header layout even though no sidebar is shown.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f989422. Configure here.

@ComputelessComputer ComputelessComputer deleted the fix/sidebar-note-window branch June 22, 2026 02:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant