
sysadminandClaude Opus 4.8
3428fb4190
feat(mcp-health): inventory and guard MCP restart/reload/kill paths (#657)
Enumerate every code/script/host path that can restart, reload, reconnect,
kill, or force-recreate an MCP process, classify each, and link it to the
guard that constrains it.
- mcp_restart_paths.py: machine-readable registry (single source of truth)
with classifications (sanctioned_narrow / guarded_fail_closed / forbidden /
removed / host_residual) plus fail-closed guards:
* assert_restart_attempt_registered() -- unknown restart attempts fail closed
* assert_no_daemon_self_replacement() -- daemon never os.execv/os.kill/os._exit
itself (source-tree scan; comment/docstring mentions ignored)
* assert_auto_restart_helper_absent() -- keeps the #685-removed
_trigger_mcp_auto_restart from returning
* assert_registry_wellformed() -- every path classified, guarded, referenced
- docs/mcp-restart-path-inventory.md: complete inventory table linked from
#655; documents residual host behaviors (/mcp reconnect) and rollout.
- tests/test_mcp_restart_paths.py: 17 tests -- registry well-formedness,
unknown-attempt fail-closed, daemon-self-replacement scan (with injected
violation + comment/docstring negative case), legacy-helper-removed
regression, pkill-stays-contamination (#630), and doc/module lock-step.
No behavior change to existing modules; regression assertions codify invariants
that already hold (per #657 flag-free-before-hard-block rollout). Links
#652 #653 #655 #656.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-24 00:57:33 -04:00
..
2026-07-22 04:52:21 -05:00
2026-07-08 03:46:25 -04:00
2026-07-19 22:35:18 -04:00
2026-07-16 14:58:43 -05:00
2026-07-08 22:36:10 -04:00
2026-07-18 12:02:31 -04:00
2026-07-08 03:17:38 -04:00
2026-07-08 03:44:58 -04:00
2026-07-02 14:21:49 -05:00
2026-07-09 11:59:23 -04:00
2026-07-08 02:19:37 -04:00
2026-07-18 12:59:51 -04:00
2026-07-08 03:27:37 -04:00
2026-07-21 15:41:24 -04:00
2026-07-02 14:00:46 -05:00
2026-07-21 15:41:24 -04:00
2026-07-07 04:27:02 -04:00
2026-07-13 21:48:28 -04:00
2026-07-19 14:43:10 -04:00
2026-07-21 17:54:19 -05:00
2026-07-09 18:44:04 -04:00
2026-07-24 00:57:33 -04:00
2026-07-22 16:18:00 -05:00
2026-07-03 03:24:26 -04:00
2026-07-01 04:17:30 -04:00
2026-07-08 03:33:31 -04:00
2026-07-06 14:44:41 -04:00
2026-07-20 10:48:47 -04:00
2026-07-08 03:14:32 -04:00
2026-07-02 14:21:49 -05:00
2026-07-08 03:47:06 -04:00
2026-07-22 14:37:35 -05:00
2026-07-22 14:37:35 -05:00
2026-07-23 17:47:29 -05:00
2026-07-22 16:12:07 -04:00
2026-07-08 22:43:46 -04:00