Brent Traut
0ada5d8806
Expose experimental durable thread read state in the app server ( #52350 )
...
## What changed
- Add experimental `readState` to `thread/read` and a thread-ID-keyed `readStates` map to `thread/list` for eligible durable local user threads. Each receipt contains `firstUnread` and an opaque `revision`.
- Publish new visible terminal results before `turn/completed`, after flushing the rollout. Reading snapshots leaves activity unread; replayed history does not publish new activity.
- Clear unread positions removed by a paginated thread revert while preserving explicit thread-start marks and concurrent receipt updates.
## Testing
Add an integration test covering completed-turn receipts, repeated reads without acknowledgement, matching list receipts, and revert cleanup with a changed revision.
GitOrigin-RevId: e7f6ddfbb1fc2fa95d1ef2876d7f0f7b9f99ff65
2026-10-09 01:22:30 +00:00
..
2026-10-02 04:02:14 +00:00
2026-10-07 12:47:04 +00:00
2026-09-30 17:33:59 +00:00
2026-10-08 05:29:11 +00:00
2026-09-30 00:51:39 +00:00
2026-10-09 01:22:30 +00:00
2026-10-07 22:10:23 +00:00
2026-10-08 20:11:43 +00:00
2026-10-09 01:22:30 +00:00
2026-10-08 20:11:43 +00:00
2026-10-06 17:26:19 +00:00
2026-10-05 23:52:06 +00:00
2026-10-08 16:19:09 +00:00
2026-10-06 23:44:17 +00:00
2026-10-02 22:20:55 +00:00
2026-10-07 22:11:14 +00:00
2026-09-30 18:49:29 +00:00
2026-10-08 21:18:24 +00:00
2026-10-01 22:32:29 +00:00
2026-09-29 13:58:09 +00:00
2026-09-29 03:32:19 +00:00
2026-10-08 19:15:17 +00:00
2026-10-08 19:15:17 +00:00
2026-10-08 19:15:17 +00:00
2026-10-07 16:46:43 +00:00
2026-10-08 20:11:43 +00:00
2026-09-25 00:20:02 +00:00
2026-09-24 01:50:36 +00:00
2026-10-08 23:57:36 +00:00
2026-10-08 22:27:00 +00:00
2026-10-08 23:57:36 +00:00
2026-10-08 23:57:36 +00:00
2026-10-06 23:28:55 +00:00
2026-09-23 22:20:34 +00:00
2026-10-08 18:42:58 +00:00
2026-10-08 20:11:43 +00:00
2026-10-08 16:19:09 +00:00
2026-10-08 19:13:52 +00:00
2026-10-08 13:45:19 +00:00
2026-10-08 23:57:36 +00:00
2026-10-06 16:56:39 +00:00
2026-10-08 22:27:00 +00:00
2026-10-07 11:18:05 +00:00
2026-10-01 09:52:54 +00:00
2026-10-07 17:59:22 +00:00
2026-10-01 15:57:03 +00:00
2026-10-08 20:04:38 +00:00
2026-10-08 23:34:16 +00:00
2026-10-08 23:57:36 +00:00
2026-10-01 22:32:29 +00:00
2026-10-08 16:19:09 +00:00
2026-09-29 22:24:09 +00:00
2026-10-08 20:11:43 +00:00
2026-10-08 20:11:43 +00:00
2026-09-28 14:46:32 +00:00
2026-10-08 20:11:43 +00:00
2026-10-07 18:32:50 +00:00
2026-10-02 23:26:27 +00:00
2026-10-06 01:46:33 +00:00
2026-10-07 21:16:25 +00:00
2026-10-08 21:09:30 +00:00
2026-10-08 20:11:43 +00:00
2026-10-06 21:29:35 +00:00
2026-10-08 23:57:36 +00:00
2026-10-08 23:57:36 +00:00
2026-10-01 15:57:03 +00:00
2026-09-29 01:14:41 +00:00
2026-10-07 22:11:14 +00:00
2026-10-07 19:28:14 +00:00
2026-10-07 07:57:14 +00:00
2026-10-07 07:57:14 +00:00
2026-10-07 21:52:20 +00:00
2026-09-24 18:08:31 +00:00
2026-10-08 16:19:09 +00:00
2026-10-08 20:11:43 +00:00
2026-10-09 01:22:30 +00:00
2026-10-02 00:46:14 +00:00
2026-10-08 18:42:58 +00:00
2026-10-07 06:34:22 +00:00
2026-10-08 16:19:09 +00:00
2026-10-09 01:22:30 +00:00
2026-10-01 18:05:05 +00:00
2026-10-08 20:11:43 +00:00
2026-10-01 15:57:03 +00:00
2026-10-08 01:12:16 +00:00
2026-10-07 22:11:14 +00:00
2026-10-01 15:57:03 +00:00
2026-10-07 22:11:14 +00:00
2026-10-08 17:25:09 +00:00
2026-10-08 16:19:09 +00:00
2026-10-02 04:02:14 +00:00