fix(#110): frontend-e2e uses Python 3.12 + fail-loud backend readiness #123
No reviewers
Labels
No labels
agentic-osint
audit
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:preflight
blocked:verify-failed
bug
chore
deferred
enhancement
feature-request
in-progress
lint-baseline
lint-cleanup
needs-decompose
needs-triage
performance
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/osint-hub!123
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/110-frontend-e2e-python312"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Resolves Mark/osint-hub#110 — frontend-e2e has never passed in PR CI (49 skipped, 32 cancelled, 1 fail).
Root cause:
mcr.microsoft.com/playwright:v1.40.0-jammy(Ubuntu jammy → Python 3.10).backend/app/services/llm/parsing.py:17(def safe_parse_llm_json[T: BaseModel](...)), which require Python ≥ 3.12. The 3.10 runtime couldn't even import the backend, so uvicorn never started.Start backend serverstep didcurl ... || echo "Backend not ready yet"— a dead backend was silently tolerated, so every Playwright spec failed in 2–3 ms producing ~120 meaningless green-then-fail specs.What this PR changes:
mcr.microsoft.com/playwright:v1.49.0-noble(Ubuntu 24.04, Python 3.12.3 — verified locally). Also brings the bundled Playwright runtime closer to the frontend's@playwright/test ^1.58.2.apt-get install python3 python3-pipstep (noble image already has 3.12) and replaces it with apython3 --version+sys.version_info >= (3,12)assertion so any future regression to a 3.10 image fails the step at runtime-check rather than at import time.Start backend serverstep:setsid+disownso uvicorn survives past the step boundary (Playwright needs it running)./healthz.::error::, tail/tmp/uvicorn.log,exit 1.|| echoswallow.What this PR does NOT change (per #110 scope):
continue-on-error: trueon the security/full-suite jobs (separate follow-up).Verification:
setsid+disowndetachment tested locally — server survives parent exit and continues serving HTTP.Workflow diff is +40/−9 in
.forgejo/workflows/ci.yml. No code changes.