Teknium
98eb6ebdef
fix(gateway): rescued FIFO orphan runs exactly once, chain stays in order ( #99882 )
...
Follow-up to the salvaged #99912 rescue. The original helper left the
rescued orphan IN the adapter slot while the caller also swapped it in as
the current turn, so the post-turn _dequeue_pending_event ran the same
follow-up a second time (live repro: TURNS=['Sent','C','C','D']). The
helper now pops the oldest orphan and returns it to run as this turn,
stages the NEXT orphan in the slot so the drain continues the chain in
arrival order, and the call site parks the incoming message behind the
chain via _enqueue_fifo (slot when free, overflow otherwise) instead of
always appending to overflow. The rescued event's own source drives the
turn so reply anchors point at the message actually being answered.
Tests: contract updated for the new return type; added the 2-orphan chain
case and the single-orphan-then-new-message slot case (both fail against
the original helper shape).
2026-09-02 00:34:17 -07:00
..
2026-08-23 17:45:47 -05:00
2026-09-02 00:26:57 -07:00
2026-08-31 10:00:55 -07:00
2026-09-01 22:14:33 -07:00
2026-08-26 00:54:36 -07:00
2026-08-24 15:54:23 +05:30
2026-09-01 21:49:14 -07:00
2026-08-26 07:28:10 -07:00
2026-08-24 21:21:34 -07:00
2026-08-31 01:04:11 -07:00
2026-09-02 00:34:17 -07:00
2026-09-02 00:07:17 -07:00
2026-09-01 10:51:52 -07:00
2026-09-01 14:11:55 +05:30
2026-08-28 11:54:33 +05:30
2026-09-01 22:17:08 -07:00
2026-08-29 18:01:25 -07:00
2026-08-20 19:56:01 -07:00
2026-09-02 00:26:57 -07:00
2026-09-02 00:06:01 -07:00
2026-08-30 04:53:39 -07:00
2026-09-01 23:58:51 -07:00
2026-09-02 00:03:55 -07:00
2026-09-01 23:56:58 -07:00
2026-08-19 12:41:45 -05:00
2026-09-01 10:56:49 -07:00
2026-09-01 09:28:01 -07:00
2026-08-24 15:37:22 +05:30
2026-08-31 09:56:43 -07:00
2026-08-31 12:36:33 -07:00
2026-08-24 03:21:07 -07:00
2026-08-24 03:21:07 -07:00
2026-08-23 17:01:31 -07:00
2026-08-31 20:43:36 -05:00
2026-08-30 01:20:27 -07:00
2026-08-30 01:20:27 -07:00
2026-08-17 16:34:02 -07:00
2026-08-20 04:54:14 -07:00
2026-09-01 08:36:03 -07:00
2026-08-26 18:23:33 -07:00
2026-08-20 19:56:28 -07:00
2026-08-26 18:23:33 -07:00
2026-08-31 10:05:13 -07:00
2026-08-28 05:45:00 -07:00
2026-08-28 12:20:40 -07:00
2026-09-01 00:35:29 +05:30
2026-08-31 09:56:43 -07:00
2026-08-27 13:48:51 -07:00
2026-08-25 10:54:42 +10:00
2026-08-31 07:28:22 -07:00
2026-08-31 09:56:04 -07:00
2026-09-01 22:14:33 -07:00
2026-08-29 18:34:35 -07:00
2026-08-31 10:00:38 -07:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-08-23 18:27:21 -07:00
2026-09-01 09:28:01 -07:00
2026-09-01 09:28:01 -07:00
2026-08-31 10:00:55 -07:00
2026-08-31 10:53:18 -07:00
2026-08-31 10:53:18 -07:00
2026-09-01 11:25:10 -07:00
2026-08-28 12:36:15 -07:00
2026-08-27 07:52:26 -07:00
2026-08-27 07:52:26 -07:00
2026-09-01 10:52:42 -07:00
2026-08-23 13:34:32 +05:30
2026-08-29 18:23:07 -07:00
2026-08-31 12:22:17 -07:00
2026-08-20 11:37:01 +05:30
2026-08-31 10:03:34 -07:00
2026-08-17 15:12:53 -05:00
2026-08-17 16:39:47 -07:00
2026-08-31 05:56:18 -07:00
2026-08-31 11:23:48 -07:00
2026-08-31 09:56:04 -07:00
2026-08-25 23:15:49 -07:00
2026-08-31 09:56:54 -07:00
2026-08-21 21:53:11 +05:30
2026-08-31 09:56:43 -07:00
2026-09-01 22:42:19 -05:00
2026-08-22 04:02:29 +05:30
2026-08-22 14:33:20 +05:30
2026-08-23 18:25:12 -07:00
2026-08-23 20:01:41 -07:00
2026-08-23 18:25:12 -07:00
2026-08-27 07:52:26 -07:00
2026-08-31 09:58:40 -07:00
2026-08-29 18:23:07 -07:00
2026-08-27 11:26:57 +05:30
2026-09-01 22:58:48 -05:00
2026-08-24 04:01:53 -07:00
2026-08-23 17:43:39 -07:00
2026-08-31 09:56:43 -07:00