From 4856afbd0c5f300a5a907b9e8eed240d826cb7a6 Mon Sep 17 00:00:00 2001 From: ruv Date: Tue, 2 Jun 2026 12:04:58 +0200 Subject: [PATCH 1/2] ci(v1-api): run Performance Tests + API Docs with MOCK_POSE_DATA=true After the DensePoseHead startup fix (#910), the v1 API starts, but the Performance Tests load-hit the pose endpoints which error "requires real CSI data" (no hardware in CI, mock_pose_data defaults False), and the API-docs job imports the app the same way. Set MOCK_POSE_DATA=true on both jobs so they exercise the mock path. Verified: the env var maps to settings.mock_pose_data=True (pydantic, no env_prefix). (Note: Performance Tests is continue-on-error so this is cleanup, not a run-blocker; the run-level red on main has been transient Docker Hub pull timeouts on Tests/docker-build, which are infra flakes that pass on re-run.) --- .github/workflows/ci.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9bf38ef3dc..4dbb00b3b3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -269,6 +269,10 @@ jobs: - name: Start application working-directory: archive/v1 + env: + # No CSI hardware in CI — serve mock pose data so the pose endpoints + # respond 200 under load instead of erroring "requires real CSI data". + MOCK_POSE_DATA: "true" run: | uvicorn src.api.main:app --host 0.0.0.0 --port 8000 & sleep 10 @@ -384,6 +388,8 @@ jobs: - name: Generate OpenAPI spec working-directory: archive/v1 + env: + MOCK_POSE_DATA: "true" # no CSI hardware in CI run: | python -c " from src.api.main import app From e239af3636c63cb169fabe7d441a8d5e17a59a9f Mon Sep 17 00:00:00 2001 From: ruv Date: Tue, 2 Jun 2026 12:11:55 +0200 Subject: [PATCH 2/2] =?UTF-8?q?fix(deps):=20declare=20psutil=20in=20requir?= =?UTF-8?q?ements.txt=20=E2=80=94=20green=20API=20Documentation=20CI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The API Documentation job (and any env without locust) failed with `ModuleNotFoundError: No module named 'psutil'` when importing the app: psutil is imported by src/api/routers/health.py, services/metrics.py, commands/status.py, and tasks/monitoring.py, but was never declared as a dependency — it only happened to be present where locust (Performance Tests) pulled it in transitively. Declare it explicitly (psutil>=5.9.0). Verified locally: `from src.api.main import app; app.openapi()` (the exact docs-job operation) now succeeds. --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 95f2463311..bdc9ff0a02 100644 --- a/requirements.txt +++ b/requirements.txt @@ -36,3 +36,4 @@ scikit-learn>=1.2.0 # Monitoring dependencies prometheus-client>=0.16.0 +psutil>=5.9.0 # system metrics — imported by health.py / metrics.py / status.py / monitoring.py