vignette/apps/api
Yun Chan bf5f7352ce 회기 종료 pinned_fact upsert를 AI evaluator 뷰로 실행
공개 /sessions/{id}/end 503(2026-08-18 실측): app.pinned_fact RLS는 learner 역할에
INSERT(소유 케이스)만 허용하고 SELECT/UPDATE는 AI 컨텍스트 또는 admin/instructor
전용이다. end_session이 learner 연결로 SELECT FOR UPDATE + INSERT ON CONFLICT
DO UPDATE 조합을 돌려 충돌 후보 행 가시성이 막히며 InsufficientPrivilegeError로
실패했고, fallback 차단이 503으로 노출됐다. 엔진이 건강해 deep 평가가 처음으로
pinned 팩트를 반환한 순간 발화한 잠복 결함이다.
- _upsert_pinned_fact_candidates_with_ai_view: 같은 learner uid 로
  acquire(ai_view='evaluator') 를 열어 INSERT/SELECT/UPDATE 정책을 모두 충족
- 검증: 공개 DB에서 롤백 재현 — learner 컨텍스트 upsert RLS 거부,
  ai_view evaluator 컨텍스트 동일 SQL 통과. app 924 passed·관련 62 passed
2026-08-18 18:36:04 +09:00
..
app 회기 종료 pinned_fact upsert를 AI evaluator 뷰로 실행 2026-08-18 18:36:04 +09:00
engine_gateway CLI 자식 프로세스 환경에 Windows 필수 변수 백필 2026-08-18 13:25:08 +09:00
scripts 현재 작업 전체 반영 2026-06-27 16:08:41 +09:00
Dockerfile G0~G8 성과·동맹 측정 OS 작업 일괄 고정 2026-08-08 01:30:53 +09:00
README.md chore: Vignette 모노레포 초기 스캐폴드 + 설계 문서 이관 2026-06-25 21:16:45 +09:00
requirements-rag.txt 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00
requirements.txt G7 증명과 G8 clean-head 승격 준비 2026-08-09 18:22:03 +09:00

apps/api

FastAPI 백엔드 (Vignette). 엔진 어댑터(claude -p 상주풀)·상태머신·가드레일·RAG·RBAC.