andrewgu-oai
170da98842
Optimize history item lookups ( #41413 )
...
## What changed
- Lazily index items in larger thread-history turns so late updates can reuse
their positions after turn completion and rollback.
- Map reverse-history search matches back to Unicode byte ranges with a linear
scan.
- Preserve first-occurrence semantics for duplicate item IDs and Unicode match
boundaries.
## Testing
- Cover indexed duplicate updates before and after the indexing threshold.
- Cover retained-turn updates after rollback and Unicode history-search ranges.
GitOrigin-RevId: 3a9c819966d90d833c4183cf6523b6ea4f7be7e7
2026-08-28 20:49:37 +00:00
..
2026-08-28 01:14:02 +00:00
2026-08-24 02:46:56 +00:00
2026-03-28 11:23:07 -06:00
2026-08-28 20:49:37 +00:00
2026-08-28 01:14:02 +00:00
2026-08-27 14:09:15 +00:00
2026-08-17 00:32:09 +00:00
2026-08-25 20:51:34 +00:00
2026-08-27 14:09:15 +00:00
2026-08-17 16:34:21 +00:00
2026-08-13 04:08:23 +00:00
2026-08-28 06:18:20 +00:00
2026-08-26 19:31:52 +00:00
2026-08-24 20:04:52 +00:00
2026-04-21 17:10:36 +00:00
2026-08-25 20:51:34 +00:00
2026-08-24 20:04:52 +00:00
2026-08-17 16:58:24 +00:00
2026-08-20 05:49:49 +00:00
2026-08-17 19:59:22 +00:00
2026-08-14 16:33:28 +00:00
2026-08-26 19:31:52 +00:00
2026-08-25 15:55:35 +00:00
2026-08-24 20:04:52 +00:00
2026-08-24 20:04:52 +00:00
2026-08-25 12:20:41 +00:00
2026-08-25 20:51:34 +00:00
2026-08-17 21:49:30 +00:00
2026-08-25 20:51:34 +00:00
2026-07-21 14:25:18 +00:00
2026-07-15 01:07:29 +00:00
2026-08-25 21:03:11 +00:00
2026-07-22 23:45:45 +00:00
2026-06-15 19:25:54 -07:00
2026-08-28 18:07:40 +00:00
2026-08-27 19:51:10 +00:00
2026-08-26 21:39:05 +00:00
2026-04-13 18:27:00 -07:00
2026-08-25 03:08:33 +00:00
2026-08-04 16:53:33 +00:00
2026-08-26 21:39:05 +00:00
2026-08-18 00:31:51 +00:00
2026-05-05 16:18:02 +00:00
2026-06-01 18:01:52 +02:00
2026-05-13 15:40:37 -07:00
2026-03-28 11:23:07 -06:00
2026-08-20 06:57:00 +00:00
2026-08-17 21:06:34 +00:00
2026-08-23 00:54:23 +00:00
2026-08-25 20:51:34 +00:00
2026-08-21 19:20:09 +00:00
2026-04-30 10:52:19 -07:00
2026-08-27 14:09:15 +00:00
2026-08-24 01:50:53 +00:00
2026-08-27 04:51:46 +00:00
2026-08-27 04:51:46 +00:00
2026-03-28 11:23:07 -06:00
2026-08-16 03:14:17 +00:00
2026-08-16 03:14:17 +00:00
2026-03-28 11:23:07 -06:00
2026-03-28 11:23:07 -06:00
2026-08-04 16:53:33 +00:00
2026-08-21 19:23:26 +00:00
2026-07-29 03:50:00 +00:00
2026-06-12 17:14:27 -07:00
2026-05-09 21:17:30 +00:00
2026-05-01 09:39:48 -07:00
2026-08-13 04:08:23 +00:00
2026-08-13 04:08:23 +00:00
2026-08-24 20:04:52 +00:00
2026-08-01 17:43:03 +00:00
2026-08-26 19:31:52 +00:00
2026-08-28 06:18:20 +00:00
2026-08-25 19:30:21 +00:00
2026-07-29 14:01:31 +00:00
2026-07-29 14:01:31 +00:00
2026-07-29 14:01:31 +00:00
2026-08-24 21:39:48 +00:00
2026-08-25 18:27:42 +00:00
2026-06-26 19:27:31 +00:00
2026-06-26 19:27:31 +00:00
2026-08-24 20:04:52 +00:00
2026-08-24 20:04:52 +00:00
2026-07-19 16:50:54 +00:00
2026-06-08 17:02:36 -07:00
2026-08-24 20:04:52 +00:00
2026-08-27 23:10:10 +00:00
2026-04-29 17:22:41 -07:00
2026-08-25 20:51:34 +00:00
2026-08-17 17:10:16 +00:00
2026-08-25 10:17:03 +00:00
2026-08-05 20:44:03 +00:00
2026-08-17 22:44:37 +00:00
2026-04-25 17:09:29 -07:00
2026-08-14 20:30:30 +00:00
2026-08-26 01:20:40 +00:00
2026-04-25 22:00:32 -03:00
2026-08-18 23:05:52 +00:00
2026-08-17 17:14:46 +00:00
2026-08-25 20:51:34 +00:00
2026-07-29 13:53:15 +00:00
2026-05-20 15:57:50 -07:00
2026-08-19 02:45:45 +00:00
2026-08-19 02:45:45 +00:00
2026-08-21 19:23:26 +00:00
2026-08-25 17:17:01 +00:00
2026-08-17 22:44:37 +00:00
2026-08-19 02:45:45 +00:00
2026-08-14 20:59:34 +00:00
2026-08-20 07:25:40 +00:00
2026-08-25 15:55:35 +00:00
2026-06-18 15:06:23 -07:00
2026-08-17 17:10:16 +00:00
2026-07-20 15:44:37 +00:00
2026-08-25 21:03:11 +00:00
2026-08-16 05:59:34 +00:00
2026-08-25 20:51:34 +00:00
2026-06-10 11:24:29 -07:00
2026-08-25 20:51:34 +00:00
2026-08-21 06:08:26 +00:00
2026-08-14 20:38:52 +00:00
2026-08-14 20:38:52 +00:00
2026-08-01 17:43:03 +00:00
2026-08-22 05:54:43 +00:00
2026-05-10 20:42:11 +00:00
2026-08-24 02:46:56 +00:00
2026-08-24 02:46:56 +00:00
2026-08-24 23:06:06 +00:00
2026-08-25 20:56:03 +00:00
2026-08-25 22:05:48 +00:00
2026-08-25 22:05:48 +00:00
2026-08-25 12:20:41 +00:00
2026-08-25 12:20:41 +00:00
2026-04-17 08:39:37 -07:00
2026-06-05 17:23:45 -07:00
2026-08-13 00:30:08 +00:00
2026-06-10 17:55:49 -07:00
2026-07-29 14:01:31 +00:00
2026-05-26 20:59:47 -07:00
2026-08-27 04:51:46 +00:00
2026-05-08 07:56:13 -07:00
2026-08-20 07:58:28 +00:00
2026-08-04 19:05:45 +00:00
2026-08-15 17:30:13 +00:00
2026-08-25 20:51:34 +00:00
2026-07-06 16:33:13 -04:00
2026-08-20 07:25:40 +00:00
2026-08-25 20:51:34 +00:00
2026-07-08 12:17:58 -04:00
2026-08-25 20:51:34 +00:00
2026-04-25 17:09:29 -07:00
2026-06-12 09:26:08 -07:00
2026-06-12 09:26:08 -07:00
2026-07-28 19:58:25 +00:00
2026-03-28 11:23:07 -06:00
2026-07-29 14:01:31 +00:00
2026-08-26 21:52:56 +00:00
2026-06-11 18:16:39 -07:00
2026-06-22 04:25:07 -07:00
2026-06-22 04:25:07 -07:00
2026-07-29 14:01:31 +00:00