발견한 문제(2.6 진행 중): 거부권(peer veto) 안전 불변식이 코드에 전혀 구현되어 있지 않았음. Contact.TwinDisabledByPeer는 스키마에만 있고 어디서도 읽거나 쓰지 않았고, tech-design.md §4는 "대화방 단위 플래그" 라는데 실제로는 상대(Contact) 단위로 모델링돼 있어 설계 문서와도 불일치. Conversation.TwinDisabledByPeer로 옮기고 POST /conversations/:id/veto 추가, 메시지 발송 시 거부권 -> 에스컬레이션 -> 자율성 레벨 순으로 체크(앞 단계가 뒤 단계를 항상 이김)하도록 수정. 2.6 본작업: - 초대 기반 가입: 기존엔 아무 문자열이나 처음 쓰면 통과돼서 실제로는 초대 기반이 아니었음. InviteCode 테이블 + POST /invites(발급) 추가하고 /auth/signup이 미리 발급된 미사용 코드인지 검증하도록 변경 (모르는 코드 400, 이미 쓴 코드 409). 계정 삭제 시 코드는 "사용됨" 상태를 유지한 채 유저 참조만 지움 - GET /admin/metrics 추가 -- 메시지 수(휴먼/트윈), 에스컬레이션 사유별 집계, 거부권 발동률(vision.md 거부율 지표의 1차 근사), 초대 코드 발급/사용 수. 생성 지연시간·오류율은 별도 계측 계층이 없어 넣지 않고 문서에 명시 실제 베타 오픈 시점 자체는 roadmap.md §3(PoC 결과 필요)이 끝나야 정할 수 있어서 여전히 보류 -- 이번엔 서버 인프라만 준비함 |
||
|---|---|---|
| .. | ||
| PLANNING.md | ||
| PRD.md | ||
| decision-log.md | ||
| idea-meeting-2026-06-29.html | ||
| meeting-review-summary.md | ||
| poc-materials.md | ||
| poc-plan.md | ||
| risk-log.md | ||
| roadmap.md | ||
| tech-design.md | ||
| user-interview-guide.md | ||
| vision.md | ||