summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-01-17 05:23:11 -0600
committerAdam <[email protected]>2026-01-17 05:23:17 -0600
commit2729705594b9429ce44cf371dbf7268ac3457d8b (patch)
treed6c32c922eb0fb6dbf4d5d35a234f11c1e4b2275
parentea13b6e8aa219f0c75eb13a6a58271d75c37521e (diff)
downloadopencode-2729705594b9429ce44cf371dbf7268ac3457d8b.tar.gz
opencode-2729705594b9429ce44cf371dbf7268ac3457d8b.zip
fix(app): archive session sometimes flaky
-rw-r--r--packages/app/src/context/global-sync.tsx2
-rw-r--r--packages/app/src/pages/layout.tsx12
2 files changed, 8 insertions, 6 deletions
diff --git a/packages/app/src/context/global-sync.tsx b/packages/app/src/context/global-sync.tsx
index 74641a0a2..96f8c63ea 100644
--- a/packages/app/src/context/global-sync.tsx
+++ b/packages/app/src/context/global-sync.tsx
@@ -379,6 +379,8 @@ function createGlobalSync() {
}),
)
}
+ if (event.properties.info.parentID) break
+ setStore("sessionTotal", (value) => Math.max(0, value - 1))
break
}
if (result.found) {
diff --git a/packages/app/src/pages/layout.tsx b/packages/app/src/pages/layout.tsx
index bc62c7023..eb09b154b 100644
--- a/packages/app/src/pages/layout.tsx
+++ b/packages/app/src/pages/layout.tsx
@@ -501,7 +501,7 @@ export default function Layout(props: ParentProps) {
const [dirStore] = globalSync.child(dir)
const dirSessions = dirStore.session
.filter((session) => session.directory === dirStore.path.directory)
- .filter((session) => !session.parentID)
+ .filter((session) => !session.parentID && !session.time?.archived)
.toSorted(sortSessions)
result.push(...dirSessions)
}
@@ -510,7 +510,7 @@ export default function Layout(props: ParentProps) {
const [projectStore] = globalSync.child(project.worktree)
return projectStore.session
.filter((session) => session.directory === projectStore.path.directory)
- .filter((session) => !session.parentID)
+ .filter((session) => !session.parentID && !session.time?.archived)
.toSorted(sortSessions)
})
@@ -1203,7 +1203,7 @@ export default function Layout(props: ParentProps) {
const sessions = createMemo(() =>
workspaceStore.session
.filter((session) => session.directory === workspaceStore.path.directory)
- .filter((session) => !session.parentID)
+ .filter((session) => !session.parentID && !session.time?.archived)
.toSorted(sortSessions),
)
const local = createMemo(() => props.directory === props.project.worktree)
@@ -1349,7 +1349,7 @@ export default function Layout(props: ParentProps) {
const [data] = globalSync.child(directory)
return data.session
.filter((session) => session.directory === data.path.directory)
- .filter((session) => !session.parentID)
+ .filter((session) => !session.parentID && !session.time?.archived)
.toSorted(sortSessions)
.slice(0, 2)
}
@@ -1358,7 +1358,7 @@ export default function Layout(props: ParentProps) {
const [data] = globalSync.child(props.project.worktree)
return data.session
.filter((session) => session.directory === data.path.directory)
- .filter((session) => !session.parentID)
+ .filter((session) => !session.parentID && !session.time?.archived)
.toSorted(sortSessions)
.slice(0, 2)
}
@@ -1445,7 +1445,7 @@ export default function Layout(props: ParentProps) {
const sessions = createMemo(() =>
workspaceStore.session
.filter((session) => session.directory === workspaceStore.path.directory)
- .filter((session) => !session.parentID)
+ .filter((session) => !session.parentID && !session.time?.archived)
.toSorted(sortSessions),
)
const loading = createMemo(() => workspaceStore.status !== "complete" && sessions().length === 0)