imccyu
92f9e79fac
perf(session-projection): serve session-list rows from a summary key set
...
A Session-list row no longer carries every registered client view: the three
units whose values a list row never renders (`turnOutline`, `sessionStats`,
and `todos`) are excluded, which removes the whole-log turn outline and the
figure and todo payloads from every row. An opened Session is unchanged —
`session/follow`, the `session/control` baseline, and `session.projections`
still serve every projected key.
The exclusion is one type-level mark plus one registration interlock:
`SessionProjectionSummaryExcluded<T>` marks a map entry, and
`ProjectionDefinition.wire` requires `summary: false` exactly on a marked key
and rejects it everywhere else, so the mark and the declaration cannot drift.
A nullable entry keeps `null` outside the wrapper, so `todos` stays
`TodoItem[] | null`. `summaryKeys()` returns the derived set, stable until a
registration or its disposal changes the key table, and the existing
key-taking read faces (`cachedSnapshot`, `viewCheckpoint`) accept that set
directly, so summaries need no separate read face and no per-read key copy.
`packages/api/session-controller/src/list.ts` passes the set to the live and
cold cached faces; `cachedPredecessorTitle` is untouched.
Client types only: `SessionSummary.projectionValues` narrows to
`SessionProjectionSummaryValues`, `SessionProjectionSnapshot.values` keeps
every view value with the mark stripped, and no wire field or client name
changed. The cache, subsystem page, and package README document the summary
rule and the two read faces.
2026-10-18 22:13:18 +08:00
..
2026-09-21 08:24:18 +00:00
2026-10-12 14:15:56 +08:00
2026-10-12 16:07:23 +08:00
2026-10-18 15:31:23 +08:00
2026-10-17 14:02:01 +08:00
2026-09-23 19:16:59 +08:00
2026-10-11 22:16:47 +08:00
2026-08-19 18:21:26 +08:00
2026-08-29 15:31:12 +08:00
2026-09-25 21:59:34 +08:00
2026-09-25 21:59:34 +08:00
2026-08-06 16:38:25 +08:00
2026-09-22 21:14:06 +08:00
2026-10-15 03:56:26 +08:00
2026-08-29 20:19:38 +08:00
2026-09-28 16:04:06 +08:00
2026-09-12 22:04:16 +08:00
2026-09-12 21:30:51 +08:00
2026-10-06 23:48:59 +08:00
2026-09-23 19:16:59 +08:00
2026-10-09 15:52:59 +08:00
2026-10-09 15:52:59 +08:00
2026-10-01 03:02:51 +08:00
2026-10-01 03:02:51 +08:00
2026-10-07 13:51:48 +08:00
2026-10-08 15:06:19 +08:00
2026-10-18 00:28:33 +08:00
2026-10-18 00:28:33 +08:00
2026-10-08 15:06:19 +08:00
2026-10-10 13:12:10 +08:00
2026-10-18 14:29:23 +08:00
2026-10-18 14:29:23 +08:00
2026-10-14 02:19:42 -07:00
2026-10-06 16:42:25 +08:00
2026-08-09 16:39:41 +08:00
2026-09-03 11:16:34 +08:00
2026-10-18 00:28:33 +08:00
2026-10-18 00:28:33 +08:00
2026-10-15 23:33:49 +08:00
2026-09-07 12:41:23 +08:00
2026-10-18 14:29:23 +08:00
2026-09-28 15:42:08 +08:00
2026-09-28 15:42:08 +08:00
2026-10-18 15:06:16 +08:00
2026-10-18 15:31:23 +08:00
2026-10-14 16:22:56 +08:00
2026-10-14 14:44:00 +08:00
2026-08-13 02:29:17 +08:00
2026-10-15 23:33:49 +08:00
2026-10-18 14:29:23 +08:00
2026-10-18 14:29:23 +08:00
2026-08-24 22:02:44 +08:00
2026-08-09 01:31:57 +08:00
2026-08-11 15:23:05 +08:00
2026-08-10 22:04:13 +08:00
2026-09-21 08:24:18 +00:00
2026-09-13 15:17:06 +08:00
2026-09-08 22:31:16 +08:00
2026-09-23 22:32:06 +08:00
2026-10-08 14:55:10 +08:00
2026-10-08 14:55:10 +08:00
2026-10-08 19:59:17 +08:00
2026-10-08 19:59:17 +08:00
2026-10-08 14:55:10 +08:00
2026-10-08 14:55:10 +08:00
2026-09-13 15:13:59 +08:00
2026-08-27 23:14:31 +08:00
2026-10-15 14:03:50 +08:00
2026-10-15 17:40:38 +08:00
2026-10-07 14:07:28 +08:00
2026-10-11 18:19:23 +08:00
2026-10-11 22:16:47 +08:00
2026-10-09 23:04:58 +08:00
2026-10-15 05:37:44 +08:00
2026-10-03 06:33:11 +08:00
2026-10-03 06:33:11 +08:00
2026-10-18 14:29:23 +08:00
2026-09-23 19:16:59 +08:00
2026-10-08 15:06:19 +08:00
2026-10-08 15:06:19 +08:00
2026-10-06 16:42:25 +08:00
2026-10-09 15:46:42 +08:00
2026-10-06 16:41:04 +08:00
2026-10-12 11:06:54 +08:00
2026-10-12 11:06:54 +08:00
2026-09-23 16:11:44 +08:00
2026-10-13 23:03:15 +08:00
2026-09-25 11:52:21 +08:00
2026-09-25 11:52:21 +08:00
2026-08-10 22:04:13 +08:00
2026-10-18 22:13:18 +08:00
2026-09-17 23:23:48 +08:00
2026-09-12 17:06:38 +08:00
2026-09-12 17:06:38 +08:00
2026-10-12 11:06:54 +08:00
2026-10-18 11:13:48 +08:00
2026-09-23 22:32:06 +08:00
2026-10-07 01:26:00 +08:00
2026-10-07 01:26:00 +08:00
2026-10-05 18:09:01 +08:00
2026-09-21 21:28:35 +08:00
2026-09-06 02:05:27 +08:00
2026-09-16 22:00:38 +08:00
2026-10-18 00:28:33 +08:00
2026-10-18 00:28:33 +08:00
2026-10-18 00:28:33 +08:00
2026-09-23 22:32:06 +08:00
2026-09-30 12:52:18 +08:00
2026-09-30 12:52:18 +08:00
2026-09-13 14:47:56 +08:00
2026-09-13 14:47:56 +08:00
2026-10-18 14:29:23 +08:00
2026-10-18 14:29:23 +08:00
2026-09-17 00:12:27 +08:00
2026-09-25 22:19:27 +08:00
2026-09-26 22:56:57 +08:00
2026-08-11 15:23:05 +08:00
2026-09-28 14:18:03 +08:00
2026-09-23 08:32:15 +00:00
2026-09-23 08:32:15 +00:00
2026-09-23 08:32:15 +00:00
2026-09-09 13:16:09 +08:00
2026-09-21 00:04:06 +08:00
2026-09-21 00:04:06 +08:00
2026-10-07 14:07:28 +08:00
2026-10-07 14:07:28 +08:00
2026-08-18 17:56:49 +08:00
2026-10-15 18:19:27 +08:00
2026-10-12 11:06:53 +08:00
2026-10-12 11:06:53 +08:00
2026-08-18 18:27:01 +08:00
2026-10-09 15:10:49 +08:00
2026-10-09 15:10:49 +08:00
2026-09-19 20:00:11 +08:00
2026-09-19 20:00:11 +08:00
2026-10-15 11:30:45 +08:00
2026-09-12 20:56:26 +08:00
2026-09-12 20:56:26 +08:00
2026-10-09 12:12:02 +08:00
2026-09-30 23:20:22 +08:00
2026-10-15 03:56:26 +08:00
2026-08-29 14:26:42 +08:00
2026-08-23 16:28:19 +08:00
2026-10-12 11:06:50 +08:00
2026-10-12 11:06:50 +08:00
2026-10-12 11:06:53 +08:00
2026-10-05 08:57:58 +08:00
2026-10-05 18:09:01 +08:00
2026-10-08 20:26:57 +08:00
2026-10-08 20:26:57 +08:00
2026-10-08 20:26:57 +08:00
2026-10-08 20:26:57 +08:00
2026-10-08 20:26:57 +08:00
2026-09-13 12:19:46 +08:00
2026-09-13 12:19:46 +08:00
2026-09-25 01:09:44 +08:00
2026-10-08 20:26:57 +08:00
2026-10-08 20:26:57 +08:00
2026-09-13 12:08:08 +08:00
2026-10-08 20:26:57 +08:00
2026-10-08 20:26:57 +08:00
2026-09-18 19:05:32 +08:00
2026-09-25 01:09:44 +08:00
2026-09-25 01:09:44 +08:00
2026-10-08 20:26:57 +08:00
2026-09-25 01:09:44 +08:00
2026-09-18 19:05:32 +08:00
2026-09-13 12:08:08 +08:00
2026-09-18 19:07:12 +08:00
2026-10-18 00:28:33 +08:00
2026-10-06 16:42:25 +08:00
2026-10-06 16:42:25 +08:00
2026-08-21 11:09:25 +08:00
2026-08-21 11:09:25 +08:00
2026-09-19 11:39:05 +08:00
2026-09-23 19:16:59 +08:00
2026-10-11 22:16:47 +08:00
2026-10-09 15:46:42 +08:00
2026-09-30 12:52:18 +08:00
2026-09-15 16:15:11 +08:00
2026-08-08 12:25:41 +08:00
2026-08-08 12:25:41 +08:00
2026-08-13 00:54:38 +08:00
2026-08-13 00:54:38 +08:00
2026-10-15 23:33:49 +08:00
2026-10-14 14:43:59 +08:00
2026-10-14 14:43:59 +08:00
2026-09-30 12:52:18 +08:00
2026-10-09 15:52:59 +08:00
2026-10-06 10:52:35 +08:00
2026-09-18 19:05:32 +08:00
2026-09-18 19:05:32 +08:00
2026-10-12 11:06:53 +08:00
2026-10-12 11:06:53 +08:00
2026-09-18 19:08:11 +08:00
2026-09-12 22:25:10 +08:00
2026-09-30 12:52:18 +08:00
2026-10-07 21:04:13 +08:00
2026-09-28 13:37:20 +08:00
2026-10-15 23:33:49 +08:00
2026-10-15 23:33:49 +08:00
2026-10-07 21:20:08 +08:00
2026-10-07 21:20:08 +08:00
2026-10-12 11:06:50 +08:00
2026-10-12 11:06:50 +08:00
2026-09-21 22:41:17 +08:00
2026-09-20 13:09:14 +08:00
2026-09-19 20:13:58 +08:00
2026-09-17 16:48:06 +08:00
2026-10-09 19:14:55 +08:00
2026-10-09 19:14:55 +08:00
2026-10-13 14:10:56 +08:00
2026-09-17 14:06:14 +08:00
2026-10-17 13:28:17 +08:00
2026-08-29 11:50:13 +08:00
2026-09-17 16:48:06 +08:00
2026-09-08 13:52:08 +08:00
2026-09-09 14:46:41 +08:00
2026-09-09 14:46:41 +08:00
2026-09-06 22:44:54 +08:00
2026-09-06 22:16:00 +08:00
2026-09-22 21:44:39 +08:00
2026-08-13 15:16:12 +08:00
2026-10-08 18:25:43 +08:00
2026-10-08 18:25:43 +08:00
2026-09-30 12:52:18 +08:00
2026-09-01 11:01:05 +08:00
2026-08-19 03:01:11 +08:00
2026-08-19 03:01:11 +08:00
2026-10-05 12:07:57 +08:00
2026-10-12 11:06:53 +08:00
2026-09-23 22:32:06 +08:00
2026-10-12 11:06:53 +08:00
2026-09-29 10:34:29 +08:00
2026-10-12 11:06:53 +08:00
2026-10-05 17:45:17 +08:00
2026-08-24 21:37:14 +08:00
2026-08-19 02:26:57 +08:00
2026-08-10 16:34:20 +08:00
2026-09-17 16:00:36 +08:00
2026-10-12 11:06:53 +08:00
2026-10-12 11:06:53 +08:00
2026-10-14 19:11:22 +08:00
2026-10-18 14:29:23 +08:00
2026-10-12 11:06:56 +08:00
2026-08-10 16:34:20 +08:00
2026-08-10 16:34:20 +08:00
2026-09-20 15:50:41 +08:00
2026-09-20 15:50:41 +08:00
2026-08-10 16:34:20 +08:00
2026-08-18 01:34:25 +08:00
2026-08-18 01:34:25 +08:00
2026-09-12 20:56:26 +08:00
2026-09-12 20:56:26 +08:00
2026-09-18 20:06:44 +08:00
2026-09-30 23:20:22 +08:00
2026-09-01 20:22:05 +08:00
2026-09-04 16:23:37 +08:00
2026-09-23 22:32:06 +08:00
2026-09-23 22:32:06 +08:00
2026-08-14 16:05:48 +08:00
2026-09-21 08:24:18 +00:00
2026-08-24 22:02:44 +08:00
2026-09-21 08:24:18 +00:00
2026-10-06 23:48:58 +08:00
2026-10-06 23:48:58 +08:00
2026-10-12 11:06:53 +08:00
2026-08-20 22:10:15 +08:00
2026-08-20 22:10:35 +08:00
2026-08-13 13:07:24 +08:00
2026-08-13 13:07:24 +08:00
2026-08-21 22:22:23 +08:00
2026-10-12 11:06:53 +08:00
2026-10-12 11:06:53 +08:00
2026-08-24 22:02:44 +08:00
2026-08-24 22:02:44 +08:00
2026-09-01 21:15:04 +08:00
2026-09-01 21:15:04 +08:00
2026-10-15 03:56:25 +08:00
2026-10-15 03:56:25 +08:00
2026-09-19 20:13:58 +08:00
2026-09-19 20:13:58 +08:00
2026-08-11 15:23:05 +08:00
2026-09-28 16:04:06 +08:00
2026-09-28 16:18:09 +08:00
2026-08-14 16:10:06 +08:00
2026-08-21 22:22:23 +08:00
2026-10-15 03:56:26 +08:00
2026-10-15 03:56:26 +08:00
2026-10-09 17:58:18 +08:00
2026-10-09 17:58:18 +08:00
2026-09-17 00:12:27 +08:00
2026-09-17 00:12:27 +08:00
2026-10-12 11:06:53 +08:00
2026-10-17 13:33:35 +08:00
2026-09-08 13:52:40 +08:00
2026-09-08 13:52:40 +08:00
2026-10-05 17:20:26 +08:00
2026-10-05 18:09:01 +08:00
2026-10-07 21:27:38 +08:00
2026-10-07 01:26:00 +08:00
2026-08-11 12:35:38 +08:00
2026-09-12 18:37:56 +08:00
2026-10-12 11:06:56 +08:00
2026-10-12 11:06:56 +08:00
2026-09-23 19:16:59 +08:00
2026-09-23 19:16:59 +08:00
2026-08-10 18:04:26 +08:00
2026-08-10 18:04:26 +08:00
2026-09-23 19:16:59 +08:00
2026-09-23 19:16:59 +08:00
2026-08-23 16:02:32 +08:00
2026-10-06 16:41:04 +08:00
2026-10-12 11:06:53 +08:00
2026-08-13 13:07:57 +08:00
2026-10-12 11:06:53 +08:00
2026-09-29 10:34:29 +08:00
2026-09-29 10:34:29 +08:00
2026-09-19 15:43:10 +08:00
2026-09-19 15:43:09 +08:00
2026-09-22 21:44:39 +08:00
2026-09-21 00:04:06 +08:00
2026-09-21 00:04:06 +08:00
2026-10-06 16:42:25 +08:00
2026-09-12 20:56:26 +08:00
2026-10-15 17:52:13 +08:00
2026-10-18 14:29:23 +08:00
2026-10-12 17:50:31 +08:00
2026-10-12 17:46:09 +08:00