Pi 번들 — arm64 빌드 머신이 필요하다고 적어 둔 것은 과한 가정이었다. --cross 모드에서 pip 이 태그로 aarch64/cp311 휠을 받으므로 네트워크만 있으면 된다. 휠 11개 전부 aarch64. "Pi 번들 미빌드"로 스킵되던 테스트가 이제 실제로 돈다. MoveNet — P3-3 의 잔여였던 죽은 원본을 유효한 tf2onnx 변환본으로 교체하고 sha256+size 로 고정했다. 고정 전에 어댑터 계약과 대조했다: 입력 [1,192,192,3] int32 NHWC, 출력 [1,1,17,3]. 레이아웃이 다른 변환본은 onnxruntime 에 그냥 로드되고 좌표만 틀리는 실패라, 파일이 바뀌었는지가 아니라 계약이 맞는지를 테스트로 박았다. 자격증명 회전 — 손으로 적던 SQL 절차를 명령 하나로 바꿨다. DB 에 접속하지 않고 붙여넣을 SQL 만 낸다(운영자의 창구가 phpMyAdmin 이므로 접속 정보 없이 어느 머신에서나 돌아야 한다). 비밀번호는 STDIN 으로만 받는다 — 명령행은 ps 와 셸 히스토리에 남는다. 테스트가 잠그는 것은 서버 키와 Pi 키의 일치, 그리고 앱이 그 해시를 검증하는지 두 가지다. 회전 실행 자체는 운영 계정 조작이라 저장소에서 수행하지 않는다. 검증: phpunit 276 passed(스킵 0, 신규 7) · pytest 스킵 2(환경) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EBjuR7DW6PNNMows4KnbYU
61 lines
2.3 KiB
Text
61 lines
2.3 KiB
Text
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*.egg-info/
|
|
.venv/
|
|
venv/
|
|
.pytest_cache/
|
|
.mypy_cache/
|
|
build/
|
|
dist/
|
|
|
|
# Edge runtime artifacts
|
|
*.db
|
|
# 모델 가중치는 커밋하지 않는다. 둘 다 고정된 fetch 스크립트로 받는다
|
|
# (edge/tools/fetch_hailo_hef.py · fetch_movenet.py) — sha256 가 저장소보다 확실한 보증이고,
|
|
# 9~10MB 바이너리를 히스토리에 쌓을 이유가 없다.
|
|
*.hef
|
|
*.onnx
|
|
# 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/
|
|
|
|
# archify 생성물. 소스는 docs/*.archify.json 이고 `archify deliver` 로 언제든 다시 만든다.
|
|
# 사용설명서와 같은 이유로 커밋하지 않는다 — 소스가 바뀐 뒤에도 낡은 HTML 이 최신처럼 보인다.
|
|
# visual-check 는 검증 증거(PNG·리포트)라 저장소가 아니라 그때의 판정 기록으로만 쓴다.
|
|
docs/move-detect-*.html
|
|
docs/move-detect-*.visual-check.*
|