# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info


.env

# Virtual environments
.venv

# Local PostgREST config (contains DB URI + JWT secret)
postgrest.conf

# Next.js build output (also lives under frontend/.next when running from there)
.next/

# Node modules — the per-app .gitignores already exclude these for
# frontend/, marketing/, move/, docs-site/, but anything new at the
# repo root (e.g. scripts/screenshots/) needs the global rule too.
node_modules/

# Claude Code worktrees — local-only, never committed
.claude/worktrees/

# The retired standalone ShopifyOauthTool (BYT-272). Its job now lives in
# main.py's /api/shopify-oauth/* routes; the source was never tracked and
# must not get swept in by a `git add -A` (356K, incl. a 234K lockfile).
ShopifyOauthTool/

# App Store listing artwork duplicated at the repo root. The canonical copy
# is appstore/app-icon-1200.png — this is a byte-identical stray.
/graftport-logo-1200.png

# pytest cache
.pytest_cache/

# macOS
.DS_Store

# Local investigation scratch (workbench/duckdb_order_mapping, notebooks).
# workbench/duckdb_order_mapping/data/orders.jsonl is 770 REAL effektlageret
# orders — real customer names, addresses, emails and phone numbers — so this
# tree must never be swept into history by a `git add -A`. Anything here that
# earns a permanent home gets moved into tests/ or docs/ deliberately, with
# the corpus left behind. Same defensive shape as ShopifyOauthTool/ above.
workbench/

# Agent runtime state (committed by accident in 3e29d9a)
.omc/
