Teknium
9ea7fe9938
fix: quitting the CLI no longer spams shutdown-race API errors onto the shell
...
When the TUI exits while the post-turn background review fork is still
mid-request, every further API attempt raises 'cannot schedule new
futures after interpreter shutdown'. The conversation loop treated this
as a retryable API error: un-gated ❌ prints leaked onto the user's
shell AFTER the TUI exited (call #4 , #5 , #6...) and the loop retried a
doomed request until the interpreter froze the thread.
Fix the class, not the site:
- tools/interpreter_shutdown.py: single shared shutdown predicate
(matches both CPython message variants + sys.is_finalizing()).
- cron/scheduler.py, agent/tool_executor.py: existing per-site
predicates now delegate to the shared home (tool_executor previously
matched only the fuller variant).
- agent/conversation_loop.py: inner retry handler recognizes the
shutdown signal and abandons the turn — one log warning, no print,
no traceback, no debug dump, no retry; outer handler gets the same
guard for shutdown errors raised outside the API call.
- The outer handler's bare print() now honors suppress_status_output
(set by the background-review fork) instead of bypassing it.
Refs #55924 #58720 (same class in cron delivery), adjacent to #90683 .
2026-08-23 16:04:41 -07:00
..
2026-08-15 01:04:19 -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-07-29 13:10:23 -07:00
2026-08-10 09:38:28 +05:30
2026-08-16 10:51:11 -07:00
2026-08-07 18:07:19 +05:30
2026-08-16 14:34:30 +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-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-21 16:12:57 +05:30
2026-08-19 19:42:07 -07:00
2026-08-02 16:16:36 -07:00
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-07-29 13:10:23 -07:00
2026-08-04 23:33:39 +05:30
2026-07-29 13:10:23 -07:00
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-13 23:43:54 -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-15 10:22:47 +05:30
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-07-29 13:10:23 -07:00
2026-08-15 00:36:03 -07:00
2026-07-29 13:10:23 -07:00
2026-07-31 23:18:12 -07:00
2026-08-03 22:53:32 +05:30
2026-07-29 13:10:23 -07:00
2026-07-29 13:10:23 -07:00
2026-08-20 11:36:54 +05:30
2026-07-29 13:10:23 -07:00
2026-08-23 16:04:41 -07:00
2026-08-02 22:15:20 +05:30
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-17 03:25:07 -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-21 17:24:22 +05:30
2026-08-14 10:39:25 -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-07-20 02:25:57 -07:00
2026-07-29 15:37:24 -07:00
2026-08-13 10:07:39 -07:00
2026-08-06 02:22:08 +05:30
2026-08-13 02:03:40 -07:00
2026-07-29 13:10:23 -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-07-29 13:10:23 -07:00
2026-07-31 22:33:03 -07:00
2026-08-20 03:15:14 +05:30
2026-07-29 13:10:23 -07:00
2026-08-20 20:20:23 -07:00
2026-08-15 18:15:57 -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-18 16:27:32 -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-22 19:30:10 -07:00
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-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-08-13 03:04:45 -07: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-08 14:18:26 +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