vignette/docs/HANDOFF.md

7.5 KiB

Vignette 현행 인수인계

기준일: 2026-09-09 KST 상태·결정의 SSOT는 dev_dashboard.html이다. 이 문서는 다음 실행 순서와 금지 경계만 요약한다. 2026-08-18 이전 상세 기록은 정리 전 HANDOFF 원문에 보존했다.

현재 기준

2026-09-09 최신 개선관리 워크북을 읽기 전용으로 재점검했다. 다운로드 원본 SHA-256 f64bbc859354e8bfdd62bb3393cffd841ca3a0d865983967a149aea7cf569773의 14개 항목은 완료 13·검토 1(C-001)이며 REQ-008~011도 원본 완료다. 항목별 구현 매핑은 원본 완료 표기, 현재 로컬 검증, 배포 상태를 분리한다. 원본 워크북은 수정하지 않았다.

REQ-010의 추가 결함은 0턴/client-only 회기가 대시보드의 첫 완료·반복·경험 배지 집계에 포함되는 것이었다. 기존 완료 집계와 같은 counselor/learner 발화 조건으로 정렬했고, 계약 RED 4건 뒤 GREEN 4건, 지정 API 20건과 API 전체 1108 passed / 1 skipped / 1 warning을 통과했다. uc-session-conversationcalibration-transfer route fixture browser 재검증도 44 passed / 0 failed / 0 skipped로 수용했다. 이 문단의 증거는 워크북 감사 단계의 local fixture 기록이며 당시 build·새 public live 검증·배포 미실행을 뜻한다.

2026-09-08 Forgejo master a0311c59(배포 문서 포함 d9bb5b36)의 NAS/Cloudflare Pages 배포, 사전 DB 덤프·컨테이너 교체·당시 public health/auth/web 폐루프와 API 1104 passed 기록은 배포 파이프라인1차 배포 증거에 보존한다. 이는 오늘의 새 live 검증이나 현재 작업트리 배포 상태가 아니다.

2026-09-09 SHA 1306c524은 Forgejo에 동기화해 NAS API·engine 이미지 c02036e8c814…, web 이미지 74f334f52d78…, Pages preview 04f97f32/index-CEq_FjVS로 배포했다. API·engine 동시 기동 중 사용자가 다운을 보고했으나 rollback 없이 같은 버전에서 healthy, 공개 /health의 db/engine true, /auth/me 401, 웹 200, P4 학습자 회기 1회 6턴과 DB 전체 집계 전후 동일을 확인했다. 이는 운영 실배포 완료 기록이며 무중단 증거는 아니다. GitHub 미러 push는 auto-review 거절로 실행하지 않아 Forgejo 동기화만 완료했다.

실배포 CUA 128 시나리오는 카탈로그 생성만 끝났고 전체 검증은 끝나지 않았다. H09 기록 검색·필터 복귀는 SHA 1306c524 실제 배포에서 PASS로 재확인했지만, T18 감독·연구 drilldown은 수정 배포 뒤에도 learner 브라우저만 있어 기존 RED를 종결하지 않았다. 관리자와 일반 학습자 로그인에서 학습자의 /admin·/teach/learn 차단과 P4 추천, R09 잠금과 R14 워크시트 보존을 확인했다. 순수 teacher, 독립 관찰자 공개 검증, OFF 계정, 교수자 쓰기와 모바일 실행은 남아 있다. 상세는 실배포 CUA 보고를 따른다.

남은 실행 항목

  1. C-001 외부 임상 검수: 외부 검토 입력·서명 증거·canonical checker를 모두 충족할 때까지 review_complete=false를 유지한다.
  2. NAS 재부팅 자동복구 smoke: 실제 재부팅 뒤 자동 복구를 관찰한다. Windows 개발 워크스테이션 task 이력은 이 운영 NAS 게이트를 대체하지 않는다.
  3. 백업 운영화: 실패 알림, off-host 암호화 복제, 정기 restore drill을 운영 증거로 남긴다.
  4. 아바타 fail-closed 후보: 원본과 DB 참조를 보존한 채 public fallback·digest receipt·브라우저 검증을 마친 뒤에만 승격 판단한다.
  5. G7/G8 외부 게이트: G7은 동의 기반 물리 마이크와 독립 voice-gain 증거, G8은 실DB append-only 사람 게이트와 public proof가 남아 있다.
  6. REQ-009~011: 원본은 모두 완료다. API와 route fixture browser 로컬 재검증은 수용했지만 build·새 public live 검증·배포는 수행하지 않았다.
  7. CUA-128: 허용된 관리자 P16 회기 1개와 학습자 P4 회기 1개를 사용해 총 2/2를 종료했다. P4 회기는 2분 19초·6턴·실제 AI 3왕복으로 종료했고, 기존 승인 범위의 대화·리뷰·워크시트 권한은 유지한다. 순수 teacher·OFF 계정, 교수자 쓰기와 모바일 실행이 남아 있다.

세부 ID·차단 이유·완료 조건은 TODO.md열린 백로그에 있다.

재개 순서

  1. OS·셸·현재 Git 상태를 확인하고, dashboard와 이 문서·TODO·backlog를 읽는다.
  2. 필요한 항목의 배포 증거와 현재 NAS 상태를 read-only로 구분해 확인한다.
  3. 외부 게이트는 증거 수집만 진행하며, 외부 입력·소유자 승인·비밀값을 추정하거나 생성하지 않는다.
  4. 코드 또는 문서 변경 뒤에는 범위에 맞는 테스트와 SSOT checker를 실행한다.

2026-09-09 REQ-010 API 재검증은 Python 3.11 API 전체 1108 passed/1 skipped/1 warning이다. API의 1 skipped는 VIGNETTE_USAGE_TEST_DATABASE_URL 미설정 때만 건너뛰는 기존 선택형 격리 DB test_admin_usage_postgres.py이고 새 skip은 없다. uc-session-conversationcalibration-transfer의 route fixture browser 재검증은 44 passed/0 failed/0 skipped다. 이 수치는 local fixture 증거이며 build·새 public live 검증·배포를 뜻하지 않는다.

최종 UI 회귀는 session-mvp+uc-session-coach-voice 58 passed/0 skipped(exit 0, 2.6분), alliance+admin 39 passed/1 skipped(exit 0, 1.7분)로 합계 97 passed/1 skipped다. skip은 uc-review-alliance-pulse 320px 테스트의 desktop 중복 실행 제외이며 mobile은 실행·통과했다. session-review의 disabled AI feedback privacy 제어 focused 1 passed(exit 0, 4.4초)도 유지한다. dashboard 10은 별도 검증이다.

같은 날 source-only로 test_session_turn_persistence.py, test_calibration_transfer_store.py, test_session_continuity_guard.py는 78 passed와 PendingDeprecationWarning 1건이었다. 이는 당시 증거이며 REQ-009~011의 현 browser 재검증이나 운영 증거가 아니다. 신규 제품 이슈의 현재 열린 상태와 다음 행동은 위 목록 및 TODO.md를 따른다.

승인과 금지 경계

  • NAS compose 교체, DB migration 적용, 데이터·업로드 삭제, secret 변경, 원격 push, Pages 배포는 소유자 승인 뒤에만 한다.
  • C-001의 외부 검수 입력, G7 물리 마이크 캡처, G8 승인 결정은 자동화나 fixture로 대체하지 않는다.
  • 원본 아바타 bytes·DB reference·운영 백업은 보존 우선이다.
  • CLEANUP-001: outputs/local-history/project-cleanup-2026-09-07.zip(SHA-256 6a98d817d856c35654da6a11b74a6387c17adca0be55efda58c06c30b101b1ab)과 manifest는 84 regular source file의 hash 대조 및 4 junction metadata를 보존한다. tmp/, apps/web/tmp/, 추적된 legacy .bak 4개, 정리 대상 attachment·중복 generation 결과는 outputs/local-history/retained-sources-2026-09-07/로 가역 이동했고 source 경로 정리는 완료했다. 원본 영구 삭제는 0건이며 기존 outputs/ 최종 workbook은 보존한다.

최소 문서 검증

python -X utf8 scripts/check-dev-dashboard-ssot.py --json
git diff --check