summaryrefslogtreecommitdiffhomepage
path: root/packages
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-11-07 16:19:38 -0500
committerDax Raad <[email protected]>2025-11-07 16:19:44 -0500
commit1a2b3701f2a4f6ea12de4c51c6d4ba5d3d8d083a (patch)
tree9af967c4eb50a17452a9d230f89efddbda262469 /packages
parent0a395d87839e4d4700d5f51f5085785ec30b5fb6 (diff)
downloadopencode-1a2b3701f2a4f6ea12de4c51c6d4ba5d3d8d083a.tar.gz
opencode-1a2b3701f2a4f6ea12de4c51c6d4ba5d3d8d083a.zip
tui: show more sessions in list and fix sync timing to prevent race conditions
Diffstat (limited to 'packages')
-rw-r--r--packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/context/sync.tsx2
-rw-r--r--packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx2
3 files changed, 2 insertions, 4 deletions
diff --git a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
index e6f7efbe3..c4f318451 100644
--- a/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
+++ b/packages/opencode/src/cli/cmd/tui/component/dialog-session-list.tsx
@@ -43,6 +43,7 @@ export function DialogSessionList() {
footer: Locale.time(x.time.updated),
}
})
+ .slice(0, 150)
})
createEffect(() => {
@@ -57,7 +58,6 @@ export function DialogSessionList() {
<DialogSelect
title="Sessions"
options={options()}
- limit={50}
current={currentSessionID()}
onMove={() => {
setToDelete(undefined)
diff --git a/packages/opencode/src/cli/cmd/tui/context/sync.tsx b/packages/opencode/src/cli/cmd/tui/context/sync.tsx
index 5c8d31468..60758aeb1 100644
--- a/packages/opencode/src/cli/cmd/tui/context/sync.tsx
+++ b/packages/opencode/src/cli/cmd/tui/context/sync.tsx
@@ -269,8 +269,8 @@ export const { use: useSync, provider: SyncProvider } = createSimpleContext({
return last.time.completed ? "idle" : "working"
},
async sync(sessionID: string) {
- const now = Date.now()
if (store.message[sessionID]) return
+ const now = Date.now()
console.log("syncing", sessionID)
const [session, messages, todo, diff] = await Promise.all([
sdk.client.session.get({ path: { id: sessionID }, throwOnError: true }),
diff --git a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
index 6dd0b5cd4..b442f7b34 100644
--- a/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
+++ b/packages/opencode/src/cli/cmd/tui/ui/dialog-select.tsx
@@ -23,7 +23,6 @@ export interface DialogSelectProps<T> {
title: string
onTrigger: (option: DialogSelectOption<T>) => void
}[]
- limit?: number
current?: T
}
@@ -58,7 +57,6 @@ export function DialogSelect<T>(props: DialogSelectProps<T>) {
const result = pipe(
props.options,
filter((x) => x.disabled !== true),
- take(props.limit ?? Infinity),
(x) =>
!needle ? x : fuzzysort.go(needle, x, { keys: ["title", "category"] }).map((x) => x.obj),
)