# Python __pycache__/ *.py[cod] *.egg-info/ .venv/ venv/ .pytest_cache/ .mypy_cache/ build/ dist/ # Edge runtime artifacts *.db *.hef # Root-anchored on purpose. A bare `snapshots/` matches at EVERY depth, which swallowed # cloud/storage/snapshots/ — and since git cannot re-include a file whose parent directory # is excluded, it silently killed cloud/.gitignore's `!/storage/snapshots/.gitkeep`. The # edge never writes a snapshots directory anyway: they stay in memory and are base64'd into # the queue db or POSTed (edge/queue.py, edge/alert.py). /snapshots/ queue.db # Secrets / local config .env *.local # OS .DS_Store Thumbs.db # Tool caches .impeccable/ # Pi provisioning (real device secret) — never commit deploy/device.env # 생성되는 사용 설명서. 소스는 server/deploy/manual/{manual.json,shots/} 이고, # 납품 패키저가 빌드할 때마다 다시 만든다. 커밋된 사본을 두면 화면이 바뀐 뒤에도 그것이 # 최신처럼 보이는데, 구 UI 캡처가 남은 매뉴얼은 납품물 자체의 결함이다. server/deploy/manual/사용설명서.html # 경영진 보고 덱 — 생성물. 매뉴얼(사용설명서.html)과 같은 이유로 커밋하지 않는다: # 낡은 사본이 최신인 척하는 것이 가장 위험하다. build_deck.py 로 다시 뽑을 것. docs/deck/경영진-보고.html # 3초 클립은 바이너리다. 저장소가 아니라 발표 노트북에 둔다. docs/deck/clips/* !docs/deck/clips/.gitkeep # 프로비저닝 자격증명 — 납품 폴더(dist/) 밖에 둔다. # dist/ 안에 있으면 폴더째 압축할 때 같이 나간다. /secrets/