From f013bea462f2e2af29e4ae7af84634d979e10186 Mon Sep 17 00:00:00 2001 From: Luiz Gustavo Date: Sat, 23 May 2026 22:45:00 -0300 Subject: [PATCH] W3.9 followup: mount case/ ro into web container /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/ 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) --- infra/disclosure-stack/docker-compose.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/infra/disclosure-stack/docker-compose.yml b/infra/disclosure-stack/docker-compose.yml index adbc594..4356b64 100644 --- a/infra/disclosure-stack/docker-compose.yml +++ b/infra/disclosure-stack/docker-compose.yml @@ -327,6 +327,9 @@ services: SUPABASE_SERVICE_ROLE_KEY: ${SERVICE_ROLE_KEY} NEXT_PUBLIC_SITE_URL: https://${DOMAIN_MAIN} 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 # can saturate the smaller pool under concurrent load). PG_POOL_MAX: ${PG_POOL_MAX:-20} @@ -354,6 +357,8 @@ services: - ${DATA_WIKI}:/data/ufo/wiki:ro - ${DATA_PROCESSING}:/data/ufo/processing: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: - traefik.enable=true - traefik.docker.network=traefik-public