From 78f4e3e66216c167d8cdf6909363528633dac8e2 Mon Sep 17 00:00:00 2001 From: Seongho Bae Date: Mon, 28 Sep 2026 02:26:38 +0900 Subject: [PATCH] fix(ci): record fatal sidecar startup probe stacks --- scripts/ci/contextual_orchestrator_review_sidecar.sh | 5 +++++ .../test_contextual_orchestrator_review_sidecar_contract.py | 3 +++ 2 files changed, 8 insertions(+) diff --git a/scripts/ci/contextual_orchestrator_review_sidecar.sh b/scripts/ci/contextual_orchestrator_review_sidecar.sh index a83becf67b..965e6b4876 100755 --- a/scripts/ci/contextual_orchestrator_review_sidecar.sh +++ b/scripts/ci/contextual_orchestrator_review_sidecar.sh @@ -113,6 +113,11 @@ log "installing hash-pinned orchestrator dependencies at ${checked_out}" PYTHONPATH="$ORCHESTRATOR_SOURCE:$ORG_REPO_ROOT" "$sidecar_python" -c \ 'from contextual_orchestrator.credentials import get_credential; from contextual_orchestrator.model_discovery import discover_all_models, free_discovered_models; from contextual_orchestrator.orchestrator import ModelClient, TaskOrchestrator, load_agents; from contextual_orchestrator.review_gateway import register_review_credentials; from contextual_orchestrator.server import SecurityConfig, serve' PYTHONPATH="$ORCHESTRATOR_SOURCE:$ORG_REPO_ROOT" "$sidecar_python" - <<'PY' +import faulthandler + +# Fatal startup diagnostics contain stack locations, never frame locals. +faulthandler.enable() + import contextlib import http.client import io diff --git a/tests/test_contextual_orchestrator_review_sidecar_contract.py b/tests/test_contextual_orchestrator_review_sidecar_contract.py index e602f19268..3db35662d1 100644 --- a/tests/test_contextual_orchestrator_review_sidecar_contract.py +++ b/tests/test_contextual_orchestrator_review_sidecar_contract.py @@ -397,6 +397,9 @@ def test_strix_gateway_uses_provider_neutral_reasoning_effort() -> None: def test_sidecar_probes_the_pinned_server_body_limit_at_http_boundary() -> None: """The exact vendored SHA must enforce the review limit at its HTTP boundary.""" text = _read(SIDECAR) + assert text.index("faulthandler.enable()") < text.index( + "from contextual_orchestrator.server import SecurityConfig, build_server" + ) assert "from contextual_orchestrator.server import SecurityConfig, build_server" in text assert '"POST",' in text assert '"/v1/chat/completions",' in text