From 0433d4d064e38430980797a1be179397aec0febd Mon Sep 17 00:00:00 2001 From: adamelmore <2363879+adamdottv@users.noreply.github.com> Date: Fri, 9 Jan 2026 08:19:39 -0600 Subject: [PATCH] fix(app): store terminal and review pane visibility per session --- .../app/src/components/dialog-select-file.tsx | 3 +- .../src/components/session-context-usage.tsx | 3 +- .../src/components/session/session-header.tsx | 20 +++-- packages/app/src/context/layout.tsx | 86 +++++++++++++------ packages/app/src/pages/session.tsx | 16 ++-- 5 files changed, 87 insertions(+), 41 deletions(-) diff --git a/packages/app/src/components/dialog-select-file.tsx b/packages/app/src/components/dialog-select-file.tsx index 9e3bbeddd..461f8a0c0 100644 --- a/packages/app/src/components/dialog-select-file.tsx +++ b/packages/app/src/components/dialog-select-file.tsx @@ -15,6 +15,7 @@ export function DialogSelectFile() { const params = useParams() const sessionKey = createMemo(() => `${params.dir}${params.id ? "/" + params.id : ""}`) const tabs = createMemo(() => layout.tabs(sessionKey())) + const view = createMemo(() => layout.view(sessionKey())) return ( props.variant ?? "button") const sessionKey = createMemo(() => `${params.dir}${params.id ? "/" + params.id : ""}`) const tabs = createMemo(() => layout.tabs(sessionKey())) + const view = createMemo(() => layout.view(sessionKey())) const messages = createMemo(() => (params.id ? (sync.data.message[params.id] ?? []) : [])) const cost = createMemo(() => { @@ -48,7 +49,7 @@ export function SessionContextUsage(props: SessionContextUsageProps) { const openContext = () => { if (!params.id) return - layout.review.open() + view().reviewPanel.open() tabs().open("context") tabs().setActive("context") } diff --git a/packages/app/src/components/session/session-header.tsx b/packages/app/src/components/session/session-header.tsx index 4958ad2c3..cfc6eb438 100644 --- a/packages/app/src/components/session/session-header.tsx +++ b/packages/app/src/components/session/session-header.tsx @@ -43,6 +43,8 @@ export function SessionHeader() { }) const shareEnabled = createMemo(() => sync.data.config.share !== "disabled") const worktrees = createMemo(() => layout.projects.list().map((p) => p.worktree), [], { equals: same }) + const sessionKey = createMemo(() => `${params.dir}${params.id ? "/" + params.id : ""}`) + const view = createMemo(() => layout.view(sessionKey())) function navigateToProject(directory: string) { navigate(`/${base64Encode(directory)}`) @@ -171,20 +173,24 @@ export function SessionHeader() { title="Toggle review" keybind={command.keybind("review.toggle")} > -