vignette/docs/ops/backlog-2026-06-26.md
Yun Chan 1306c524c1
Some checks failed
API contract / OpenAPI type drift (push) Failing after 4m46s
회기 집계와 기록 복귀 및 감독 근거 링크 수정
2026-09-09 14:41:54 +09:00

9.4 KiB

Vignette 백로그 — 열린 실행 항목

상태와 증거의 SSOT는 docs/dev_dashboard.html, 실행 인덱스는 docs/TODO.md다. 2026-09-07 이전 완료 기록과 장문 이력은 정리 전 백로그 원문에 보존했다. 2026-09-01 NAS 배포는 당시 배포 증거로 완료 기록을 남겼으며, 현재 live 상태 주장이나 후속 게이트 완료 선언이 아니다.

제품 이슈 — 최신 워크북 원본과 로컬 재검증

최신 원본: 개선관리 워크북를 2026-09-09 읽기 전용으로 재점검했다. 다운로드 원본 SHA-256 f64bbc859354e8bfdd62bb3393cffd841ca3a0d865983967a149aea7cf569773, 14개 항목은 완료 13·검토 1(C-001)이며 REQ-008~011도 완료다. 항목별 구현 매핑에서 원본 상태와 로컬 재검증을 분리한다. 과거 9 완료·2 검토, 신규 3 대기, 원본 #REF! 주장은 당시 11개 항목 replica의 역사 기록이며 최신 원본 상태가 아니다. 원본은 수정하지 않는다.

ID 원본 사실 조치 및 결과 완료 조건 검증 증거
REQ-009 원본 완료. 스트림 오류 입력 복원·부분 턴 미저장·재시도/닫기·음성 상태 복원을 local browser 재검증으로 수용했다. 배포 상태 분리. uc-session-conversation·calibration-transfer route fixture browser 44 passed/0 failed/0 skipped. build·새 public live 검증·배포는 수행하지 않았다.
REQ-010 원본 완료. 0턴/client-only 회기가 첫 완료·반복·경험 배지에 포함되던 결함을 기존 완료 집계와 같은 counselor/learner 발화 조건으로 정렬했다. 배포 상태 분리. 계약 RED 4건→GREEN 4건, 지정 API 20건, API 전체 1108 passed/1 skipped/1 warning, route fixture browser 44 passed/0 failed/0 skipped. build·새 public live 검증·배포는 수행하지 않았다.
REQ-011 원본 완료. 자기예측 저장·잠금을 local browser 재검증으로 수용했다. 배포 상태 분리. uc-session-conversation·calibration-transfer route fixture browser 44 passed/0 failed/0 skipped. build·새 public live 검증·배포는 수행하지 않았다.
SRC-001 역사 replica 수식 보정. 과거 replica의 #REF!와 15행 집계 범위 보정은 보존한다. 최신 원본 오류로 오인하지 않는다. 과거 수정본: outputs/01a04217-f73b-7303-b597-401fa7f5d290/Vignette_개선관리_완료.xlsx

REQ-009 초기 검증 명령:

cd apps/api
py -3.11 -m pytest app/test_session_turn_persistence.py -k 'stream and (incomplete or engine_error or clean_eof)' -q
cd ../web
npx playwright test e2e/uc-session-conversation.spec.ts --grep '스트림 도중 오류|done 없이' --project=chromium-desktop --workers=1

2026-09-07 Python 3.11 source-only 묶음은 test_session_turn_persistence.py, test_calibration_transfer_store.py, test_session_continuity_guard.py에서 78 passed와 PendingDeprecationWarning 1건이었다. 이는 당시 증거이며 REQ-009~011의 현 재검증이나 운영 증거가 아니다.

P0 운영 게이트

ID 다음 행동 완료 조건 차단 / 경계
AVATAR-001 fail-closed 후보의 API/Web/브라우저 검증 source union·DB reference 보존, decode-valid 응답, public fallback, digest receipt, 승인 배포 Docker·API·DB avatar URL·upload root 변경은 승인 전 금지
REQ-008 NAS 재부팅 자동복구 smoke 실제 재부팅 뒤 health·로그인·데이터·이미지·SHA 확인 Windows 개발 task는 legacy 참조이며 NAS 운영 증거가 아님
BACKUP-001 백업 실패 알림·off-host 복제·restore drill 실패 경보, 암호화 복제, 복원 주기·보존 정책의 운영 evidence 첫 일일 sidecar 실행은 당시 성공 기록일 뿐
G8-EXTERNAL 실DB/public 사람 게이트 승인·보류·반려와 append-only effect의 실제 public proof local fixture와 route E2E는 대체 불가
G7-EXTERNAL 동의 기반 음성 외부 proof 3,120초 soak, 3,000초 overlap high-water, 독립 human pack, checker exit 0 장치 선택·명시 동의 전 마이크를 열지 않음
ANTHROPIC-001 provider live 동일성 비교 승인 주입한 기관 키로 응답·계량·오류 표면화 비교 credential 취급·주입은 소유자 경계
VNET-001 vnet 공개 전환 DNS·Cloudflare zone 권한·Google redirect URI와 live 검증 현재 NAS ingress를 넓히지 않음
PIPELINE-001 Forgejo 기준 NAS 자동배포 hook 수동 git-container clone·SHA 검증·NAS build/compose 절차를 보존한 자동화와 rollback/approval 경계 현 수동 실증 절차를 우회하지 않음
INGRESS-001 Cloudflare tunnel 제거 지시의 대체 ingress gate NAS ingress 대체 경로의 보안·가용성·OAuth 경계를 검증한 뒤 tunnel retirement 승인 tunnel 제거는 사용자 지시이나 대체 ingress 검증 전 미이행

외부 거버넌스·파일럿

ID 다음 행동 완료 조건
C-001 외부 임상 검수 수집 사례별 검수 30개·청소년 답변 6개·승인 10필드·서명 증거와 canonical checker review_complete=true
GOV-001 한신대 데이터/SSO 서면 증거 SSO claims, 추가 축어록·미성년 동의, privacy 문서의 기관 확인
L1-001 저작권/등재 문서 정합화 FastAPI 현행 사유와 Node 계약 우선 전환 계획의 제출 증거
P3-001 20명 파일럿 운영 roster, consent 법무승인, 회기 완료 증거
P3-002 KPI 측정 SUS·자기효능감·κ/ICC·환각률 보고서
P3-003 재귀학습 승인 export·동의 감사 consent/PII/IAA/legal 승인과 withdrawal log 종결

비차단 제품·정리 후보

ID 다음 행동 완료 조건
VOICE-001 s2s 2차 PoC 20턴 비교 보고서와 채택/폐기 판단
FASTLOOP-001 외부 fallback 동의·전송 가드·관측을 포함한 테스트
FINETUNE-001 재귀학습 fine-tuning pipeline 동의·데이터셋 gate 뒤 pipeline과 few-shot 자동갱신 범위 검증
RETENTION-001 health retention raw 90일 / rollup 365일과 수동 escalation 검증
EVALHOOK-001 fast-loop eval_hook 사용 정책 hook 활성화 조건과 관측 경계의 소유자 결정
NODE-001 Node gateway 전환 후보 endpoint conformance, TurnEvaluationPayload adapter, admin mapper의 작업 패킷과 회귀
MIGRATION-001 idempotent DB migration runner init SQL과 runner의 역할 경계·인프라 영향·소유자 승인
OPS-001 운영 티켓 자동 분류 관리자 승인·audit 경계를 갖춘 구현 패킷
E2E-001 전 기능 E2E 후속 분류 focused 범위의 locator 18건 교정·keyboard 1건 해결 뒤 npm run e2e에서 범위 밖 케이스를 실행하고, 실패별 재현·원인·수정 명령을 분류한다. 과거 sweep 실패를 오늘 결함으로 단정하지 않으며 실API/DB·장치 검증은 fixture 결과와 분리한다.
CUA-128 실제 배포 Computer Use 재검증 128 시나리오 카탈로그 생성은 완료했지만 전체 실배포 검증은 미완료다. 일반 학습자 로그인·교차 역할 차단·P4 추천과 허용된 관리자 P16 1개·학습자 P4 1개 회기 종료를 확인했으나 H09·T18은 local 수정 증거 뒤 배포 재검증이 열려 있다. 순수 teacher·OFF 계정, 교수자 쓰기, 모바일과 독립 관찰자 공개 검증이 남아 있다.

완료 기록 경계

2026-09-01 A 경로의 NAS 배포, migration 20/21/22 적용, OAuth 실계정 회기 E2E와 당시 backup sidecar 첫 실행은 완료 이력이다. 2026-09-08 Forgejo master a0311c59/d9bb5b36의 NAS Production 컨테이너 교체, Cloudflare Pages 배포, 사전 DB 덤프(12MB), 0턴 세션 분리·OAS calibration bounds/lock·composer 복원 TDD(API 1104 passed)는 당시 배포 증거다. 이는 2026-09-09의 새 live 검증이나 현재 작업트리의 배포 상태를 뜻하지 않는다. B3 및 B3-신규의 소유자 결정과 완료된 구현도 archive snapshot에 보존한다. CLEANUP-001은 84 regular source와 supplementary 4 files·junction 4개의 대조 뒤 outputs/local-history/retained-sources-2026-09-07/으로 가역 보존 이동을 마쳤고 영구 삭제는 0건이다. RUNTIME-001은 Windows public-runtime/watchdog scripts를 복구 경로로 보존하기로 결정했으며 이 PC의 두 Disabled Scheduled Task는 운영 서버 다운을 뜻하지 않는다. REFACTOR-001sessionViewModel 분리와 voiceCapture 책임 유지를 수용했고, lifecycle setter bag hook은 채택하지 않았다. Space retry→pause와 empty-audio fixture를 교정했으며, learnerFeedbackEnabled:true 누락으로 숨던 review feedback UI는 fixture 보완 뒤 focused login→review 1 passed(exit 0)로 확인했다. 제품 feedback guard는 유지했다. REFACTOR-002는 repository와 persistence values로 평가 저장 경계를 분리했다. 열린 백로그에 완료 이력을 다시 적지 않는다.

확인 명령

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