Teknium
ec5835ab8b
fix(compression): persist anti-thrash state across process restarts ( #69872 )
...
The anti-thrash guard (_ineffective_compression_count) was in-memory
only: a fresh compressor bound to a resumed, already-compacted session
started with compression_count=0 and a disarmed guard, so a
near-threshold session could legally re-compact once per process
restart, forever.
Persist the counter through the durable session-state channel,
mirroring the failure-cooldown (#54465 ) and fallback-streak (af7dceaf7 )
pattern:
- hermes_state.py: sessions.compression_ineffective_count column
(declarative reconciliation adds it on existing DBs) +
get/set_compression_ineffective_count accessors.
- context_compressor.py: every strike/clear verdict routes through
_record_ineffective_compression_verdict() which writes through to the
session row (no-change verdicts skip the DB write);
bind_session_state() loads the persisted value; the compression
rotation boundary carries the counter onto the child row;
update_model()'s reset also clears the durable copy; the
ineffective-only fast path in _automatic_compression_blocked() is
removed because the counter is now durable and another agent's clear
must unblock a stale local snapshot.
- conversation_compression.py: _refresh_persisted_compression_guards
re-reads the counter alongside cooldown + fallback streak.
Reset semantics are unchanged: any real provider reading below the
threshold still clears the counter — and now clears it durably too.
Resolves the residual gap identified in #54923 by @lanyusea (the
second-threshold mechanism was superseded by persisting the existing
guard state).
Co-authored-by: lanyusea <lanyusea@gmail.com >
2026-07-23 08:08:48 -07:00
..
2026-07-20 13:43:36 -04:00
2026-07-22 12:02:40 -05:00
2026-07-14 03:23:19 -07:00
2026-07-22 06:59:33 -07:00
2026-07-01 01:36:34 -07:00
2026-06-27 19:14:43 -07:00
2026-07-20 08:47:55 -07:00
2026-07-04 15:16:13 +05:30
2026-07-19 08:25:35 +05:30
2026-07-06 12:46:20 -07:00
2026-07-04 15:44:50 -07:00
2026-07-15 07:47:18 -07:00
2026-06-27 21:22:49 -07:00
2026-07-01 17:00:30 +05:30
2026-07-02 04:51:56 +05:30
2026-07-23 07:34:24 -07:00
2026-07-16 04:23:12 -07:00
2026-06-29 01:27:10 -07:00
2026-07-06 12:46:20 -07:00
2026-07-05 19:23:26 -07:00
2026-07-17 09:08:30 -07:00
2026-07-02 01:09:37 -07:00
2026-07-21 13:54:11 -05:00
2026-07-20 05:49:44 -07:00
2026-07-20 03:27:38 -07:00
2026-07-08 01:51:05 +05:30
2026-07-18 19:38:21 +05:30
2026-07-22 18:08:59 -05:00
2026-07-18 14:30:24 +05:30
2026-07-21 12:20:25 +05:30
2026-07-05 14:00:20 -07:00
2026-07-18 21:20:48 -04:00
2026-06-27 11:43:08 -07:00
2026-07-22 06:57:22 -07:00
2026-07-17 06:49:47 -07:00
2026-07-22 12:02:40 -05:00
2026-07-06 12:46:20 -07:00
2026-07-15 09:47:37 -07:00
2026-07-17 13:44:12 -07:00
2026-07-17 04:46:59 -07:00
2026-06-30 00:59:59 -05:00
2026-07-14 02:19:40 +05:30
2026-07-22 08:11:40 -07:00
2026-07-11 22:59:49 +05:30
2026-07-22 16:58:35 -07:00
2026-07-23 08:08:48 -07:00
2026-07-22 08:13:41 -07:00
2026-07-23 07:26:27 -07:00
2026-07-15 12:28:09 -07:00
2026-07-22 06:56:42 -07:00
2026-07-22 11:19:37 +05:30
2026-07-23 08:08:48 -07:00
2026-07-08 11:56:17 -07:00
2026-07-22 08:10:47 -07:00
2026-07-22 11:46:05 +05:30
2026-07-15 09:47:04 -07:00
2026-07-20 11:58:50 +05:30
2026-07-22 06:57:22 -07:00
2026-07-05 21:42:19 +05:30
2026-06-29 09:18:10 -04:00
2026-07-22 06:56:53 -07:00
2026-07-22 09:10:49 -07:00
2026-07-22 06:56:53 -07:00
2026-07-22 09:10:49 -07:00
2026-07-14 02:19:40 +05:30
2026-07-01 13:36:50 +05:30
2026-07-01 02:43:49 -07:00
2026-06-30 00:19:49 -07:00
2026-07-14 17:09:40 +05:30
2026-07-17 13:08:46 -04:00
2026-07-13 23:20:48 +05:30
2026-07-16 06:14:56 -07:00
2026-07-12 03:00:53 -07:00
2026-07-23 07:33:25 -07:00
2026-07-17 11:37:25 +05:30
2026-07-23 01:28:58 -05:00
2026-07-18 14:30:24 +05:30
2026-07-11 11:07:34 +05:30
2026-07-18 02:31:20 -07:00
2026-07-05 13:42:46 -07:00
2026-07-10 18:32:32 +05:30
2026-07-12 23:30:52 -07:00
2026-07-23 17:57:33 +05:30
2026-07-10 19:14:06 +05:30
2026-07-18 12:28:59 -07:00
2026-07-23 17:38:05 +05:30
2026-07-23 07:25:08 -07:00
2026-07-18 12:54:58 -07:00
2026-07-16 00:18:38 -07:00
2026-07-17 05:45:12 -07:00
2026-07-01 01:02:35 -07:00
2026-07-19 14:58:59 +05:30
2026-07-05 13:44:33 -07:00
2026-07-13 22:26:19 -07:00
2026-07-17 04:54:06 -07:00
2026-07-22 16:51:01 -04:00
2026-07-23 08:08:48 -07:00
2026-07-22 09:14:11 -07:00
2026-07-22 21:18:45 -07:00
2026-07-11 05:59:42 -07:00
2026-06-30 03:20:11 -07:00
2026-07-14 16:47:33 +05:30
2026-07-19 12:21:59 -07:00
2026-06-30 16:56:01 -07:00
2026-06-30 11:54:16 -05:00
2026-07-01 16:25:48 -05:00
2026-06-30 15:16:25 -05:00
2026-07-16 07:57:51 -07:00
2026-07-16 14:34:03 +05:30
2026-07-05 13:42:46 -07:00
2026-07-17 04:55:58 -07:00
2026-07-09 03:21:54 +05:30
2026-07-16 12:48:48 -07:00
2026-07-20 02:25:44 -07:00
2026-07-04 20:59:02 +05:30
2026-07-01 06:02:33 -07:00
2026-07-15 00:11:04 -07:00
2026-06-30 03:39:50 -07:00
2026-06-30 03:39:50 -07:00
2026-07-01 04:07:46 -07:00
2026-06-30 03:27:12 -07:00
2026-07-09 14:08:44 +05:30
2026-07-22 06:57:22 -07:00
2026-07-20 11:05:52 -07:00
2026-07-02 17:05:05 +05:30
2026-07-09 21:10:07 -07:00
2026-07-18 14:30:24 +05:30
2026-06-30 15:41:44 -05:00
2026-07-08 06:18:18 -07:00
2026-07-16 01:13:43 -07:00
2026-07-20 02:25:57 -07:00
2026-07-09 14:08:44 +05:30
2026-07-20 11:10:49 -07:00
2026-07-09 14:35:14 +05:30
2026-07-23 07:25:33 -07:00
2026-07-10 05:41:59 -05:00
2026-07-19 16:32:20 -07:00
2026-07-20 02:25:57 -07:00
2026-07-11 05:41:58 -07:00
2026-06-27 20:04:45 -07:00
2026-07-21 12:11:31 +05:30
2026-07-16 04:32:23 -07:00
2026-07-22 04:39:17 -07:00
2026-07-22 10:00:39 +05:30
2026-07-16 07:28:07 -07:00
2026-06-30 00:59:29 -05:00
2026-07-05 14:48:11 -07:00
2026-07-14 16:41:21 +05:30
2026-07-17 04:52:02 -07:00
2026-07-22 07:00:16 -07:00
2026-07-02 04:51:56 +05:30
2026-07-17 18:31:09 +00:00
2026-07-01 04:55:15 -07:00
2026-07-22 08:11:09 +05:30
2026-07-15 00:10:22 -07:00
2026-07-17 06:49:42 -07:00
2026-07-16 04:32:23 -07:00
2026-07-16 01:07:29 +05:30
2026-07-17 20:55:24 +00:00
2026-07-17 20:55:24 +00:00
2026-06-28 02:44:06 -07:00
2026-07-11 05:41:58 -07:00
2026-07-20 13:04:12 -07:00
2026-07-18 02:08:39 -07:00
2026-07-11 05:41:58 -07:00
2026-07-07 15:12:49 -07:00
2026-07-14 02:59:39 +05:30
2026-07-23 17:57:33 +05:30
2026-07-19 07:27:10 +05:30
2026-07-20 11:42:29 -04:00
2026-07-19 01:09:29 -07:00
2026-07-22 12:02:40 -05:00
2026-07-16 04:23:12 -07:00
2026-07-16 04:23:12 -07:00
2026-07-20 05:38:45 -07:00
2026-07-20 11:42:29 -04:00
2026-07-20 11:42:29 -04:00
2026-07-12 04:32:52 -07:00
2026-06-30 00:59:29 -05:00
2026-07-02 06:07:56 +05:30
2026-07-14 02:59:39 +05:30