openclaw/packages/sdk/src
Peter Steinberger 6df0fb818d
feat: add session thread management (#98510)
* feat: add session thread management

Squash of codex/thread-management (025aefc3ad1) onto origin/main:
pin/archive/rename sessions via sessions.patch, archived-aware
sessions.list, lifecycle fencing, read-only archived chat, SDK +
Swift protocol support, Control UI session management.

* refactor(ui): minimal session rows with hover-revealed management

Chat picker and sidebar recents share session-row primitives: single-line
rows, relative timestamps, rename/archive/pin revealed on hover or focus,
accent pin badge for pinned rows, and an active-run spinner in the trail
slot. Sidebar floats pinned sessions above recency via the shared
comparator and gains archive/pin actions through the unified sessions-view
patch fallback. Archive eligibility is one shared policy
(canArchiveSessionRow); the sidebar/picker active-run tooltip now uses the
real sessionsView.activeRun locale key.

* fix: align session admission with mailbox-era main

Integration fixes after rebasing onto current main: sessions_list mailbox
test expectations learn the archived/pinned row fields and archived:false
list param; gateway agent admission treats a session as deleted only when
both the requested and canonical alias sets miss it (legacy bare-main
stores and exec-approval followups read under different spellings); cron
persist tests keep a consistent store across claim-guarded persist calls;
the ACP abort hook test asserts abort propagation instead of signal
identity; drop dead lifecycle writes flagged by no-useless-assignment and
fix the promise-executor return in the codex compact test.

* fix(qa): align UI e2e and shard fixtures with redesigned session rows

Sidebar session rows are wrapper divs with an inner link now: update the
navigation browser tests and chat-flow Playwright selectors. Seed a real
per-test session store for the auto-fallback admission guard instead of
depending on leftover host files at /tmp/sessions.json. Teach the
test-projects routing fixture about the suites that newly import the
shared temp-dir helper. Document the Codex thread-format contract for
archivedAt/pinnedAt (flag derived from server-stamped timestamp, epoch ms
here vs Codex epoch seconds) at the type and in the session docs.

* test: route auto-fallback suite through temp-dir helper plans

The auto-fallback suite now imports the shared temp-dir helper for its
seeded session store, so the top-level helper routing fixture must list
it in the auto-reply plan.
2026-07-04 14:30:47 -04:00
..
client.ts feat: add session thread management (#98510) 2026-07-04 14:30:47 -04:00
event-hub.ts fix(sdk): surface event pump failures 2026-06-09 11:50:53 +09:00
index.e2e.test.ts fix(sdk): type agent mutation RPC params 2026-06-20 05:59:36 +02:00
index.test.ts feat: add session thread management (#98510) 2026-07-04 14:30:47 -04:00
index.ts fix(sdk): require session key for effective tools 2026-06-20 06:00:03 +02:00
normalize.test.ts fix(sdk): classify failed/blocked tool events as tool.call.failed (#95383) 2026-06-22 16:54:14 +00:00
normalize.ts fix(sdk): classify failed/blocked tool events as tool.call.failed (#95383) 2026-06-22 16:54:14 +00:00
package.e2e.test.ts test(sdk): resolve npm runner in package e2e 2026-06-22 18:28:27 +08:00
transport.test.ts fix(sdk): settle connect after observer errors 2026-06-19 05:27:57 +02:00
transport.ts fix(sdk): settle connect after observer errors 2026-06-19 05:27:57 +02:00
types.ts fix(sdk): require session key for effective tools 2026-06-20 06:00:03 +02:00