.git .gitignore .env *.env.local **/__pycache__/ **/*.pyc .venv/ venv/ # Docker patterns are anchored at the context root with NO implicit `**/` (unlike .gitignore, where # this same line matches at any depth) — a bare `node_modules/` missed frontend/node_modules, so # `COPY frontend/ ./` overlaid the host's Windows tree on top of what `npm ci` had just installed. **/node_modules/ frontend/dist/ # Host-only test artifacts. e2e/.auth/state.json is a live Playwright session: it never reached the # runtime image (stage 2 copies only /fe/dist), but it has no business in the build context either. frontend/e2e/.auth/ frontend/playwright-report/ frontend/test-results/ **/*.log backups/ *.dump README.md docs/