Affaan Mustafa
f9e8287346
fix: observer memory explosion with throttling, re-entrancy guard, and tail sampling ( #536 )
...
Three fixes for the positive feedback loop causing runaway memory usage:
1. SIGUSR1 throttling in observe.sh: Signal observer only every 20
observations (configurable via ECC_OBSERVER_SIGNAL_EVERY_N) instead
of on every tool call. Uses a counter file to track invocations.
2. Re-entrancy guard in observer-loop.sh on_usr1(): ANALYZING flag
prevents parallel Claude analysis processes from spawning when
signals arrive while analysis is already running.
3. Cooldown + tail-based sampling in observer-loop.sh:
- 60s cooldown between analyses (ECC_OBSERVER_ANALYSIS_COOLDOWN)
- Only last 500 lines sent to LLM (ECC_OBSERVER_MAX_ANALYSIS_LINES)
instead of the entire observations file
Closes #521
2026-03-16 13:47:25 -07:00
..
2026-03-04 14:48:06 -08:00
2026-03-04 14:48:06 -08:00
2026-03-04 14:48:06 -08:00
2026-03-16 13:35:31 -07:00
2026-03-10 20:53:39 -07:00
2026-02-23 19:00:57 +03:00
2026-02-27 05:50:23 -08:00
2026-03-04 14:48:06 -08:00
2026-02-23 19:00:57 +03:00
2026-03-10 19:23:00 -07:00
2026-03-10 21:13:55 -07:00
2026-03-12 14:49:05 -07:00
2026-03-16 13:35:50 -07:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-10 20:53:39 -07:00
2026-03-16 13:35:23 -07:00
2026-02-27 05:50:23 -08:00
2026-02-23 19:00:57 +03:00
2026-03-04 14:48:06 -08:00
2026-03-04 14:48:06 -08:00
2026-03-16 13:47:25 -07:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-03 12:32:35 -08:00
2026-03-14 12:55:25 -07:00
2026-03-10 21:07:36 -07:00
2026-03-16 13:35:44 -07:00
2026-02-23 19:00:57 +03:00
2026-03-12 14:49:05 -07:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-12 15:34:05 -07:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-10 21:07:36 -07:00
2026-03-04 14:48:06 -08:00
2026-03-04 14:48:06 -08:00
2026-03-14 12:55:25 -07:00
2026-03-14 12:55:25 -07:00
2026-02-24 14:39:25 +09:00
2026-02-23 19:00:57 +03:00
2026-03-03 12:32:35 -08:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-10 21:13:55 -07:00
2026-02-27 05:50:23 -08:00
2026-02-27 05:50:23 -08:00
2026-03-09 22:49:43 -07:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-10 20:53:39 -07:00
2026-03-10 21:25:52 -07:00
2026-03-10 21:25:52 -07:00
2026-03-10 21:25:52 -07:00
2026-03-12 23:53:23 -07:00
2026-03-16 13:35:23 -07:00
2026-03-16 13:35:23 -07:00
2026-03-16 13:35:23 -07:00
2026-03-16 13:35:23 -07:00
2026-02-24 14:39:25 +09:00
2026-03-10 21:07:36 -07:00
2026-02-27 05:50:23 -08:00
2026-03-16 13:35:11 -07:00
2026-03-04 14:48:06 -08:00
2026-02-25 07:20:42 -08:00
2026-03-10 20:42:54 -07:00
2026-03-10 20:42:54 -07:00
2026-03-10 20:42:54 -07:00
2026-03-04 14:48:06 -08:00
2026-03-03 12:32:35 -08:00
2026-03-10 21:07:36 -07:00
2026-02-23 19:00:57 +03:00
2026-03-12 23:40:02 -07:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-10 21:07:36 -07:00
2026-03-04 14:48:06 -08:00
2026-02-23 19:00:57 +03:00
2026-03-10 21:13:55 -07:00
2026-03-16 13:34:25 -07:00
2026-03-16 13:34:25 -07:00
2026-02-28 10:06:43 -08:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-10 20:15:38 -07:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-02-23 19:00:57 +03:00
2026-03-12 14:49:05 -07:00
2026-02-23 19:00:57 +03:00
2026-02-24 14:39:25 +09:00
2026-02-23 19:00:57 +03:00
2026-02-17 17:04:31 +02:00
2026-02-23 19:00:57 +03:00
2026-03-16 13:35:38 -07:00
2026-02-23 19:00:57 +03:00
2026-03-12 14:49:05 -07:00
2026-03-12 23:52:46 -07:00
2026-02-20 16:25:23 +08:00
2026-03-12 15:07:57 -07:00