Web Console: Sanctioned restart and graceful reload controls (Phase 2) #642

Open
opened 2026-07-10 14:40:29 -05:00 by jcwalker3 · 1 comment
Owner

Problem statement

Sessions recover MCP connectivity via forbidden host process killing (pkill -f mcp_server.py, #630). Operators need sanctioned restart / graceful reload controls in the console (or explicit operator tooling surfaces) with auth, confirmation, and audit — never ad-hoc process kills.

User and operational impact

Contaminated sessions, multi-namespace kills, untrustworthy post-restart close/review/merge.

Scope

  • Define sanctioned restart/reload operations (per namespace or fleet) via gated action framework (#434 evolution + #633).
  • Preview intent, confirm string, audit log, post-restart health verification.
  • Explicitly classify manual pkill as contamination if detected; block clean claims.
  • UI controls only after auth model; may be operator-CLI first if safer.

Explicit non-goals

  • No unrestricted pkill/kill -9 from UI.
  • No silent auto-restart loops without audit.
  • Do not implement Phase 1 health API here (#634).

Required implementation investigation

#630, #591, #584, #434, #633, #634, native_mcp_preference.py, mcp_daemon_guard.py, #631.

Proposed architecture or implementation direction

Gated action system.restart_namespace with capability check, dry-run preview, confirmation, audit, then health recheck. Prefer host-managed restart hooks over in-process kill when possible.

Security and workflow-safety requirements

RBAC; confirmation; audit; fail closed; contamination markers; no secrets in logs.

Acceptance criteria

  1. Sanctioned restart path documented and implemented behind gates.
  2. Manual pkill remains forbidden and classified contaminated.
  3. Post-restart mutations require clean health/session proof.
  4. Tests: authorized restart preview, unauthorized deny, contamination classification.
  5. UI or operator entry point does not expose raw kill.

Required tests

Gated action tests; contamination detection tests; audit emission tests.

Observability and audit requirements

Every restart attempt audited with actor, target namespace, result.

Dependencies and linkage

Canonical issue state

STATE: ready-for-author
WHO_IS_NEXT: author
NEXT_ACTION: Implement sanctioned restart gates after Phase 1 auth/health
NEXT_PROMPT: Author gated restart only; PR; stop

Required final evidence

PR with gates, tests, docs; no pkill recovery path.

Required final response and handoff expectations

Brief PR → reviewer/security review.

## Problem statement Sessions recover MCP connectivity via forbidden host process killing (`pkill -f mcp_server.py`, #630). Operators need **sanctioned restart / graceful reload** controls in the console (or explicit operator tooling surfaces) with auth, confirmation, and audit — never ad-hoc process kills. ## User and operational impact Contaminated sessions, multi-namespace kills, untrustworthy post-restart close/review/merge. ## Scope * Define sanctioned restart/reload operations (per namespace or fleet) via gated action framework (#434 evolution + #633). * Preview intent, confirm string, audit log, post-restart health verification. * Explicitly classify manual pkill as contamination if detected; block clean claims. * UI controls only after auth model; may be operator-CLI first if safer. ## Explicit non-goals * No unrestricted `pkill`/`kill -9` from UI. * No silent auto-restart loops without audit. * Do not implement Phase 1 health API here (#634). ## Required implementation investigation #630, #591, #584, #434, #633, #634, `native_mcp_preference.py`, `mcp_daemon_guard.py`, #631. ## Proposed architecture or implementation direction Gated action `system.restart_namespace` with capability check, dry-run preview, confirmation, audit, then health recheck. Prefer host-managed restart hooks over in-process kill when possible. ## Security and workflow-safety requirements RBAC; confirmation; audit; fail closed; contamination markers; no secrets in logs. ## Acceptance criteria 1. Sanctioned restart path documented and implemented behind gates. 2. Manual pkill remains forbidden and classified contaminated. 3. Post-restart mutations require clean health/session proof. 4. Tests: authorized restart preview, unauthorized deny, contamination classification. 5. UI or operator entry point does not expose raw kill. ## Required tests Gated action tests; contamination detection tests; audit emission tests. ## Observability and audit requirements Every restart attempt audited with actor, target namespace, result. ## Dependencies and linkage * Parent: #631 · Depends: #633, #634 · Related: #630, #434, #591, #584 ## Canonical issue state ```text STATE: ready-for-author WHO_IS_NEXT: author NEXT_ACTION: Implement sanctioned restart gates after Phase 1 auth/health NEXT_PROMPT: Author gated restart only; PR; stop ``` ## Required final evidence PR with gates, tests, docs; no pkill recovery path. ## Required final response and handoff expectations Brief PR → reviewer/security review.
Author
Owner

Canonical Issue State

STATE:
ready-for-author

WHO_IS_NEXT:
author

NEXT_ACTION:
Treat #642 as console entry for sanctioned restart; backend governance is #655; UI expansion detail in #667; do not implement uncoordinated kill buttons

NEXT_PROMPT:

AUTHOR prgs Gitea-Tools: Web Console restart UI #642 must consume restart coordinator APIs from umbrella #655 (especially #658 impact, #659 drain, #661 proof, #664 break-glass).
Expanded console controls tracked in #667. Vision #652 · Roadmap #653 · Console epic #631.
Implement only after or with substrate; never expose pkill.

WHAT_HAPPENED:
Linked #642 to restart governance #655 and extension #667.

WHY:
Console UI must not invent restart policy; substrate owns coordination.

RELATED_ISSUES:
#655 #667 #658 #659 #661 #664 #630 #652 #653 #631

RELATED_PRS:
none

BLOCKERS:
none

VALIDATION:
#642 not duplicate of #655

LAST_UPDATED_BY:
jcwalker3 / prgs-author / author / 2026-07-10

## Canonical Issue State STATE: ready-for-author WHO_IS_NEXT: author NEXT_ACTION: Treat #642 as console entry for sanctioned restart; backend governance is #655; UI expansion detail in #667; do not implement uncoordinated kill buttons NEXT_PROMPT: ```text AUTHOR prgs Gitea-Tools: Web Console restart UI #642 must consume restart coordinator APIs from umbrella #655 (especially #658 impact, #659 drain, #661 proof, #664 break-glass). Expanded console controls tracked in #667. Vision #652 · Roadmap #653 · Console epic #631. Implement only after or with substrate; never expose pkill. ``` WHAT_HAPPENED: Linked #642 to restart governance #655 and extension #667. WHY: Console UI must not invent restart policy; substrate owns coordination. RELATED_ISSUES: #655 #667 #658 #659 #661 #664 #630 #652 #653 #631 RELATED_PRS: none BLOCKERS: none VALIDATION: #642 not duplicate of #655 LAST_UPDATED_BY: jcwalker3 / prgs-author / author / 2026-07-10
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Scaled-Tech-Consulting/Gitea-Tools#642