JabberELF
18a9467fca
fix(tui): prevent killpg suicide during MCP shutdown
...
Root cause: gateway spawns LSP servers (jdtls/pyright/yaml-ls) and
slash_worker without start_new_session=True, so they inherit the
gateway process group (= TUI parent PID). When mcp_tool
_snapshot_child_pids() races with these spawns during stdio MCP
server startup, non-MCP children leak into _stdio_pgids with the
TUI parent PGID. shutdown_mcp_servers() then killpg(tui_parent_pid,
SIGTERM), killing the TUI itself.
Evidence: tui_gateway_crash.log shows recurring SIGTERM stacks:
shutdown_mcp_servers -> _kill_orphaned_mcp_children ->
_send_signal -> killpg(pgid, sig) -> SIGTERM received
Fix (3 layers):
1. agent/lsp/client.py: add start_new_session=True to LSP server
spawn so each LSP server gets its own process group/session.
2. tui_gateway/server.py: same fix for slash_worker spawn, the
symmetric root-cause patch so no gateway direct child shares
the TUI parent pgid.
3. tools/mcp_tool.py: add _filter_mcp_children() defense-in-depth
that drops non-MCP children (slash_worker, jdtls/eclipse LSP)
from the PID delta before they can poison _stdio_pgids.
2026-07-01 04:54:46 -07:00
..
2026-06-21 13:33:48 -07:00
2026-07-01 17:17:01 +05:30
2026-06-20 11:27:12 -07:00
2026-06-30 15:51:17 -07:00
2026-06-29 01:26:24 -07:00
2026-06-29 01:26:24 -07:00
2026-06-29 01:26:24 -07:00
2026-06-29 01:26:24 -07:00
2026-06-25 22:02:22 -07:00
2026-07-01 13:43:58 +05:30
2026-06-28 12:25:15 -05:00
2026-06-28 13:49:08 -07:00
2026-06-29 02:24:57 -07:00
2026-06-28 02:42:01 -07:00
2026-06-28 14:25:10 -07:00
2026-06-27 15:59:00 -07:00
2026-06-28 13:49:08 -07:00
2026-06-28 12:14:21 -05:00
2026-06-21 15:23:47 -07:00
2026-07-01 13:56:49 +05:30
2026-06-29 10:00:49 -07:00
2026-06-28 02:42:01 -07:00
2026-06-21 07:26:18 -07:00
2026-06-25 22:02:22 -07:00
2026-06-21 17:46:38 +05:30
2026-06-28 04:13:19 -07:00
2026-06-19 06:31:08 -07:00
2026-07-01 04:08:37 -07:00
2026-06-18 12:48:36 +10:00
2026-06-22 06:42:30 -07:00
2026-06-22 18:48:07 -05:00
2026-06-29 15:32:20 +10:00
2026-06-27 04:57:15 +05:30
2026-06-30 17:29:03 -07:00
2026-07-01 00:13:36 -07:00
2026-06-26 01:11:11 -07:00
2026-06-21 13:28:04 +05:30
2026-07-01 14:23:01 +05:30
2026-06-28 14:33:03 -07:00
2026-06-16 14:30:11 -04:00
2026-06-30 03:07:40 -07:00
2026-06-30 03:16:22 -07:00
2026-07-01 00:45:31 -07:00
2026-06-29 11:01:08 +10:00
2026-06-24 15:23:23 +10:00
2026-06-29 11:01:08 +10:00
2026-06-26 19:15:18 -07:00
2026-06-18 09:09:21 +10:00
2026-07-01 14:37:22 +05:30
2026-06-17 13:45:25 -07:00
2026-07-01 02:44:53 -07:00
2026-07-01 01:00:31 -07:00
2026-06-27 19:29:06 -07:00
2026-06-23 03:17:47 +05:30
2026-06-30 02:50:24 -07:00
2026-06-27 04:01:12 +05:30
2026-06-26 20:45:32 +05:30
2026-07-01 02:13:13 -07:00
2026-06-30 17:32:28 -07:00
2026-07-01 03:03:05 -07:00
2026-07-01 14:37:22 +05:30
2026-06-18 22:13:07 -07:00
2026-06-19 16:59:54 -07:00
2026-06-25 12:38:33 -07:00
2026-06-21 12:02:30 -07:00
2026-06-30 14:29:42 -07:00
2026-06-25 09:20:13 +10:00
2026-06-25 13:52:06 -07:00
2026-07-01 14:37:22 +05:30
2026-07-01 15:42:19 +05:30
2026-06-30 04:23:27 -05:00
2026-06-21 16:02:56 +05:30
2026-06-27 04:39:54 -07:00
2026-06-19 11:46:25 -07:00
2026-06-30 16:56:15 -07:00
2026-06-27 04:59:23 +05:30
2026-06-28 04:47:39 -07:00
2026-06-24 00:52:18 +05:30
2026-06-25 23:30:41 +05:30
2026-07-01 04:54:46 -07:00
2026-06-18 10:19:33 -07:00
2026-06-30 20:01:16 +05:30
2026-06-29 11:35:41 +10:00
2026-06-21 11:11:23 -07:00
2026-06-30 04:23:27 -05:00
2026-06-17 13:45:25 -07:00
2026-06-19 11:57:43 -07:00
2026-07-01 15:37:58 +05:30
2026-06-20 23:23:47 -07:00
2026-06-20 10:26:45 -07:00
2026-07-01 00:12:11 -07:00
2026-06-27 04:41:22 -07:00
2026-07-01 01:39:10 -07:00
2026-06-20 10:26:45 -07:00
2026-06-30 15:49:36 -07:00
2026-06-25 22:03:02 -07:00
2026-07-01 00:40:56 -07:00
2026-06-18 12:26:20 +05:30
2026-06-27 21:07:53 -07:00
2026-06-16 13:08:34 -07:00
2026-06-21 16:39:48 -07:00
2026-06-20 23:23:47 -07:00
2026-06-26 12:09:52 +10:00
2026-06-26 12:09:52 +10:00
2026-06-22 15:41:23 +10:00
2026-06-28 01:15:39 -07:00
2026-06-29 11:35:41 +10:00
2026-06-27 19:29:00 -07:00
2026-06-25 23:08:48 +05:30
2026-07-01 01:05:28 -07:00
2026-06-26 15:26:08 +05:30
2026-06-25 23:42:42 +05:30
2026-06-30 16:39:41 -07:00
2026-06-19 07:04:58 -07:00
2026-06-19 07:26:56 -07:00
2026-07-01 01:18:53 -07:00
2026-06-29 21:11:58 -07:00
2026-06-29 21:11:58 -07:00
2026-06-29 21:11:58 -07:00
2026-06-29 01:27:10 -07:00
2026-06-30 00:19:49 -07:00
2026-06-25 01:45:06 +05:30
2026-06-29 10:00:49 -07:00
2026-06-29 10:00:49 -07:00
2026-06-29 10:00:49 -07:00
2026-06-29 10:00:49 -07:00
2026-07-01 00:49:38 -07:00
2026-06-27 04:40:05 -07:00
2026-06-27 03:08:41 +05:30
2026-06-27 15:59:00 -07:00
2026-06-23 03:10:53 +05:30
2026-06-29 21:11:58 -07:00
2026-06-21 11:35:09 -07:00