W3.9 followup: mount case/ ro into web container
Some checks failed
CI / Web — typecheck + lint + build (push) Failing after 30s
CI / Scripts — Python smoke (push) Failing after 4s
CI / Web — npm audit (push) Failing after 35s
CI / Retrieval — golden set (Recall@5 + MRR) (push) Failing after 3s

/c/[slug] returned 404 even after the W3.9 web rebuild because the web
container's volume list didn't include the case/ directory the
investigator-runtime writes to. The BureauSnapshot file-listing for
Case reports gracefully fell back to empty, but /c/<slug> can't fall
back: it has to read the markdown.

Fix:
  - Mount ${CASE_ROOT:-/data/disclosure/case}:/data/ufo/case:ro (read-only,
    same pattern as wiki/processing/raw).
  - Set CASE_ROOT=/data/ufo/case env in the web container so the
    /c/[slug] page and BureauSnapshot resolve the same path.

Verified live: /c/green-fireballs-sandia now serves HTTP 200 with the
Watson narrative parsed + rendered via MarkdownBody.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Luiz Gustavo 2026-05-23 22:45:00 -03:00
parent 67185ff518
commit f013bea462

View file

@ -327,6 +327,9 @@ services:
SUPABASE_SERVICE_ROLE_KEY: ${SERVICE_ROLE_KEY} SUPABASE_SERVICE_ROLE_KEY: ${SERVICE_ROLE_KEY}
NEXT_PUBLIC_SITE_URL: https://${DOMAIN_MAIN} NEXT_PUBLIC_SITE_URL: https://${DOMAIN_MAIN}
UFO_ROOT: /data/ufo UFO_ROOT: /data/ufo
# W3.9 — /c/[slug] case-report viewer + BureauSnapshot read the
# markdown files the investigator-runtime writes. Mounted below.
CASE_ROOT: /data/ufo/case
# W1-TD#10: bump pg pool from default 5 to 20 (chat agent + hybrid_search # W1-TD#10: bump pg pool from default 5 to 20 (chat agent + hybrid_search
# can saturate the smaller pool under concurrent load). # can saturate the smaller pool under concurrent load).
PG_POOL_MAX: ${PG_POOL_MAX:-20} PG_POOL_MAX: ${PG_POOL_MAX:-20}
@ -354,6 +357,8 @@ services:
- ${DATA_WIKI}:/data/ufo/wiki:ro - ${DATA_WIKI}:/data/ufo/wiki:ro
- ${DATA_PROCESSING}:/data/ufo/processing:ro - ${DATA_PROCESSING}:/data/ufo/processing:ro
- ${DATA_RAW}:/data/ufo/raw:ro - ${DATA_RAW}:/data/ufo/raw:ro
# W3.9 — case/ is the investigator-runtime's write surface; web reads it.
- ${CASE_ROOT:-/data/disclosure/case}:/data/ufo/case:ro
labels: labels:
- traefik.enable=true - traefik.enable=true
- traefik.docker.network=traefik-public - traefik.docker.network=traefik-public