Teknium
9b55365f6f
fix(gateway,cron): close ephemeral agents + reap stale aux clients (salvage #13979 ) ( #16598 )
...
* fix: clean gateway auxiliary client caches on teardown
* fix(gateway): recover from stale pid files and close cron agents
Two issues were keeping the gateway from surviving long runs:
1. `_cleanup_invalid_pid_path` delegated to `remove_pid_file`, which
refuses to unlink when the file's pid differs from our own. That
safety check exists for the --replace atexit handoff, but it also
applied to stale-record cleanup, so after a crashy exit the pid
file was orphaned: `write_pid_file()`'s O_EXCL create then failed
with `FileExistsError`, and systemd looped on "PID file race lost
to another gateway instance". Unlink unconditionally from this
helper since the caller has already verified the record is dead.
2. The cron scheduler never closed the ephemeral `AIAgent` it creates
per tick, and never swept the process-global auxiliary-client
cache. Over days of 10-minute ticks this leaked subprocesses and
async httpx transports until the gateway hit EMFILE. Release the
agent and call `cleanup_stale_async_clients()` in `run_job`'s
outer `finally`, matching the gateway's own per-turn cleanup.
* chore(release): map bloodcarter@gmail.com -> bloodcarter
---------
Co-authored-by: bloodcarter <bloodcarter@gmail.com >
2026-04-27 07:41:42 -07:00
..
2026-02-26 03:20:08 +03:00
2026-04-24 03:33:29 -07:00
2026-04-20 05:15:54 -07:00
2026-04-26 08:45:44 -07:00
2026-03-29 21:29:13 -07:00
2026-04-10 16:51:44 -07:00
2026-04-21 00:50:58 -07:00
2026-04-20 04:16:13 -07:00
2026-04-12 18:03:16 -07:00
2026-04-25 18:40:35 -07:00
2026-04-07 03:28:44 -07:00
2026-04-24 15:22:19 -07:00
2026-04-11 02:03:20 -07:00
2026-04-24 05:35:43 -07:00
2026-04-14 16:56:49 -07:00
2026-04-16 06:31:23 -07:00
2026-04-15 15:09:23 -07:00
2026-04-10 03:52:00 -07:00
2026-04-24 16:04:37 -07:00
2026-04-26 18:21:29 -07:00
2026-04-19 01:48:42 -07:00
2026-04-26 12:29:02 -07:00
2026-04-12 03:03:07 -07:00
2026-04-24 03:10:52 -07:00
2026-04-23 19:38:33 -05:00
2026-04-24 02:55:43 -07:00
2026-04-24 02:55:43 -07:00
2026-04-24 02:55:43 -07:00
2026-04-16 06:48:33 -07:00
2026-04-24 15:20:05 -07:00
2026-04-22 11:59:39 -07:00
2026-04-10 03:44:43 -07:00
2026-04-17 19:26:53 -07:00
2026-04-24 03:04:42 -07:00
2026-04-17 04:08:42 -07:00
2026-04-17 04:59:03 -07:00
2026-04-17 05:48:26 -07:00
2026-03-09 02:20:57 -07:00
2026-04-09 23:25:27 -07:00
2026-04-19 18:12:55 -07:00
2026-04-10 05:19:26 -07:00
2026-04-23 15:11:56 -07:00
2026-04-09 02:26:33 -07:00
2026-04-17 06:46:52 -07:00
2026-03-14 09:32:05 -07:00
2026-03-13 08:52:54 -07:00
2026-04-24 03:33:29 -07:00
2026-03-14 14:27:21 +03:00
2026-04-19 11:08:10 -07:00
2026-04-10 03:52:00 -07:00
2026-04-17 04:17:56 -07:00
2026-04-17 20:25:48 -07:00
2026-04-24 03:10:52 -07:00
2026-03-23 06:50:09 -07:00
2026-04-11 13:59:52 -07:00
2026-04-26 18:33:35 -07:00
2026-04-20 00:57:53 -07:00
2026-04-03 13:16:26 -07:00
2026-04-16 05:53:18 -07:00
2026-04-27 06:41:11 -07:00
2026-03-17 01:47:34 -07:00
2026-04-10 21:16:56 -07:00
2026-04-19 18:12:55 -07:00
2026-04-14 14:22:11 -07:00
2026-04-17 19:04:11 -07:00
2026-04-17 19:04:11 -07:00
2026-04-12 13:05:56 -07:00
2026-04-22 18:06:22 -07:00
2026-04-08 20:01:06 -07:00
2026-04-27 07:41:42 -07:00
2026-04-17 01:05:09 -07:00
2026-04-22 16:23:21 -07:00
2026-04-15 17:54:16 -07:00
2026-04-21 01:33:10 -07:00
2026-03-15 03:50:45 -07:00
2026-04-17 04:03:02 +05:30
2026-04-16 20:43:41 -07:00
2026-04-26 21:50:28 -07:00
2026-04-17 01:05:09 -07:00
2026-04-26 18:20:17 -07:00
2026-02-28 03:38:27 -05:00
2026-04-26 18:51:51 -07:00
2026-04-26 18:31:24 -07:00
2026-04-10 03:07:00 -07:00
2026-04-10 02:58:42 -07:00
2026-03-05 18:39:37 -08:00
2026-04-18 19:32:26 -07:00
2026-04-19 03:03:57 -07:00
2026-04-10 03:44:43 -07:00
2026-04-12 19:06:20 -07:00
2026-04-07 09:58:45 -07:00
2026-04-24 03:02:03 -07:00
2026-04-24 14:31:04 -07:00
2026-04-17 15:31:14 -07:00
2026-04-26 11:55:09 -07:00
2026-04-25 18:01:31 -07:00
2026-04-21 13:33:02 -07:00
2026-04-26 18:21:29 -07:00
2026-04-12 22:32:19 -07:00
2026-04-17 21:17:33 -07:00
2026-04-18 17:40:34 -07:00
2026-04-25 08:21:14 -07:00
2026-03-14 21:19:22 -07:00
2026-03-10 23:34:52 -07:00
2026-04-26 05:47:37 -07:00
2026-04-24 16:04:37 -07:00
2026-03-28 14:25:12 -07:00
2026-04-23 15:07:06 -07:00
2026-04-26 07:15:23 -07:00
2026-04-18 18:53:31 -07:00
2026-03-27 04:03:13 -07:00
2026-04-04 19:05:34 -07:00
2026-04-25 08:21:14 -07:00
2026-04-26 18:39:44 -07:00
2026-04-10 03:01:59 -07:00
2026-04-16 02:26:14 -07:00
2026-04-16 06:31:23 -07:00
2026-04-25 18:47:53 -07:00
2026-04-26 18:49:48 -07:00
2026-04-25 18:01:31 -07:00
2026-04-26 19:01:50 -07:00
2026-04-19 03:03:57 -07:00
2026-03-22 09:33:39 -07:00
2026-04-23 05:15:52 -07:00
2026-04-17 15:18:23 -07:00
2026-04-20 03:10:19 -07:00
2026-04-26 13:02:51 -07:00
2026-04-12 13:05:56 -07:00
2026-04-21 00:54:46 -07:00
2026-04-26 12:51:53 -07:00
2026-04-27 06:41:16 -07:00
2026-04-21 01:33:10 -07:00
2026-04-26 12:35:16 -07:00
2026-04-26 18:25:41 -07:00
2026-04-26 12:23:20 -07:00
2026-04-26 18:33:35 -07:00
2026-04-17 01:05:09 -07:00
2026-03-27 11:33:19 -07:00
2026-03-15 23:04:34 -07:00
2026-04-26 11:56:23 -07:00
2026-04-27 07:41:42 -07:00
2026-04-18 04:17:18 -07:00
2026-04-02 20:54:27 -07:00
2026-03-01 05:28:12 -08:00
2026-04-26 17:26:37 -07:00
2026-04-19 22:46:47 -07:00
2026-04-11 14:43:53 -07:00
2026-04-14 17:08:35 -07:00
2026-04-15 17:54:43 -07:00
2026-04-07 14:08:59 -07:00
2026-04-11 13:59:52 -07:00
2026-04-20 05:10:23 -07:00
2026-04-17 14:27:26 -07:00
2026-04-26 22:00:18 -07:00
2026-04-20 00:10:22 -07:00
2026-03-27 04:03:13 -07:00
2026-04-24 14:31:04 -07:00
2026-04-13 10:50:24 -07:00
2026-04-10 05:34:33 -07:00
2026-04-12 19:06:20 -07:00
2026-03-17 02:49:57 -07:00
2026-04-15 22:35:19 -07:00
2026-04-21 06:23:09 -07:00
2026-04-19 00:09:38 -07:00
2026-03-14 14:27:20 +03:00
2026-03-04 21:34:40 +03:00
2026-04-24 07:55:55 -07:00
2026-04-22 16:23:21 -07:00
2026-04-05 00:28:58 -07:00
2026-04-26 18:39:44 -07:00
2026-04-21 01:56:35 -07:00
2026-04-26 18:33:35 -07:00
2026-04-26 05:52:05 -07:00
2026-04-19 22:36:00 -07:00
2026-04-12 18:05:41 -07:00
2026-04-07 17:27:09 -07:00
2026-04-19 05:18:19 -07:00
2026-03-28 14:33:35 -07:00
2026-04-07 17:27:09 -07:00
2026-04-19 22:45:08 -07:00
2026-04-11 15:22:49 -07:00
2026-04-17 19:03:29 -07:00
2026-04-17 06:50:36 -07:00
2026-04-20 20:49:32 -07:00
2026-04-12 19:20:13 -07:00
2026-04-20 11:56:19 -07:00
2026-03-17 10:44:37 -07:00
2026-04-14 01:43:45 -07:00
2026-04-13 16:32:04 -07:00