Neil
ae2eeff55d
perf(relay): index PTY source-credit send spans ( #17490 )
...
* perf(relay): index PTY source-credit send spans
* perf(relay): maintain PTY source-credit retention totals
* test(relay): pin PTY send-cursor rebase across ACK reclaim
Cover the Math.max clamp branch in reclaimCreditedSpans where reclaim
removes spans at or past the send cursor, and widen the seeded fuzz case
to 20 spans per seed so the cursor actually traverses spans; assert the
cursor never overshoots the span containing sentEndSu.
* refactor(relay): drop dead retained-total helpers and pin retention counters
The incremental PtySourceCreditRetention counters replaced the recompute-from-records
helpers; delete the now-unreferenced exports and recompute the totals from the live
records inside the ledger tests so the counters have an independent oracle.
* test(relay): bound send-span reads instead of pinning the read pattern
Address review feedback on the send-span cursor coverage:
- replace the exact indexed-read pin and the tautological naive-visit
assertion with a linear bound that still fails on the old Array.find path
- drop the per-run bench console.log
- assert retention totals immediately after rotate(), the only path that
removes and re-adds a record in one call
Also count the replacement delivery in retention as it enters the delivery
map so the "in deliveries <=> counted" invariant never has a hole.
2026-08-31 02:41:15 -07:00
..
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-08-13 21:51:55 -07:00
2026-07-23 18:35:31 -07:00
2026-08-28 04:17:45 -07:00
2026-08-27 12:32:29 -07:00
2026-08-24 20:45:38 -07:00
2026-08-01 14:27:16 -07:00
2026-08-01 14:27:16 -07:00
2026-08-17 11:10:38 -07:00
2026-08-30 21:20:53 -07:00
2026-08-28 04:17:45 -07:00
2026-07-27 23:50:25 -07:00
2026-08-27 12:32:29 -07:00
2026-08-28 04:17:45 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-11 18:19:43 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-08-10 15:52:59 -07:00
2026-07-23 18:35:31 -07:00
2026-06-29 22:38:29 -07:00
2026-06-29 22:38:29 -07:00
2026-08-10 01:17:14 -07:00
2026-08-29 20:15:10 -07:00
2026-08-05 02:56:07 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-11 18:19:43 -07:00
2026-08-05 10:30:04 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-10 05:56:39 -07:00
2026-08-10 01:17:14 -07:00
2026-08-18 12:37:39 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-29 20:15:10 -07:00
2026-08-16 13:45:54 -07:00
2026-08-07 23:02:29 -07:00
2026-08-10 00:59:51 -07:00
2026-08-10 00:59:51 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-10 01:17:14 -07:00
2026-08-29 20:15:10 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-27 23:27:39 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-08-19 16:45:42 -07:00
2026-07-23 18:35:31 -07:00
2026-06-29 22:38:29 -07:00
2026-06-19 17:14:55 -07:00
2026-08-18 13:32:48 -07:00
2026-08-10 17:25:26 -07:00
2026-08-22 13:06:38 -07:00
2026-08-22 13:06:38 -07:00
2026-07-16 13:26:15 -07:00
2026-07-16 13:26:15 -07:00
2026-08-18 13:32:48 -07:00
2026-08-01 14:27:16 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-08-05 17:11:28 -07:00
2026-08-27 23:27:39 -07:00
2026-08-10 17:25:26 -07:00
2026-08-18 13:32:48 -07:00
2026-07-08 12:01:06 -07:00
2026-07-08 12:01:06 -07:00
2026-08-30 23:04:08 -07:00
2026-08-30 23:04:08 -07:00
2026-08-15 18:25:37 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-06-15 22:13:46 -07:00
2026-06-29 22:38:29 -07:00
2026-08-21 14:44:08 -07:00
2026-08-21 14:44:08 -07:00
2026-07-16 18:21:08 -07:00
2026-08-01 21:59:41 -07:00
2026-08-01 21:59:41 -07:00
2026-08-25 22:19:04 -07:00
2026-08-11 02:18:29 -07:00
2026-08-11 02:18:29 -07:00
2026-08-11 02:18:29 -07:00
2026-07-10 19:10:01 -07:00
2026-07-10 19:10:01 -07:00
2026-08-29 20:19:09 -07:00
2026-06-19 17:14:55 -07:00
2026-08-29 20:19:09 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-15 00:54:20 -07:00
2026-08-21 14:44:08 -07:00
2026-07-10 18:19:36 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-25 22:19:04 -07:00
2026-07-13 12:42:55 -07:00
2026-06-16 18:10:01 -07:00
2026-08-13 22:48:24 -07:00
2026-08-29 20:19:09 -07:00
2026-08-29 20:19:09 -07:00
2026-08-24 12:11:55 -07:00
2026-07-12 21:04:13 -07:00
2026-08-30 14:19:05 -07:00
2026-08-30 23:04:51 -07:00
2026-07-11 01:30:19 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-20 14:50:12 -07:00
2026-08-29 20:19:09 -07:00
2026-08-24 12:11:55 -07:00
2026-08-15 00:54:20 -07:00
2026-06-29 22:38:29 -07:00
2026-08-10 20:25:48 -07:00
2026-08-11 18:19:43 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-05-31 01:50:16 -07:00
2026-07-10 18:19:36 -07:00
2026-08-30 16:36:14 -07:00
2026-07-15 15:24:15 -07:00
2026-07-15 15:24:15 -07:00
2026-08-30 16:36:14 -07:00
2026-08-22 23:00:31 -07:00
2026-08-22 23:00:31 -07:00
2026-07-10 18:19:36 -07:00
2026-08-15 00:54:20 -07:00
2026-08-13 22:48:24 -07:00
2026-08-15 00:54:20 -07:00
2026-08-29 20:19:09 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-07 09:55:54 -07:00
2026-08-05 14:46:00 -07:00
2026-07-23 18:35:31 -07:00
2026-08-13 22:48:24 -07:00
2026-07-20 14:50:12 -07:00
2026-07-20 14:50:12 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-07-23 18:35:31 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 20:19:18 -07:00
2026-07-29 20:19:18 -07:00
2026-07-27 01:14:33 -07:00
2026-08-11 21:16:36 -07:00
2026-08-11 21:16:36 -07:00
2026-08-09 16:45:27 -07:00
2026-08-11 22:13:35 -07:00
2026-05-14 16:06:23 -07:00
2026-05-14 16:06:23 -07:00
2026-08-18 18:55:56 -07:00
2026-08-10 20:49:21 -07:00
2026-08-07 21:59:24 -07:00
2026-08-07 21:59:24 -07:00
2026-07-29 17:03:15 -07:00
2026-07-23 18:35:31 -07:00
2026-08-10 01:17:14 -07:00
2026-08-10 01:17:14 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-15 00:54:20 -07:00
2026-08-30 14:49:18 -07:00
2026-08-31 01:28:29 -07:00
2026-08-28 04:17:45 -07:00
2026-08-30 14:49:18 -07:00
2026-08-15 00:54:20 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-30 14:49:18 -07:00
2026-08-31 01:28:29 -07:00
2026-07-27 16:40:59 -07:00
2026-08-19 22:37:42 -07:00
2026-08-19 22:37:42 -07:00
2026-08-30 18:13:36 -07:00
2026-08-21 21:54:57 -07:00
2026-07-24 00:26:07 -07:00
2026-07-29 17:03:15 -07:00
2026-07-30 18:42:10 -07:00
2026-08-31 02:41:15 -07:00
2026-08-31 02:41:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-31 02:41:15 -07:00
2026-08-31 02:41:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-31 02:41:15 -07:00
2026-07-29 17:03:15 -07:00
2026-08-28 04:17:45 -07:00
2026-07-14 15:23:06 -07:00
2026-07-14 15:23:06 -07:00
2026-08-24 19:55:57 -07:00
2026-08-30 12:36:23 -07:00
2026-08-30 12:36:23 -07:00
2026-07-08 13:06:39 -07:00
2026-07-08 13:06:39 -07:00
2026-08-01 22:21:37 -07:00
2026-08-01 14:27:16 -07:00
2026-08-02 00:58:10 -07:00
2026-08-01 15:45:45 -07:00
2026-08-01 15:45:45 -07:00
2026-08-24 19:55:57 -07:00
2026-07-29 17:03:15 -07:00
2026-08-01 14:24:31 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-01 14:27:16 -07:00
2026-08-24 19:55:57 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-31 05:44:53 -07:00
2026-07-31 05:44:53 -07:00
2026-07-31 05:44:53 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-29 17:03:15 -07:00
2026-07-30 18:42:10 -07:00
2026-07-30 18:42:10 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-08-24 19:55:57 -07:00
2026-06-29 22:38:29 -07:00
2026-08-11 18:19:43 -07:00
2026-08-10 01:17:14 -07:00
2026-08-01 14:27:16 -07:00
2026-08-01 02:56:52 -07:00
2026-07-15 15:23:35 -07:00
2026-08-01 02:56:52 -07:00
2026-07-13 05:32:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-15 15:23:35 -07:00
2026-07-23 18:35:31 -07:00
2026-07-15 15:23:35 -07:00
2026-08-24 19:55:57 -07:00
2026-08-07 23:02:29 -07:00
2026-08-07 23:02:29 -07:00
2026-08-07 23:02:29 -07:00
2026-07-29 11:31:35 -07:00
2026-07-29 11:31:35 -07:00
2026-07-08 13:59:42 -07:00
2026-07-08 13:59:42 -07:00
2026-07-26 12:50:05 -07:00
2026-07-26 12:50:05 -07:00
2026-08-28 04:17:45 -07:00
2026-08-28 04:17:45 -07:00
2026-07-10 12:56:17 -07:00
2026-07-10 12:56:17 -07:00
2026-08-17 00:55:04 -07:00
2026-08-21 13:15:46 -07:00
2026-08-21 13:15:46 -07:00
2026-08-05 02:56:07 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-08-05 10:30:04 -07:00
2026-07-30 18:42:10 -07:00
2026-07-31 05:44:53 -07:00
2026-07-16 21:32:13 -07:00
2026-07-20 14:50:12 -07:00
2026-07-20 14:50:12 -07:00
2026-08-30 14:49:18 -07:00
2026-08-17 22:39:02 -07:00
2026-08-18 03:12:47 -07:00
2026-08-18 03:12:47 -07:00
2026-08-18 18:55:56 -07:00
2026-07-05 23:56:37 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-27 18:50:52 -07:00
2026-07-27 18:50:52 -07:00
2026-08-29 20:06:41 -07:00
2026-07-10 00:19:45 -07:00
2026-08-01 14:27:16 -07:00
2026-08-25 15:36:51 -07:00
2026-07-23 18:35:31 -07:00
2026-07-23 18:35:31 -07:00
2026-07-25 02:30:59 -07:00
2026-08-09 16:45:27 -07:00