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
..
2026-07-04 14:30:47 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:14:41 -04:00
2026-06-04 19:14:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-07-02 18:43:14 -07:00
2026-06-05 08:40:35 -07:00
2026-06-04 22:22:21 -04:00
2026-05-31 11:30:33 +01:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:22:21 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-18 10:12:48 +10:00
2026-06-24 18:29:56 +08:00
2026-06-28 12:02:36 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:45:30 -04:00
2026-06-23 15:48:27 +08:00
2026-06-16 00:38:16 -06:00
2026-06-04 22:16:29 -04:00
2026-06-15 02:53:14 -07:00
2026-07-01 11:16:49 -07:00
2026-06-03 15:20:39 -07:00
2026-05-16 12:38:51 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:20:19 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:14:41 -04:00
2026-06-04 22:22:21 -04:00
2026-06-19 20:55:49 +02:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:16:24 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 17:58:09 -07:00
2026-06-04 22:13:13 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:16:24 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:16:24 -04:00
2026-06-03 15:20:39 -07:00
2026-07-02 14:15:25 -07:00
2026-07-02 14:15:25 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:24:26 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:38:03 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-07-04 08:40:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:24:26 -04:00
2026-06-03 15:20:39 -07:00
2026-05-13 13:33:38 +01:00
2026-07-03 19:42:06 -07:00
2026-06-19 20:55:49 +02:00
2026-06-06 22:56:48 -07:00
2026-06-04 22:16:29 -04:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:16:29 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-06 22:56:48 -07:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-06-06 22:56:48 -07:00
2026-05-24 23:03:35 +03:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:16:24 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-05-31 10:34:56 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-07 19:03:38 +09:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-07 19:03:38 +09:00
2026-06-07 19:03:38 +09:00
2026-05-27 09:26:06 +01:00
2026-06-03 15:20:39 -07:00
2026-05-27 09:26:06 +01:00
2026-06-23 11:56:49 +08:00
2026-06-23 11:56:49 +08:00
2026-06-04 19:21:04 -04:00
2026-05-10 00:18:36 -04:00
2026-06-04 22:38:03 -04:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-27 09:26:06 +01:00
2026-05-27 09:26:06 +01:00
2026-05-27 09:26:06 +01:00
2026-06-03 18:45:11 -04:00
2026-05-27 09:26:06 +01:00
2026-06-03 15:20:39 -07:00
2026-05-27 09:26:06 +01:00
2026-06-10 13:35:19 +05:30
2026-07-02 18:43:14 -07:00
2026-05-27 09:26:06 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:14:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-05-27 09:26:06 +01:00
2026-06-03 15:20:39 -07:00
2026-05-27 09:26:06 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:14:41 -04:00
2026-06-03 15:20:39 -07:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:16:24 -04:00
2026-06-04 19:21:04 -04:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-06-22 09:37:09 +08:00
2026-05-27 09:26:06 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:14:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-13 19:36:53 +02:00
2026-05-30 11:07:45 +02:00
2026-05-13 20:07:10 +01:00
2026-05-18 01:47:44 -05:00
2026-06-22 09:37:09 +08:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:16:29 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-27 09:26:06 +01:00
2026-05-31 10:34:56 +01:00
2026-06-03 15:20:39 -07:00
2026-06-18 20:52:46 -07:00
2026-06-28 07:33:34 -07:00
2026-05-10 12:37:10 +01:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-05-18 14:56:06 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:46:51 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-07-04 01:51:03 -07:00
2026-07-04 01:51:03 -07:00
2026-06-03 15:20:39 -07:00
2026-07-02 18:43:14 -07:00
2026-05-26 02:24:02 +01:00
2026-05-27 09:26:06 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-27 09:26:06 +01:00
2026-06-09 19:58:10 +09:00
2026-06-09 19:58:10 +09:00
2026-06-03 15:20:39 -07:00
2026-06-15 09:29:42 +08:00
2026-06-21 11:50:51 +08:00
2026-06-04 22:18:33 -04:00
2026-05-30 00:04:06 +10:00
2026-06-04 19:21:04 -04:00
2026-07-03 19:55:00 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-07-04 10:57:42 +10:00
2026-06-03 15:20:39 -07:00
2026-07-04 10:57:42 +10:00
2026-07-04 10:57:42 +10:00
2026-06-04 22:22:21 -04:00
2026-06-04 19:21:04 -04:00
2026-06-04 22:20:19 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:20:19 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:14:54 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:14:54 -04:00
2026-07-01 04:02:12 -05:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:27:50 -04:00
2026-06-03 15:20:39 -07:00
2026-05-09 20:31:40 +02:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-07-02 18:43:14 -07:00
2026-06-03 15:20:39 -07:00
2026-06-26 07:08:30 -04:00
2026-06-04 19:14:41 -04:00
2026-06-04 19:21:04 -04:00
2026-05-27 13:59:33 +01:00
2026-06-23 11:56:49 +08:00
2026-05-23 21:17:55 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:14:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-21 13:53:24 +08:00
2026-06-04 22:18:33 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:18:33 -04:00
2026-06-04 22:26:17 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-04 22:41:26 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:22:21 -04:00
2026-05-15 18:44:04 +01:00
2026-05-10 12:37:10 +01:00
2026-05-31 11:30:33 +01:00
2026-07-01 03:53:54 -07:00
2026-06-23 10:11:18 +08:00
2026-05-13 15:04:49 +01:00
2026-06-03 15:20:39 -07:00
2026-05-31 12:56:38 +01:00
2026-06-22 02:30:56 +08:00
2026-06-22 02:30:56 +08:00
2026-06-03 15:20:39 -07:00
2026-06-26 16:16:12 -04:00
2026-06-03 15:20:39 -07:00
2026-06-15 09:29:42 +08:00
2026-06-23 05:52:08 -07:00
2026-06-03 15:20:39 -07:00
2026-06-22 06:28:54 -07:00
2026-05-10 12:37:10 +01:00
2026-05-10 12:37:10 +01:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-14 12:50:22 +08:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-30 09:56:20 -07:00
2026-06-03 15:20:39 -07:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-10 12:37:10 +01:00
2026-07-02 16:05:49 -07:00
2026-05-23 21:26:55 +01:00
2026-06-03 15:20:39 -07:00
2026-07-04 02:08:35 -07:00
2026-06-04 22:24:26 -04:00
2026-06-04 22:26:17 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-10 12:37:10 +01:00
2026-05-17 02:05:22 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-31 01:33:00 +01:00
2026-06-04 19:14:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:16:29 -04:00
2026-06-04 22:26:17 -04:00
2026-06-04 19:14:41 -04:00
2026-06-06 22:56:48 -07:00
2026-06-06 22:56:48 -07:00
2026-05-27 09:26:06 +01:00
2026-05-27 09:26:06 +01:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-07-03 16:24:43 -07:00
2026-06-04 19:14:41 -04:00
2026-06-06 22:56:48 -07:00
2026-05-10 12:37:10 +01:00
2026-06-16 09:36:32 +08:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:14:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-28 02:36:53 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-07-01 11:16:49 -07:00
2026-07-01 11:16:49 -07:00
2026-07-01 11:16:49 -07:00
2026-06-04 19:21:04 -04:00
2026-06-04 19:21:04 -04:00
2026-07-03 19:53:43 -07:00
2026-07-01 11:16:49 -07:00
2026-06-20 13:15:12 +08:00
2026-06-19 11:34:54 +02:00
2026-06-28 10:08:36 -04:00
2026-06-28 10:08:36 -04:00
2026-07-01 06:48:57 +01:00
2026-07-01 06:48:57 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:16:29 -04:00
2026-06-04 19:21:04 -04:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-06-24 19:08:22 -05:00
2026-06-11 11:11:21 +09:00
2026-06-12 21:14:03 -07:00
2026-06-03 15:20:39 -07:00
2026-06-09 20:12:25 +09:00
2026-07-04 08:40:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:14:54 -04:00
2026-06-03 15:20:39 -07:00
2026-06-27 03:31:42 +01:00
2026-06-27 03:31:42 +01:00
2026-06-12 17:37:28 -07:00
2026-06-22 09:37:09 +08:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-04 19:14:41 -04:00
2026-06-30 23:44:02 -07:00
2026-05-31 17:35:41 +01:00
2026-05-28 22:04:22 -04:00
2026-06-04 22:16:29 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-30 07:53:51 +02:00
2026-06-04 22:22:21 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-07-02 16:51:30 -07:00
2026-06-04 19:21:04 -04:00
2026-06-04 22:40:12 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:22:21 -04:00
2026-06-21 11:26:58 -03:00
2026-06-07 14:16:00 -07:00
2026-06-19 20:55:49 +02:00
2026-06-04 20:31:41 -07:00
2026-06-03 15:20:39 -07:00
2026-06-19 20:55:49 +02:00
2026-07-04 08:40:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-07-02 18:43:14 -07:00
2026-05-15 18:44:04 +01:00
2026-06-03 15:20:39 -07:00
2026-07-04 01:09:12 -07:00
2026-07-04 01:09:12 -07:00
2026-06-03 15:20:39 -07:00
2026-06-14 09:11:05 -07:00
2026-06-03 15:20:39 -07:00
2026-05-31 11:30:33 +01:00
2026-06-04 23:26:24 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:16:29 -04:00
2026-06-03 15:20:39 -07:00
2026-07-04 01:51:03 -07:00
2026-07-03 17:58:15 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:27:50 -04:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:18:33 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-26 08:02:00 +10:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-20 06:41:33 +02:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:18:33 -04:00
2026-05-10 12:37:10 +01:00
2026-05-18 14:56:06 +01:00
2026-06-03 15:20:39 -07:00
2026-06-28 02:36:53 -04:00
2026-07-02 19:01:22 -07:00
2026-06-20 14:01:07 -07:00
2026-06-20 14:01:07 -07:00
2026-06-20 14:01:07 -07:00
2026-06-23 14:32:21 -07:00
2026-06-28 07:33:34 -07:00
2026-06-22 16:45:01 +00:00
2026-05-10 12:37:10 +01:00
2026-06-03 15:20:39 -07:00
2026-06-18 09:46:56 +08:00
2026-06-18 09:46:56 +08:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-05-29 10:05:37 -04:00
2026-06-19 01:20:06 +08:00
2026-06-19 01:20:06 +08:00
2026-06-04 19:21:04 -04:00
2026-06-04 22:24:26 -04:00
2026-05-23 23:53:27 +01:00
2026-05-15 11:00:29 +01:00
2026-05-13 13:33:38 +01:00
2026-06-04 19:21:04 -04:00
2026-06-04 19:14:41 -04:00
2026-05-31 01:33:00 +01:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:22:21 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:16:24 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-03 15:20:39 -07:00
2026-05-27 19:24:04 +01:00
2026-05-30 11:07:45 +02:00
2026-06-03 15:20:39 -07:00
2026-05-17 03:00:39 +01:00
2026-05-30 11:07:45 +02:00
2026-06-03 15:20:39 -07:00
2026-06-24 06:41:38 -07:00
2026-05-31 01:33:00 +01:00
2026-06-14 18:18:20 +05:30
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-04 22:20:19 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:13:13 -04:00
2026-06-14 09:11:05 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:21:04 -04:00
2026-06-04 20:31:41 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:34:53 -04:00
2026-05-09 02:34:56 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:34:53 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:14:41 -04:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:16:24 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 19:16:24 -04:00
2026-06-03 15:20:39 -07:00
2026-06-04 22:18:33 -04:00
2026-06-04 22:26:17 -04:00
2026-06-03 15:20:39 -07:00