Hypatia May
b341155652
feat(session): project the inherited-history boundary into the log
...
A plugin owning a standalone open/close bracket cannot tell a dead marker
from a live one: an unmatched `compact/start` reads identically whether the
previous writer died mid-compaction or a compaction is running now.
`Session.firstLiveSeq` already holds that answer exactly, but only in memory.
Append the log-only `session/inherited` event at that seq from the seeded
constructor — the single waist all six seeded-start paths pass through
(resume, configured startup on a persisted id, `sessions.fork()`, a subagent
fork child, `adopt()`'s live prefix, and a bare seeded `create`). Read it
through the new `isInheritedSeq(events, seq)`.
The constructor placement means persistence needs no changes: the marker is
already in `events` when a backend captures the creation seed, so it rides
the ordinary seed path with no load-time write. It also covers fork, where
the inherited bracket's owner may still be running — the case a
persistence-layer boundary could not reach.
Activity ordering excludes the boundary through `lastActivityTime()`, since
lazy resume makes browsing a pickup and the three call sites would otherwise
float every opened session to the top of a picker or list.
2026-07-30 11:39:26 +08:00
..
2026-07-26 23:06:00 +08:00
2026-07-26 23:06:00 +08:00
2026-07-26 23:06:00 +08:00
2026-07-28 00:00:51 +08:00
2026-07-28 00:00:51 +08:00
2026-07-28 00:00:51 +08:00
2026-07-24 13:57:16 +08:00
2026-07-22 23:07:14 +08:00
2026-07-24 13:57:16 +08:00
2026-07-23 00:10:53 +08:00
2026-07-22 23:07:14 +08:00
2026-07-23 00:10:53 +08:00
2026-07-23 19:48:00 +08:00
2026-07-23 19:33:30 +08:00
2026-07-23 19:48:00 +08:00
2026-07-24 13:57:16 +08:00
2026-07-22 23:07:14 +08:00
2026-07-24 13:57:16 +08:00
2026-07-24 13:57:16 +08:00
2026-07-22 23:07:14 +08:00
2026-07-24 13:57:16 +08:00
2026-07-26 22:45:33 +08:00
2026-07-26 22:45:33 +08:00
2026-07-26 22:45:33 +08:00
2026-07-28 22:16:43 +08:00
2026-07-28 22:16:43 +08:00
2026-07-28 22:16:43 +08:00
2026-07-26 23:06:00 +08:00
2026-07-26 23:06:00 +08:00
2026-07-26 23:06:00 +08:00
2026-07-25 01:58:42 +08:00
2026-07-24 23:43:10 +08:00
2026-07-25 01:58:42 +08:00
2026-07-24 13:57:16 +08:00
2026-07-23 00:10:53 +08:00
2026-07-24 13:57:16 +08:00
2026-07-25 15:11:17 +08:00
2026-07-25 15:11:17 +08:00
2026-07-25 15:11:17 +08:00
2026-07-25 01:58:42 +08:00
2026-07-24 23:43:10 +08:00
2026-07-25 01:58:42 +08:00
2026-07-26 05:35:04 +08:00
2026-07-26 05:13:39 +08:00
2026-07-26 05:35:04 +08:00
2026-07-27 23:29:26 +08:00
2026-07-27 23:29:26 +08:00
2026-07-27 23:29:26 +08:00
2026-07-23 01:11:59 +08:00
2026-07-22 23:07:14 +08:00
2026-07-23 01:11:59 +08:00
2026-07-26 23:06:00 +08:00
2026-07-26 23:06:00 +08:00
2026-07-26 23:06:00 +08:00
2026-07-24 18:38:27 +08:00
2026-07-22 23:07:14 +08:00
2026-07-24 18:38:27 +08:00
2026-07-27 04:14:51 +08:00
2026-07-27 04:14:51 +08:00
2026-07-27 04:14:51 +08:00
2026-07-26 23:06:00 +08:00
2026-07-26 23:06:00 +08:00
2026-07-26 23:06:00 +08:00
2026-07-25 01:58:42 +08:00
2026-07-24 23:43:10 +08:00
2026-07-25 01:58:42 +08:00
2026-07-28 00:00:51 +08:00
2026-07-28 00:00:51 +08:00
2026-07-28 00:00:51 +08:00
2026-07-24 13:57:16 +08:00
2026-07-22 23:07:14 +08:00
2026-07-24 13:57:16 +08:00
2026-07-24 13:57:16 +08:00
2026-07-22 23:07:14 +08:00
2026-07-24 13:57:16 +08:00
2026-07-24 13:57:16 +08:00
2026-07-22 23:07:14 +08:00
2026-07-24 13:57:16 +08:00
2026-07-26 02:33:29 +08:00
2026-07-26 02:33:29 +08:00
2026-07-26 02:33:29 +08:00
2026-07-26 12:43:59 +08:00
2026-07-26 12:43:59 +08:00
2026-07-26 12:43:59 +08:00
2026-07-26 02:33:29 +08:00
2026-07-26 02:33:29 +08:00
2026-07-26 02:33:29 +08:00
2026-07-24 15:10:55 +08:00
2026-07-23 19:33:30 +08:00
2026-07-24 15:10:55 +08:00
2026-07-24 17:39:22 +08:00
2026-07-22 23:07:14 +08:00
2026-07-24 17:39:22 +08:00
2026-07-26 02:33:29 +08:00
2026-07-26 02:33:29 +08:00
2026-07-26 02:33:29 +08:00
2026-07-27 21:17:49 +08:00
2026-07-27 21:17:49 +08:00
2026-07-27 21:17:49 +08:00
2026-07-24 01:40:25 +08:00
2026-07-24 01:40:25 +08:00
2026-07-24 01:40:25 +08:00
2026-07-25 01:58:42 +08:00
2026-07-24 23:43:10 +08:00
2026-07-25 01:58:42 +08:00
2026-07-24 01:40:25 +08:00
2026-07-24 01:40:25 +08:00
2026-07-24 01:40:25 +08:00
2026-07-26 14:00:37 +08:00
2026-07-26 14:00:37 +08:00
2026-07-26 14:00:37 +08:00
2026-07-19 22:52:03 +08:00
2026-07-19 22:52:03 +08:00
2026-07-19 22:52:03 +08:00
2026-07-26 13:13:53 +08:00
2026-07-26 13:13:53 +08:00
2026-07-26 13:13:53 +08:00
2026-07-24 01:40:25 +08:00
2026-07-24 01:40:25 +08:00
2026-07-24 01:40:25 +08:00
2026-07-21 21:11:32 +08:00
2026-07-21 21:11:32 +08:00
2026-07-21 21:11:32 +08:00
2026-07-26 20:51:32 +08:00
2026-07-26 20:51:32 +08:00
2026-07-26 20:51:32 +08:00
2026-07-23 03:15:15 +08:00
2026-07-23 03:15:15 +08:00
2026-07-23 03:15:15 +08:00
2026-07-29 18:59:23 +08:00
2026-07-29 18:59:23 +08:00
2026-07-29 18:59:23 +08:00
2026-07-24 14:55:54 +08:00
2026-07-24 14:55:54 +08:00
2026-07-24 14:55:54 +08:00
2026-07-21 20:15:09 +08:00
2026-07-21 20:15:09 +08:00
2026-07-21 20:15:09 +08:00
2026-07-21 01:13:28 +08:00
2026-07-21 01:13:28 +08:00
2026-07-21 01:13:28 +08:00
2026-07-23 15:54:10 +08:00
2026-07-23 15:54:10 +08:00
2026-07-23 15:54:10 +08:00
2026-07-27 21:20:06 +08:00
2026-07-27 21:20:06 +08:00
2026-07-27 21:20:06 +08:00
2026-07-27 15:49:09 +08:00
2026-07-27 15:49:09 +08:00
2026-07-27 15:49:09 +08:00
2026-07-25 16:43:07 +08:00
2026-07-25 16:43:07 +08:00
2026-07-25 16:43:07 +08:00
2026-07-28 12:09:48 +08:00
2026-07-28 12:09:48 +08:00
2026-07-28 12:09:48 +08:00
2026-07-24 01:40:25 +08:00
2026-07-24 01:40:25 +08:00
2026-07-24 01:40:25 +08:00
2026-07-28 15:33:00 +08:00
2026-07-28 15:33:00 +08:00
2026-07-28 15:33:00 +08:00
2026-07-26 13:13:53 +08:00
2026-07-26 13:13:53 +08:00
2026-07-26 13:13:53 +08:00
2026-07-27 12:04:12 +08:00
2026-07-27 12:04:12 +08:00
2026-07-27 12:04:12 +08:00
2026-07-26 13:42:02 +08:00
2026-07-26 13:42:02 +08:00
2026-07-26 13:42:02 +08:00
2026-07-25 15:11:17 +08:00
2026-07-24 21:50:11 +08:00
2026-07-25 15:11:17 +08:00
2026-07-28 15:45:53 +08:00
2026-07-28 15:45:53 +08:00
2026-07-28 15:45:53 +08:00
2026-07-21 15:57:17 +08:00
2026-07-21 15:57:17 +08:00
2026-07-21 15:57:17 +08:00
2026-07-26 13:13:53 +08:00
2026-07-26 13:13:53 +08:00
2026-07-26 13:13:53 +08:00
2026-07-28 12:09:48 +08:00
2026-07-28 12:09:48 +08:00
2026-07-28 12:09:48 +08:00
2026-07-28 12:09:48 +08:00
2026-07-28 12:09:48 +08:00
2026-07-28 12:09:48 +08:00
2026-07-29 20:46:29 +08:00
2026-07-29 20:46:29 +08:00
2026-07-29 20:46:29 +08:00
2026-07-27 03:54:33 +08:00
2026-07-27 03:54:33 +08:00
2026-07-27 03:54:33 +08:00
2026-07-28 02:33:14 -07:00
2026-07-28 02:33:14 -07:00
2026-07-28 02:33:14 -07:00
2026-07-27 04:14:51 +08:00
2026-07-27 04:14:51 +08:00
2026-07-27 04:14:51 +08:00
2026-07-26 12:17:45 +08:00
2026-07-26 12:17:45 +08:00
2026-07-26 12:17:45 +08:00
2026-07-29 23:45:42 +08:00
2026-07-29 23:45:42 +08:00
2026-07-29 23:45:42 +08:00
2026-07-27 03:52:41 +08:00
2026-07-27 03:52:41 +08:00
2026-07-27 03:52:41 +08:00
2026-07-27 21:04:11 +08:00
2026-07-27 21:04:11 +08:00
2026-07-27 21:04:11 +08:00
2026-07-28 17:02:39 +08:00
2026-07-28 17:02:39 +08:00
2026-07-28 17:02:39 +08:00
2026-07-29 10:30:27 +08:00
2026-07-29 10:30:27 +08:00
2026-07-29 10:30:27 +08:00
2026-07-29 05:32:53 +08:00
2026-07-29 05:32:53 +08:00
2026-07-29 05:32:53 +08:00
2026-07-29 13:15:24 +08:00
2026-07-29 13:15:24 +08:00
2026-07-29 13:15:24 +08:00
2026-07-28 13:55:59 +08:00
2026-07-28 13:55:59 +08:00
2026-07-28 13:55:59 +08:00
2026-07-29 13:15:24 +08:00
2026-07-29 13:15:24 +08:00
2026-07-29 13:15:24 +08:00
2026-07-30 11:39:26 +08:00
2026-07-30 11:39:26 +08:00
2026-07-30 11:39:26 +08:00