# Build outputs
target/
**/target/
REMAPPING/meridian-desktop/src-tauri/target/

# Native non-relay UI builds (not part of the public image).
#
# Exception: REMAPPING/meridian-web/ and REMAPPING/meridian-admin-web/ map `@brand/*` onto `REMAPPING/meridian-desktop/src/shared/ui/*`
# (see REMAPPING/meridian-web/vite.config.ts + REMAPPING/meridian-web/tsconfig.json), so the shared globe module is a
# build input for the relay image even though the desktop app is not. Excluding
# all of REMAPPING/meridian-desktop/ makes `pnpm -C REMAPPING/meridian-web build` fail with TS2307 on
# `@brand/meridian-globe/mountGlobe`. The module only imports itself and react,
# so re-including this one directory is the whole dependency closure.
# The `**` matters: a bare directory exception re-includes only the directory
# entry, not the files under it, so the copy still comes up empty.
REMAPPING/meridian-desktop/
!REMAPPING/meridian-desktop/src/shared/ui/meridian-globe/**
REMAPPING/meridian-mobile/

# Node artifacts (built inside the image; host outputs would invalidate cache)
node_modules/
**/node_modules/
REMAPPING/meridian-web/dist/

# VCS, IDE, scratch
.git/
.github/
.gitignore
.gitattributes
.vscode/
.idea/
.scratch/

# Local environment / secrets — never want these in the build context
.env
.env.*
!.env.example
*.pem
*.key
secrets/

# OS junk
.DS_Store
Thumbs.db

# CI artifacts and tooling that the image doesn't need
.cache/
coverage/
dist/
playwright-report/
test-results/
bin/
sidecars/

# Docs the image doesn't ship. examples/ stays — examples/countdown-bot is
# a Cargo workspace member, so cargo-chef needs its manifest. Markdown files
# inside crates (Cargo.toml `readme = ...`) likewise need to be present to
# avoid manifest warnings; the savings from excluding them are negligible.
docs/

# Old Dockerfile noise (this Dockerfile is THE source of truth now)
docker-compose.yml
docker-compose.*.yml
prometheus.yml
