# Build artifacts and node_modules — never useful inside the Docker context.
**/.git
**/.gitignore
**/node_modules
**/.svelte-kit
**/build
web/build

# The Android client — built by its own job, never from this context. The APK
# reaches the image through client/, downloaded as a CI artifact, so nothing
# here reads android/ sources.
#
# This block named `flutter_client/` until 2026-09-10 and lost its PATTERN when
# that tree was deleted, leaving a comment describing an exclusion that was no
# longer happening. android/ never took its place, so 4.1 MB of Gradle project
# has been entering the context and busting the `COPY . .` layer on every
# Android-only change.
android/

# Local `make build` output — an 18 MB binary the image never uses, since the
# builder stage compiles its own.
bin/

# Docs and IDE noise
docs/
**/.idea
**/.vscode
**/.DS_Store

# Test outputs
**/coverage
**/.nyc_output

# Local env / secrets — fail closed.
.env
.env.*
!.env.example

# CI workflow files don't need to ship in the image.
#
# This said `.forgejo/` and `.github/` — neither of which this repo has. Gitea
# Actions reads `.gitea/`, so the one directory that actually exists was the
# one not excluded, and every workflow edit invalidated the context.
.gitea/
