opencode-sesh 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,18 @@ All notable changes to this project are documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.7] - 2026-10-08
9
+
10
+ ### Fixed
11
+
12
+ - **tui:** Omit empty directory filter from session listing query
13
+
14
+ ## [1.0.6] - 2026-10-08
15
+
16
+ ### Fixed
17
+
18
+ - **tui:** Prevent undefined menuBox dereference during sidebar render
19
+
8
20
  ## [1.0.5] - 2026-10-08
9
21
 
10
22
  ### Fixed
@@ -448,6 +460,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
448
460
  - Fixture-database regression suite, TypeScript typechecking, and ShellCheck in
449
461
  CI.
450
462
 
463
+ [1.0.7]: https://github.com/ozandogrultan/opencode-sesh/compare/v1.0.6...v1.0.7
464
+ [1.0.6]: https://github.com/ozandogrultan/opencode-sesh/compare/v1.0.5...v1.0.6
451
465
  [1.0.5]: https://github.com/ozandogrultan/opencode-sesh/compare/v1.0.4...v1.0.5
452
466
  [1.0.4]: https://github.com/ozandogrultan/opencode-sesh/compare/v1.0.3...v1.0.4
453
467
  [1.0.3]: https://github.com/ozandogrultan/opencode-sesh/compare/v1.0.2...v1.0.3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-sesh",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Browse, search, preview and resume opencode sessions from the terminal and the TUI.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -450,7 +450,6 @@ async function fetchEntries(api: TuiPluginApi): Promise<EntryResult> {
450
450
  const result = await api.client.experimental.session.list({
451
451
  limit: SESSION_PAGE_LIMIT,
452
452
  roots: true,
453
- directory: "",
454
453
  ...(cursor === undefined ? {} : { cursor }),
455
454
  })
456
455
  const page = ((result?.data ?? result) as Session[]) ?? []
@@ -1257,14 +1256,15 @@ function SidebarSessions(props: { api: TuiPluginApi } & PinProps) {
1257
1256
  onChange: setMenuState,
1258
1257
  })
1259
1258
 
1260
- const menuBox = createMemo(() => {
1259
+ const menuView = createMemo(() => {
1261
1260
  const state = menuState()
1262
1261
  if (!state) return undefined
1263
- return contextMenuBox(
1262
+ const box = contextMenuBox(
1264
1263
  { x: state.x, y: state.y, ...contextMenuSize(state.items) },
1265
1264
  props.api.renderer.width,
1266
1265
  props.api.renderer.height,
1267
1266
  )
1267
+ return { state, box }
1268
1268
  })
1269
1269
 
1270
1270
  let disposeHoverSpace: (() => void) | undefined
@@ -1677,13 +1677,14 @@ function SidebarSessions(props: { api: TuiPluginApi } & PinProps) {
1677
1677
  container.zIndex = 1000
1678
1678
  }}
1679
1679
  >
1680
- <Show when={menuState()}>
1680
+ <Show when={menuView()} keyed>
1681
+ {(view) => (
1681
1682
  <box
1682
1683
  position="absolute"
1683
- left={menuBox()!.left}
1684
- top={menuBox()!.top}
1685
- width={menuBox()!.width}
1686
- height={menuBox()!.height}
1684
+ left={view.box.left}
1685
+ top={view.box.top}
1686
+ width={view.box.width}
1687
+ height={view.box.height}
1687
1688
  flexDirection="column"
1688
1689
  border
1689
1690
  borderStyle="rounded"
@@ -1694,11 +1695,11 @@ function SidebarSessions(props: { api: TuiPluginApi } & PinProps) {
1694
1695
  onMouseDown={(event: { stopPropagation: () => void }) => event.stopPropagation()}
1695
1696
  onMouseUp={(event: { stopPropagation: () => void }) => event.stopPropagation()}
1696
1697
  >
1697
- <For each={menuState()!.items}>
1698
+ <For each={view.state.items}>
1698
1699
  {(item, index) => (
1699
1700
  <box
1700
1701
  height={1}
1701
- backgroundColor={menuState()!.index === index() ? theme().backgroundElement : RGBA.fromInts(0, 0, 0, 0)}
1702
+ backgroundColor={view.state.index === index() ? theme().backgroundElement : RGBA.fromInts(0, 0, 0, 0)}
1702
1703
  onMouseOver={() => menu.select(index())}
1703
1704
  onMouseDown={(event: { stopPropagation: () => void }) => event.stopPropagation()}
1704
1705
  onMouseUp={(event: { button?: number; stopPropagation: () => void }) => {
@@ -1712,7 +1713,7 @@ function SidebarSessions(props: { api: TuiPluginApi } & PinProps) {
1712
1713
  fg:
1713
1714
  item.id === "delete" || item.id === "confirm"
1714
1715
  ? theme().error
1715
- : menuState()!.index === index()
1716
+ : view.state.index === index()
1716
1717
  ? theme().text
1717
1718
  : theme().textMuted,
1718
1719
  }}
@@ -1723,6 +1724,7 @@ function SidebarSessions(props: { api: TuiPluginApi } & PinProps) {
1723
1724
  )}
1724
1725
  </For>
1725
1726
  </box>
1727
+ )}
1726
1728
  </Show>
1727
1729
  </Portal>
1728
1730
  </box>