Michael Jordan
9ca4ee72ca
feat(agent): make the micro-compaction cadence configurable
...
The on/off switch was the only knob. A pass fired after every completed turn,
absorbed exactly one exchange, and there was no way to ask for less. Since a
pass is also what breaks the prompt-cache prefix, "how often does it run" and
"how often do I pay a cache break" are the same question, and it had no answer.
Add `compression.micro_compact_every_n_turns` (default 1, clamped to >= 1). At 1
the behaviour is what it was; at 5 you get a fifth of the breaks and a fifth of
the reclaim rate. The counter advances per invocation rather than per committed
pass, so a turn that finds nothing to absorb still moves the cadence along and
cannot wedge it, and a bogus 0 or negative degrades to "every turn" instead of
silently disabling compaction.
Also expose `micro_compact_defrag_threshold_tokens`, which has been a hardcoded
attribute on the compressor with no path from config since it was added.
This does not give micro-compaction the prune's reclaim-size gate -- a pass
still commits whatever the single absorbed exchange saved. It makes the break
frequency tunable, which reaches the same end by absorbing less rather than by
waiting for a bigger win. The docs now say that plainly, including that a
reclaim threshold is the obvious follow-up and does not exist yet.
Tests cover the skip-until-due window, the cursor and prefix staying untouched
on skipped turns, the clamp, and that the feature is off unless enabled.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com >
2026-07-31 17:44:19 +05:30
..
2026-07-29 11:53:39 -07:00
2026-07-29 11:33:41 -07:00
2026-07-22 16:51:01 -04:00
2026-07-29 17:51:40 -05:00
2026-07-29 16:21:54 -07:00
2026-07-30 16:45:08 -07:00
2026-07-29 21:30:53 -07:00
2026-07-26 12:54:45 -07:00
2026-07-28 14:47:36 -07:00
2026-07-28 17:34:21 -07:00
2026-07-28 12:11:52 -05:00
2026-07-29 16:49:07 +05:30
2026-07-26 21:13:03 -07:00
2026-07-26 17:49:03 -07:00
2026-07-17 11:37:25 +05:30
2026-07-29 19:48:37 -07:00
2026-07-11 12:28:55 +05:30
2026-07-25 21:44:43 -07:00
2026-07-29 23:16:18 -07:00
2026-06-11 10:49:47 -07:00
2026-07-29 23:16:18 -07:00
2026-05-28 22:26:25 -07:00
2026-07-26 17:46:55 -07:00
2026-07-24 16:01:06 -07:00
2026-07-24 11:45:57 -07:00
2026-07-28 03:54:25 -05:00
2026-07-29 11:53:39 -07:00
2026-07-29 12:11:24 -07:00
2026-07-29 08:42:16 -07:00
2026-07-21 05:27:13 -07:00
2026-07-01 23:51:54 +05:30
2026-07-29 12:11:24 -07:00
2026-06-01 19:51:03 -07:00
2026-07-31 17:44:19 +05:30
2026-07-29 16:44:31 -07:00
2026-07-30 16:34:08 -07:00
2026-07-29 11:53:39 -07:00
2026-07-28 22:41:09 -07:00
2026-07-22 21:17:21 -07:00
2026-07-24 11:45:57 -07:00
2026-07-19 03:02:21 -07:00
2026-07-28 11:52:47 -07:00
2026-07-25 19:27:17 -07:00
2026-07-26 21:22:40 -07:00
2026-07-29 10:59:54 -07:00
2026-06-27 21:30:37 -07:00
2026-07-05 13:42:46 -07:00
2026-06-24 18:56:26 -07:00
2026-07-29 11:53:39 -07:00
2026-06-30 17:29:23 -07:00
2026-07-07 04:09:35 -07:00
2026-07-31 17:26:42 +05:30
2026-07-29 19:48:37 -07:00
2026-07-29 10:32:25 -07:00
2026-07-26 23:41:54 -07:00
2026-07-16 07:19:36 -07:00
2026-07-26 18:10:34 -07:00
2026-07-29 11:53:39 -07:00
2026-07-26 17:50:54 -07:00
2026-07-29 23:16:18 -07:00
2026-07-20 05:38:25 -07:00
2026-06-06 18:22:38 -07:00
2026-07-27 21:10:51 -07:00
2026-07-26 17:46:29 -07:00
2026-07-15 07:39:42 -07:00
2026-07-28 03:52:33 -05:00
2026-07-01 16:25:48 -05:00
2026-07-29 18:13:09 -07:00
2026-07-15 07:39:17 -07:00
2026-07-09 16:13:59 -05:00
2026-07-15 07:39:17 -07:00
2026-06-21 17:06:48 -07:00
2026-07-29 11:53:39 -07:00
2026-07-27 21:10:51 -07:00
2026-07-05 13:42:46 -07:00
2026-07-31 17:26:42 +05:30
2026-06-19 07:46:33 -07:00
2026-07-29 18:15:54 -07:00
2026-07-28 17:34:21 -07:00
2026-07-28 00:53:16 -05:00
2026-06-21 19:05:27 -07:00
2026-07-26 14:14:03 -07:00
2026-06-22 19:16:47 -05:00
2026-07-28 22:40:33 -07:00
2026-07-29 11:53:39 -07:00
2026-07-23 18:11:57 -07:00
2026-07-23 21:07:18 -07:00
2026-07-15 00:10:31 -07:00
2026-06-10 00:24:06 -07:00
2026-07-29 19:48:37 -07:00
2026-07-26 21:22:40 -07:00
2026-07-31 17:26:42 +05:30
2026-07-31 17:26:42 +05:30
2026-07-29 19:48:37 -07:00
2026-06-12 08:51:10 +00:00
2026-06-21 22:43:48 -07:00
2026-07-29 10:13:50 -07:00
2026-07-29 11:53:39 -07:00
2026-07-29 10:14:11 -07:00
2026-07-26 17:46:55 -07:00
2026-07-29 17:51:40 -05:00
2026-07-02 05:10:31 -07:00
2026-06-24 13:48:38 -05:00
2026-07-28 17:34:21 -07:00
2026-07-27 21:10:51 -07:00
2026-07-28 22:42:19 -07:00
2026-07-15 07:39:17 -07:00
2026-07-28 17:34:21 -07:00
2026-07-29 10:53:29 -07:00
2026-06-25 16:40:26 -05:00
2026-07-21 10:09:31 -04:00
2026-07-26 18:06:21 -07:00
2026-06-25 13:52:06 -07:00
2026-07-31 17:26:42 +05:30
2026-07-29 11:53:39 -07:00
2026-07-30 03:39:26 -05:00
2026-07-29 10:14:11 -07:00
2026-07-07 15:15:37 -07:00
2026-06-27 15:59:00 -07:00
2026-07-29 17:13:48 +05:30
2026-07-31 17:26:42 +05:30
2026-06-17 01:04:26 +08:00
2026-07-29 10:14:11 -07:00
2026-05-29 13:24:12 -07:00
2026-07-29 11:53:39 -07:00
2026-05-28 22:26:25 -07:00
2026-07-29 10:53:29 -07:00
2026-07-27 19:19:01 +05:30
2026-07-29 11:53:39 -07:00
2026-07-07 12:36:41 -07:00
2026-07-07 13:29:58 -07:00
2026-07-26 19:30:21 -07:00
2026-07-03 13:44:00 -07:00
2026-07-17 04:53:38 -07:00
2026-07-26 23:34:29 -07:00
2026-07-29 10:59:54 -07:00
2026-07-26 08:43:24 -07:00
2026-06-11 07:51:01 -07:00
2026-07-29 19:48:37 -07:00
2026-07-09 19:57:54 -07:00
2026-07-28 23:16:27 -07:00
2026-07-21 21:00:43 -05:00
2026-07-21 21:00:43 -05:00
2026-07-29 09:33:48 -07:00
2026-07-29 12:11:24 -07:00
2026-07-24 16:00:03 -07:00
2026-07-25 23:05:30 -07:00
2026-06-25 16:40:26 -05:00
2026-07-29 19:48:37 -07:00
2026-05-28 22:26:25 -07:00
2026-07-05 13:42:46 -07:00
2026-06-05 03:20:10 -07:00
2026-07-26 12:54:45 -07:00
2026-07-30 16:34:08 -07:00
2026-07-29 11:53:39 -07:00
2026-07-28 11:53:12 -07:00
2026-07-30 04:53:24 -05:00
2026-07-30 00:51:33 -05:00
2026-07-11 12:28:55 +05:30
2026-07-29 19:48:37 -07:00
2026-07-29 08:24:00 -07:00
2026-07-29 16:21:54 -07:00
2026-07-28 17:34:21 -07:00
2026-07-29 18:43:50 -05:00
2026-07-29 19:48:37 -07:00
2026-07-24 11:45:57 -07:00
2026-07-29 10:14:11 -07:00
2026-07-29 11:53:39 -07:00
2026-06-09 23:21:14 -07:00
2026-07-05 23:00:34 +05:30