Summary
Commit a4eec13 (feat(#411): canary invariant harness Phase 1) added src/backend/canary/ but did not add a corresponding COPY line to docker/backend/Dockerfile. The backend container fails to start with:
File "/app/routers/canary.py", line 21, in <module>
from canary import INVARIANTS
ModuleNotFoundError: No module named 'canary'
Root Cause
docker/backend/Dockerfile copies source directories explicitly. The new canary/ package was not added:
# Existing copies:
COPY ../../src/backend/routers /app/routers/
COPY ../../src/backend/services /app/services/
COPY ../../src/backend/db /app/db/
# Missing:
COPY ../../src/backend/canary /app/canary/ ← not present in a4eec13
Fix
Add to docker/backend/Dockerfile after the existing COPY block:
COPY ../../src/backend/canary /app/canary/
Impact
construct instance attempted to deploy a4eec13, backend failed to start, rolled back to 7b95c46. No data loss.
Reproduction
git checkout a4eec13
docker compose build --no-cache backend
docker compose up -d backend
docker logs trinity-backend # ModuleNotFoundError: No module named 'canary'
Summary
Commit
a4eec13(feat(#411): canary invariant harness Phase 1) addedsrc/backend/canary/but did not add a correspondingCOPYline todocker/backend/Dockerfile. The backend container fails to start with:Root Cause
docker/backend/Dockerfilecopies source directories explicitly. The newcanary/package was not added:Fix
Add to
docker/backend/Dockerfileafter the existing COPY block:COPY ../../src/backend/canary /app/canary/Impact
construct instance attempted to deploy
a4eec13, backend failed to start, rolled back to7b95c46. No data loss.Reproduction
git checkout a4eec13 docker compose build --no-cache backend docker compose up -d backend docker logs trinity-backend # ModuleNotFoundError: No module named 'canary'