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-30 01:20:27 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 15:24:14 -07:00
2026-07-29 13:10:23 -07:00
2026-08-03 22:54:54 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-28 03:46:24 -07:00
2026-07-29 13:10:23 -07:00
2026-08-10 09:38:28 +05:30
2026-08-24 04:47:07 +05:30
2026-08-16 10:51:11 -07:00
2026-08-07 18:07:19 +05:30
2026-08-24 14:58:42 +05:30
2026-07-27 11:53:48 -04:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 15:37:24 -07:00
2026-08-14 21:41:26 -07:00
2026-07-29 13:10:23 -07:00
2026-08-06 17:03:10 +05:30
2026-08-02 23:48:42 +05:30
2026-08-16 10:27:52 -07:00
2026-08-23 18:25:19 -07:00
2026-07-29 13:10:23 -07:00
2026-08-29 19:10:06 -07:00
2026-08-21 16:12:57 +05:30
2026-08-19 19:42:07 -07:00
2026-08-29 22:29:28 +05:30
2026-08-02 21:17:49 +05:30
2026-08-04 11:25:18 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-24 15:30:30 +05:30
2026-07-29 13:10:23 -07:00
2026-08-04 23:33:39 +05:30
2026-07-29 13:10:23 -07:00
2026-08-28 02:47:34 +05:30
2026-07-29 13:10:23 -07:00
2026-08-15 10:22:47 +05:30
2026-07-29 13:10:23 -07:00
2026-08-28 07:51:31 -07:00
2026-08-20 00:16:22 -07:00
2026-08-14 21:39:44 -07:00
2026-07-29 15:37:24 -07:00
2026-07-29 13:10:23 -07:00
2026-08-26 07:16:04 -07:00
2026-08-31 12:36:02 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 14:56:38 +05:30
2026-08-16 01:55:51 -07:00
2026-08-04 11:26:15 +05:30
2026-07-29 13:10:23 -07:00
2026-08-17 13:19:58 +05:30
2026-07-29 13:10:23 -07:00
2026-08-14 21:19:55 -07:00
2026-07-29 13:10:23 -07:00
2026-08-04 17:53:17 +00:00
2026-07-29 13:10:23 -07:00
2026-08-15 13:36:25 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-03 20:43:38 +05:30
2026-07-26 20:59:21 -07:00
2026-08-08 19:17:02 -07:00
2026-07-29 13:10:23 -07:00
2026-08-13 12:31:02 -07:00
2026-08-30 05:16:10 -07:00
2026-08-15 00:36:03 -07:00
2026-07-29 13:10:23 -07:00
2026-08-31 12:22:55 -07:00
2026-08-13 21:38:30 +02:00
2026-08-03 22:53:32 +05:30
2026-08-28 05:17:26 -07:00
2026-08-28 04:58:06 -07:00
2026-08-20 11:36:54 +05:30
2026-08-30 19:46:11 -07:00
2026-08-23 18:27:07 -07:00
2026-07-05 13:42:46 -07:00
2026-08-23 16:04:41 -07:00
2026-08-23 18:25:19 -07:00
2026-07-29 15:37:24 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 15:21:26 -07:00
2026-07-29 13:10:23 -07:00
2026-08-14 21:41:26 -07:00
2026-07-29 13:10:23 -07:00
2026-08-28 07:51:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-21 15:02:29 -07:00
2026-07-29 13:10:23 -07:00
2026-07-31 21:52:36 -07:00
2026-07-29 13:10:23 -07:00
2026-08-30 05:15:54 -07:00
2026-08-21 17:24:22 +05:30
2026-08-30 05:16:10 -07:00
2026-08-30 05:16:10 -07:00
2026-07-29 15:21:26 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-28 19:06:59 +05:30
2026-08-21 00:24:32 -07:00
2026-08-03 10:01:45 +05:30
2026-08-15 01:04:19 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 15:37:24 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 15:37:24 -07:00
2026-08-12 19:15:02 -07:00
2026-07-29 13:10:23 -07:00
2026-08-25 03:55:55 -07:00
2026-07-29 15:37:24 -07:00
2026-08-29 19:13:12 -07:00
2026-08-06 02:22:08 +05:30
2026-08-13 02:03:40 -07:00
2026-08-29 19:13:12 -07:00
2026-07-29 19:48:37 -07:00
2026-08-20 00:03:50 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-03 19:32:50 +05:30
2026-08-25 12:12:08 +05:30
2026-08-25 00:18:35 -07:00
2026-08-30 05:16:02 -07:00
2026-07-29 13:10:23 -07:00
2026-08-29 18:40:51 -07:00
2026-08-31 13:11:41 -07:00
2026-08-23 18:25:19 -07:00
2026-08-02 16:16:36 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-06 03:53:38 +05:30
2026-08-29 06:37:06 -07:00
2026-07-29 13:10:23 -07:00
2026-08-14 22:11:30 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-16 01:55:00 -07:00
2026-07-29 13:10:23 -07:00
2026-08-29 12:45:43 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-08 14:08:44 -07:00
2026-08-30 05:16:10 -07:00
2026-08-25 12:12:08 +05:30
2026-07-11 03:44:02 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-30 05:16:10 -07:00
2026-07-29 13:10:23 -07:00
2026-08-13 21:38:30 +02:00
2026-08-10 10:01:44 +05:30
2026-07-29 13:10:23 -07:00
2026-08-15 00:34:29 -07:00
2026-08-14 21:20:03 -07:00
2026-07-29 13:10:23 -07:00
2026-08-18 02:12:13 -07:00
2026-07-29 13:10:23 -07:00
2026-08-15 23:03:52 -07:00
2026-08-29 11:33:05 +05:30
2026-07-29 13:10:23 -07:00
2026-08-03 20:43:38 +05:30
2026-08-16 10:34:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00