Phase 4 slice 1: backend release image on the v0.3 line (single worker, non-root) + the phase-4 gate ported onto it #32

Merged
jonathan merged 4 commits from po/phase4-backend-image into milestone/v0.3-hosted 2026-10-31 07:35:49 +00:00

4 Commits

Author SHA1 Message Date
coreci-researchx-po b964c60e72 fix(backend): serve the production entrypoint, not the test factory
ci / backend (uv, Python 3.12: ruff/mypy/pytest) (push) Successful in 1m13s
ci / frontend (Next.js on pnpm: typecheck/lint/test/build) (push) Successful in 1m58s
ci / backend (uv, Python 3.12: ruff/mypy/pytest) (pull_request) Successful in 1m13s
ci / frontend (Next.js on pnpm: typecheck/lint/test/build) (pull_request) Successful in 1m59s
The image's CMD ran researchx.api.app:app - the module-global built by
create_app() with no arguments, which serves FakeModelAdapter and
cwd-based storage. Hosting it would have shipped fakes on the public
URL while /healthz answered 200 (P-3 closure; RESEARCH-v03 S8,
PLAN T-4.1). Now: researchx.api.main:app with --proxy-headers, so the
TLS front's forwarded headers are honoured.

Also pins uid/gid 10001 for the non-root user, so the host-side volume
chown in the deploy script is deterministic.
2026-10-31 03:42:47 +00:00
coreci-researchx-po 1eebe94beb ci: port the phase-4 gate onto the v0.3 line and extend its pull_request trigger to the milestone branch
ci / backend (uv, Python 3.12: ruff/mypy/pytest) (push) Successful in 59s
ci / frontend (Next.js on pnpm: typecheck/lint/test/build) (push) Successful in 1m37s
ci / backend (uv, Python 3.12: ruff/mypy/pytest) (pull_request) Successful in 56s
ci / frontend (Next.js on pnpm: typecheck/lint/test/build) (pull_request) Successful in 1m59s
2026-10-30 23:52:48 +00:00
coreci-researchx-po 6c85ad2824 build(backend): keep secrets, caches and the local data dir out of the build context
ci / backend (uv, Python 3.12: ruff/mypy/pytest) (push) Successful in 57s
ci / frontend (Next.js on pnpm: typecheck/lint/test/build) (push) Successful in 1m40s
2026-10-30 23:52:48 +00:00
coreci-researchx-po b72f16a944 build(backend): the release image for the v0.3 line - single worker, non-root, data dir + /healthz (REQ-83) 2026-10-30 23:52:42 +00:00