Teknium
238b6c1ab9
fix(compression): persist the anti-thrash recovery deadline so gateway agent rebuilds cannot block a session forever
...
The #14694 recovery clock (`_anti_thrash_recovery_deadline`) was a
process-local `time.monotonic()` value zeroed in `bind_session_state()`.
The gateway rebuilds the AIAgent (and its ContextCompressor) on every
cache eviction, so each fresh compressor bound to a durably tripped
session row (#69872 ) re-armed a full 300s window and the half-open probe
never fired — a long messaging conversation above the threshold stayed
blocked permanently.
Persist the deadline as a wall-clock epoch in a new
`sessions.compression_recovery_deadline REAL` column (declarative column
reconciliation; SCHEMA_VERSION 26 -> 27) with
`SessionDB.get/set_compression_recovery_deadline`. The compressor loads it
in `bind_session_state()` and writes it on change only via
`_set_anti_thrash_recovery_deadline()`. A fresh compressor with no stored
deadline still starts a full window blocked (#54923 restart contract); one
that loads an armed deadline resumes that window. Backward clock jumps are
bounded to one window. The 300s window is unchanged.
Minimal salvage of #100185 (the probe-lease/fencing state machine and
model_config-blob storage were not carried).
Refs #100185
Co-authored-by: Komzpa <me@komzpa.net >
2026-09-02 04:14:10 -07:00
..
2026-08-25 01:48:43 +05:30
2026-08-25 14:02:40 -07:00
2026-08-28 23:38:59 -05:00
2026-08-15 13:28:14 -07:00
2026-09-02 00:55:42 -07:00
2026-08-07 10:11:05 -07:00
2026-08-26 10:10:11 -07:00
2026-09-02 00:26:57 -07:00
2026-09-01 21:49:14 -07:00
2026-09-01 23:56:06 -07:00
2026-09-02 00:58:29 -07:00
2026-08-29 18:34:35 -07:00
2026-08-29 18:34:35 -07:00
2026-09-01 23:56:06 -07:00
2026-08-02 10:02:33 -07:00
2026-09-01 16:27:13 +05:30
2026-09-01 08:30:26 -07:00
2026-07-29 11:53:39 -07:00
2026-07-29 11:53:39 -07:00
2026-08-10 10:45:44 -07:00
2026-08-12 19:13:32 -07:00
2026-09-02 00:55:42 -07:00
2026-08-31 09:58:51 -07:00
2026-08-28 04:58:14 -07:00
2026-09-02 13:28:41 +05:30
2026-08-29 18:23:07 -07:00
2026-08-15 03:16:21 -07:00
2026-08-21 21:53:11 +05:30
2026-09-01 15:34:03 -07:00
2026-09-02 04:14:10 -07:00
2026-08-08 23:09:45 +05:30
2026-08-12 18:41:59 -07:00
2026-09-02 04:12:12 -07:00
2026-09-02 00:55:42 -07:00
2026-08-26 10:10:11 -07:00
2026-08-29 18:34:35 -07:00
2026-09-02 00:58:29 -07:00
2026-08-08 12:32:23 -07:00
2026-08-28 15:39:23 -03:00
2026-08-16 22:06:41 -07:00
2026-08-31 10:08:13 -07:00
2026-08-31 10:42:39 -07:00
2026-08-06 03:16:26 +05:30
2026-08-29 08:26:24 -07:00
2026-08-16 22:06:08 -07:00
2026-08-28 04:58:06 -07:00
2026-08-21 15:24:03 -07:00
2026-09-01 00:35:29 +05:30
2026-08-28 06:36:22 -07:00
2026-08-27 21:07:21 +05:30
2026-07-29 15:28:15 -07:00
2026-08-08 14:49:28 -07:00
2026-08-19 16:10:01 -07:00
2026-09-01 16:01:53 -04:00
2026-08-14 02:04:24 +05:30
2026-08-23 18:25:19 -07:00
2026-08-08 05:09:43 -07:00
2026-07-29 11:53:39 -07:00
2026-08-19 22:41:05 -07:00
2026-08-31 09:57:22 -07:00
2026-08-25 03:55:55 -07:00
2026-08-15 01:04:19 -07:00
2026-08-30 20:40:43 -07:00
2026-08-29 12:06:48 +05:30
2026-08-13 23:10:16 +05:30
2026-09-02 03:42:01 -07:00
2026-08-14 03:31:22 +05:30
2026-08-30 05:16:10 -07:00
2026-08-02 15:01:11 -07:00
2026-08-29 19:14:15 -07:00
2026-08-12 16:25:20 -07:00
2026-08-12 18:38:25 -07:00
2026-09-01 02:14:35 -07:00
2026-09-01 12:08:11 -07:00
2026-09-01 07:32:45 -07:00
2026-08-29 11:33:05 +05:30
2026-09-01 02:14:35 -07:00
2026-08-29 12:23:41 +05:30
2026-08-26 10:10:11 -07:00
2026-08-29 20:39:44 +05:30
2026-08-06 22:02:37 -05:00
2026-08-27 03:24:20 -07:00
2026-09-01 12:07:16 -07:00
2026-08-19 08:52:01 -07:00
2026-08-19 08:52:03 -07:00
2026-08-08 23:46:17 -07:00
2026-08-16 01:55:51 -07:00
2026-07-29 10:13:50 -07:00
2026-08-23 19:04:37 -07:00
2026-09-01 16:01:53 -04:00
2026-08-21 13:21:46 +10:00
2026-08-29 13:02:13 +05:30
2026-08-15 23:03:52 -07:00
2026-08-29 08:23:47 -07:00
2026-07-29 12:20:34 -07:00
2026-08-30 01:24:14 -07:00
2026-07-29 15:28:15 -07:00
2026-09-01 07:32:45 -07:00
2026-08-08 15:10:24 +05:30
2026-08-23 18:25:19 -07:00
2026-08-28 05:45:00 -07:00
2026-08-31 10:10:25 -07:00
2026-08-24 20:10:44 -07:00
2026-08-24 20:10:44 -07:00
2026-08-15 00:33:01 -07:00
2026-08-16 22:10:02 -07:00
2026-08-25 15:24:15 -07:00
2026-09-01 23:30:33 -07:00
2026-09-02 00:26:57 -07:00
2026-08-14 21:41:26 -07:00
2026-08-29 11:33:05 +05:30
2026-08-12 19:01:30 -07:00
2026-08-12 19:13:32 -07:00
2026-08-12 19:13:32 -07:00
2026-09-01 16:01:53 -04:00
2026-09-02 13:28:41 +05:30
2026-09-01 03:19:59 +05:30
2026-08-28 03:46:24 -07:00
2026-08-29 08:26:24 -07:00
2026-08-24 03:23:07 -07:00
2026-08-16 00:14:58 -07:00
2026-08-12 01:15:25 -07:00
2026-08-29 12:33:44 +05:30
2026-08-28 05:10:33 -07:00
2026-08-19 16:10:01 -07:00
2026-09-01 10:56:49 -07:00
2026-09-01 10:56:49 -07:00