fix(mcp-health): deterministic MCP namespace attachment (Closes #689)

This commit is contained in:
2026-07-25 18:52:46 -04:00
parent 2b4e43042a
commit a947bdc186
6 changed files with 455 additions and 14 deletions
+15 -1
View File
@@ -24,6 +24,8 @@ import subprocess
import uuid
from datetime import datetime, timedelta, timezone
from typing import Any
import hashlib
@@ -2258,7 +2260,12 @@ def _seed_session_context(
expected_username=expected,
source=source,
canonical_repository_root=canonical_root_pin,
cohort_id=_COHORT_ID,
startup_sha=_STARTUP_PARITY.get("startup_head"),
endpoint=host or (profile.get("base_url") or "").strip() or None,
config_fingerprint=_CONFIG_FINGERPRINT,
)
import issue_work_duplicate_gate # noqa: E402
import issue_workflow_labels # noqa: E402
import terminal_pr_label_cleanup # noqa: E402 # #780 status:pr-open terminal rule
@@ -2287,6 +2294,11 @@ import stable_control_runtime # noqa: E402
# master has advanced past the running code and fail closed until restart.
# Read-only operations are never blocked by staleness.
_STARTUP_PARITY = master_parity_gate.capture_startup_parity(PROJECT_ROOT)
_COHORT_ID: str = f"cohort-p{os.getpid()}-{_STARTUP_PARITY.get('startup_head') or 'unknown'}"
_CONFIG_FINGERPRINT: str = hashlib.sha256(
(PROJECT_ROOT + str(_STARTUP_PARITY.get("startup_head"))).encode("utf-8")
).hexdigest()[:16]
# Stable-control runtime facts (#615): which runtime this process serves from.
# These are the *immutable* facts -- process root, branch, head, checkout-ness --
@@ -14197,8 +14209,10 @@ def _current_master_parity() -> dict:
current_head = master_parity_gate.read_git_head(PROJECT_ROOT)
live_head = master_parity_gate.read_remote_master_head(
PROJECT_ROOT, remote=_git_default_remote_name(PROJECT_ROOT))
bound_context = session_ctx.get_session_context()
return master_parity_gate.assess_master_parity(
_STARTUP_PARITY, current_head, live_remote_head=live_head)
_STARTUP_PARITY, current_head, live_remote_head=live_head, bound_cohort=bound_context)
def _current_runtime_mode_report(refresh: bool = False) -> dict: