Teknium
fb9b2c893f
feat(agent): escalate repeated transcript-sanitiser heals with a one-time user notice ( #96870 )
...
Builds the escalation layer on top of HexLab98's heal-log windowing
(salvaged from PR #96916 ):
- Per-session heal counters (heal events + messages healed) tracked by the
repair path in agent_runtime_helpers.py, session totals preserved across
10-minute log windows.
- Threshold escalation: after N heals in a session window (default 3,
configurable via agent.sanitizer_heal_escalation_threshold in
config.yaml, 0 = off) log ONE ERROR carrying session id + heal pattern
(events/messages/window/threshold), then stay quiet.
- ONE-TIME out-of-band user notice queued at the threshold and delivered by
the conversation loop through _emit_warning (status callback -> gateway
status message / CLI print). Never injected into conversation context or
the wire copy: prompt caching, role alternation, and durable history are
untouched. Never re-arms on a new window; scoped per session.
- Counters visible in diagnostics: get_sanitizer_heal_stats() rendered in
the /debug share // hermes debug report, and the config key surfaced in
hermes dump overrides. errors.log carries the ERROR line for `hermes logs
errors`.
2026-08-31 13:11:41 -07:00
..
2026-08-23 17:45:47 -05:00
2026-08-08 04:19:49 -07:00
2026-08-31 13:00:33 -07:00
2026-08-31 10:00:55 -07:00
2026-08-31 10:09:42 -07:00
2026-08-26 00:54:36 -07:00
2026-08-24 15:54:23 +05:30
2026-08-31 10:42:39 -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-08-31 12:46:32 -07:00
2026-08-31 12:58:14 -07:00
2026-08-31 10:02:22 -07:00
2026-08-13 23:43:15 +05:30
2026-08-08 18:11:02 -07:00
2026-08-31 17:20:45 +05:30
2026-08-28 11:54:33 +05:30
2026-08-31 07:28:30 -07:00
2026-08-29 18:01:25 -07:00
2026-08-20 19:56:01 -07:00
2026-08-31 13:11:41 -07:00
2026-08-13 02:38:28 -07:00
2026-08-12 19:13:32 -07:00
2026-08-30 04:53:39 -07:00
2026-08-31 12:08:30 -07:00
2026-08-31 11:29:17 -07:00
2026-08-31 12:36:33 -07:00
2026-08-07 10:11:05 -07:00
2026-08-19 12:41:45 -05:00
2026-08-31 00:56:41 -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-12 17:25:30 -05:00
2026-08-13 22:44:23 +05:30
2026-08-24 03:21:07 -07:00
2026-08-24 03:21:07 -07:00
2026-08-16 01:50:20 -07:00
2026-08-23 17:01:31 -07:00
2026-08-23 06:36:57 -07:00
2026-08-30 01:20:27 -07:00
2026-08-30 01:20:27 -07:00
2026-08-16 12:20:50 +02:00
2026-08-17 16:34:02 -07:00
2026-08-20 04:54:14 -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-14 15:41:38 -05: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-12 19:13:32 -07:00
2026-08-16 06:29:53 -07:00
2026-08-27 13:48:51 -07:00
2026-08-09 22:09:49 -04:00
2026-08-25 10:54:42 +10:00
2026-08-31 07:28:22 -07:00
2026-08-15 23:37:22 -07:00
2026-08-09 22:09:49 -04:00
2026-08-31 09:56:04 -07:00
2026-08-23 19:31:35 -07:00
2026-08-29 18:34:35 -07:00
2026-08-13 23:43:15 +05:30
2026-08-13 23:43:15 +05:30
2026-08-31 10:00:38 -07:00
2026-08-13 02:38:28 -07:00
2026-08-14 21:35:30 -07:00
2026-08-23 18:27:21 -07:00
2026-08-14 22:33:58 -07:00
2026-08-08 19:46:35 -07:00
2026-08-14 21:58:09 -07:00
2026-08-14 21:58:09 -07:00
2026-08-14 21:58:09 -07:00
2026-08-16 11:34:40 -07:00
2026-08-13 02:38:28 -07:00
2026-08-13 18:39:54 +00:00
2026-08-31 10:00:55 -07:00
2026-08-13 18:39:54 +00:00
2026-08-31 10:53:18 -07:00
2026-08-31 10:53:18 -07:00
2026-08-28 12:36:15 -07:00
2026-08-14 21:58:09 -07:00
2026-08-27 07:52:26 -07:00
2026-08-27 07:52:26 -07:00
2026-08-17 02:40:59 -07:00
2026-08-15 01:55:22 -07:00
2026-08-07 19:44:35 +05:30
2026-08-23 19:15:28 -07:00
2026-08-16 23:26:10 -07:00
2026-08-23 13:34:32 +05:30
2026-08-14 21:36:41 -07:00
2026-08-31 12:22:17 -07:00
2026-08-09 22:09:49 -04:00
2026-08-20 11:37:01 +05:30
2026-08-14 21:45:08 -07:00
2026-08-31 10:03:34 -07:00
2026-08-13 11:49:14 -07:00
2026-08-17 15:12:53 -05:00
2026-08-17 16:39:47 -07:00
2026-08-14 13:51:26 -07:00
2026-08-14 13:51:26 -07:00
2026-08-12 18:55:14 -07:00
2026-08-10 17:02:56 -07:00
2026-08-08 12:33:19 -07:00
2026-08-16 20:43:13 -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-08-23 02:55:03 +05:30
2026-08-22 04:02:29 +05:30
2026-08-15 02:22:58 -07:00
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-15 00:36:03 -07:00
2026-08-13 09:36:02 -07:00
2026-08-07 09:44:21 -07:00
2026-08-27 11:26:57 +05:30
2026-08-16 06:26:37 -07:00
2026-08-31 12:36:33 -07:00
2026-08-24 04:01:53 -07:00
2026-08-09 13:43:14 -07:00
2026-08-12 20:02:07 -07:00
2026-08-14 12:02:05 -04:00
2026-08-13 02:38:28 -07:00
2026-08-23 17:43:39 -07:00
2026-08-31 09:56:43 -07:00