From faa893199ead09138bdf9aa6d6cf85de0c0a2aed Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=EC=9C=A0=EC=B0=BD=EC=9A=B1?=
Date: Mon, 21 Sep 2026 10:49:14 +0900
Subject: [PATCH] =?UTF-8?q?chore(release):=201.2.1=20=E2=80=94=20=EB=82=A9?=
=?UTF-8?q?=ED=92=88=20=EC=A0=95=EB=B9=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
감지 동작은 1.2.0 과 같다. 납품 패키지 내용이 바뀌었으므로(회전 도구가
tools/ 에 들어간다) 버전을 올린다. 같은 버전으로 내용이 다른 zip 이 두 개
돌아다니면 현장에서 어느 쪽이 올라가 있는지 물을 때 답할 수 없다.
소개서 HTML 은 버전 줄이 바뀌어 재생성했다.
Co-Authored-By: Claude Opus 5
Claude-Session: https://claude.ai/code/session_01EBjuR7DW6PNNMows4KnbYU
---
CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++
VERSION | 2 +-
docs/INDEX.md | 3 +++
docs/delivery-audit.md | 2 +-
docs/프로젝트-소개서.html | 4 ++--
docs/프로젝트-소개서.md | 2 +-
6 files changed, 40 insertions(+), 5 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cc45f24..68d06e9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,38 @@
---
+## 1.2.1 — 2026-09-21 · 납품 정비 (기능 변경 없음)
+
+감지 동작은 1.2.0 과 같습니다. 납품·운영에서 손으로 하던 일 세 가지를 닫았습니다.
+
+### 추가 — 자격증명 회전 도구
+
+`tools/rotate_credentials.php`. 장치 HMAC 키와 관리자 비밀번호 교체를 명령 하나로 만듭니다.
+DB 에 접속하지 않고 phpMyAdmin 에 붙여넣을 SQL 만 출력하므로, 접속 정보 없이 어느 머신에서나
+실행할 수 있습니다.
+
+```
+php tools/rotate_credentials.php --device=pi-01 # 장치 HMAC 키
+php tools/rotate_credentials.php --admin=admin # 대시보드 비밀번호
+```
+
+장치 키는 **서버와 Pi 를 같이** 바꿔야 합니다. 한쪽만 바꾸면 그 장치의 이벤트가 전부 거부되고,
+화면에는 `device_fault` 하나만 뜹니다. 출력에 양쪽 절차가 함께 나옵니다.
+비밀번호는 STDIN 으로만 받습니다 — 명령행에 적으면 `ps` 와 셸 히스토리에 남기 때문입니다.
+
+### 복구 — MoveNet CPU 폴백
+
+Hailo 없이 돌리는 CPU 폴백 모델의 배포 원본이 사라져 있어(원 저장소가 모델을 외부 저장소로
+옮김) 번들에 넣을 수 없었습니다. 유효한 출처를 찾아 sha256 으로 고정했습니다. Hailo 납품에는
+영향이 없습니다(폴백은 선택).
+
+### Pi 번들
+
+1.2.0 에서 `edge/` 가 바뀌었는데 번들이 재빌드되지 않은 상태였습니다. 재빌드했습니다 —
+`move-detect-pi-1.2.1-<날짜>-aarch64-cp311-hailo8.tar.gz`.
+
+---
+
## 1.2.0 — 2026-09-05 · 추락 · 동시 다발 쓰러짐 · 구역 프리셋
AI CCTV 의 목적을 원론부터 다시 점검한 결과입니다. 셋 다 **새 추론 모델 없이** 지금 있는
diff --git a/VERSION b/VERSION
index 867e524..6085e94 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.0
\ No newline at end of file
+1.2.1
diff --git a/docs/INDEX.md b/docs/INDEX.md
index 051bc64..2cd6923 100644
--- a/docs/INDEX.md
+++ b/docs/INDEX.md
@@ -190,4 +190,7 @@
것은 "서버 SQL 의 키와 Pi 에 넣으라는 키가 같은가"와 "앱이 그 해시를 검증하는가" 두 가지다.
**교체 실행 자체는 운영 계정 조작이라 사용자 몫으로 남긴다.**
- 검증: pytest 스킵 2(shellcheck 미설치·Windows AF_UNIX) · phpunit 276 passed, 스킵 0
+- **1.2.1 릴리스** — 감지 동작은 1.2.0 과 동일(기능 변경 없음). 납품 패키지 내용이 바뀌었으므로
+ (회전 도구 추가) 버전을 올렸다. 산출물 `move-detect-cafe24-1.2.1-20260921.zip` ·
+ `move-detect-pi-1.2.1-20260921-aarch64-cp311-hailo8.tar.gz`(82MB, MoveNet 폴백 포함)
diff --git a/docs/delivery-audit.md b/docs/delivery-audit.md
index ffc37f0..bcd4a74 100644
--- a/docs/delivery-audit.md
+++ b/docs/delivery-audit.md
@@ -1,6 +1,6 @@
# Delivery Audit — move-detect (납품 전 결함 목록 · 순차 처리)
-> **판정 (2026-09-21, 1.2.0): 적합 — 오프하드웨어 항목 전량 해소.**
+> **판정 (2026-09-21, 1.2.1): 적합 — 오프하드웨어 항목 전량 해소.**
> 1차 43/43 + 2차 12/12 + 3차(1.1.0 장치 건전성) 14/14 +
> **4차 재감사(1.2.0 추락·동시 다발·프리셋 표면) 23/23** 해소.
> 2026-09-21 납품 정비로 Pi 번들 재빌드·MoveNet 원본·자격증명 회전 도구까지 닫혔다.
diff --git a/docs/프로젝트-소개서.html b/docs/프로젝트-소개서.html
index a26ced1..ff675ad 100644
--- a/docs/프로젝트-소개서.html
+++ b/docs/프로젝트-소개서.html
@@ -127,7 +127,7 @@ pre code { background: transparent; color: inherit; padding: 0; }
-
제품 소개서
+
REPORT
move_detect — 작업장 안전 AI CCTV
@@ -139,7 +139,7 @@ pre code { background: transparent; color: inherit; padding: 0; }
담당자 통보까지 이어지도록 만든 온프레미스 안전관리 시스템입니다. 영상은 외부로 나가지
않습니다 — 사고 순간의 스냅샷 3장(얼굴 자동 블러)만 전달합니다.
-
버전 1.2.0 · 2026-09-05
+
버전 1.2.1 · 2026-09-21
1. 왜 만들었나
작업장에 설치된 카메라와 현장 경광등.
diff --git a/docs/프로젝트-소개서.md b/docs/프로젝트-소개서.md
index 4aeac67..1f05673 100644
--- a/docs/프로젝트-소개서.md
+++ b/docs/프로젝트-소개서.md
@@ -6,7 +6,7 @@
> 담당자 통보까지 이어지도록** 만든 온프레미스 안전관리 시스템입니다. 영상은 외부로 나가지
> 않습니다 — 사고 순간의 스냅샷 3장(얼굴 자동 블러)만 전달합니다.
-버전 1.2.0 · 2026-09-05
+버전 1.2.1 · 2026-09-21
---