vignette/infra
Yun Chan 29c406d89f Jev 내담자 평가·표현 v2와 속마음 공개
상담자 발화 판정(A)·감정(B)·표현(C) 20문항 질문 세트, 감쇠 없는 이번 턴 반응과 비대칭 기분 전이, 개방도 게이트로 생성 지시를 만들고 ccd.coping_strategy 전달 누락을 고친다.

trace v2와 고정 문구 속마음 요약(migration 24, AI 경로 차단 RLS)을 같은 트랜잭션에 저장하고 피드백 정책이 켜진 경우에만 done·TurnResponse·음성 reply·리뷰로 노출한다. 회기 화면 속마음 보기 토글, 리뷰 접힘 블록, 관리자 감정 관측 v2 표시를 추가한다.
2026-09-30 13:23:09 +09:00
..
db/init Jev 내담자 평가·표현 v2와 속마음 공개 2026-09-30 13:23:09 +09:00
.env.example 관리자 AI 제공자 연결 기능 추가 (claude·codex·agy·openrouter 토큰 붙여넣기 연결) 2026-09-11 14:06:15 +09:00
Caddyfile feat(infra): 이식 가능한 Docker 배포 구성 2026-06-25 21:24:19 +09:00
Caddyfile.nas NAS 정식 스택과 배포 파이프라인 도구를 고정 2026-09-01 11:45:23 +09:00
docker-compose.nas.yml Jev 기반 내담자 감정 상태와 응답 일관성 개선 2026-09-22 21:32:26 +09:00
docker-compose.yml 관리자 AI 제공자 연결 기능 추가 (claude·codex·agy·openrouter 토큰 붙여넣기 연결) 2026-09-11 14:06:15 +09:00
README.md G0~G8 성과·동맹 측정 OS 작업 일괄 고정 2026-08-08 01:30:53 +09:00

infra

Docker Compose: web · api · postgres(pgvector) · Caddy proxy.

  • API 이미지는 저장소 루트 컨텍스트에서 빌드한다. data/personas 같은 런타임 입력을 컨테이너 안 /app 기준으로 찾기 때문이다.
  • 엔진 게이트웨이는 compose 밖 호스트 프로세스로 두고, API는 ENGINE_URL로 호출한다.
  • RAG 임베딩/리랭커 의존성은 API 이미지 build arg INSTALL_RAG=true일 때만 설치한다. 기본 이미지는 슬림 모드이며 RAG 모델 미설정 시 앱이 명시적으로 degraded 처리한다.
  • 배포 전 루트에서 python scripts/check-deploy-preflight.py --env-file infra/.env를 실행한다. 프리플라이트는 G3G8 내부 쓰기 토큰 6개가 각각 32자 이상이며 서로 다른 값인지 검사한다. DB까지 검증할 때는 API app-role DATABASE_URL을 넘기고 --require-app-role을 붙여 G0G8 migration sentinel과 RLS 역할을 함께 확인한다.
  • Compose 음성 설정은 VIGNETTE_VOICE_STT_PROVIDER, DEEPGRAM_API_KEY, DEEPGRAM_STT_*와 VIGNETTE_VOICE_TTS_PROVIDER를 API에 주입한다. deepgram 선택 상태에서 key가 없고 OpenAI key만 있으면 runtime은 openai-batch-fallback을 보고할 수 있으므로, 배포 완료 판정에는 authenticated public WSS ready의 STT/TTS provider/model 네 값을 기대값과 정확히 비교하는 mic-free preflight를 사용한다.
  • mic-free preflight는 장치 열거·캡처를 하지 않으며 물리 마이크/50분 증거가 아니다. full soak는 실행 직전 사용자 명시 동의와 --confirm-physical-capture가 있을 때만 장치를 연다. Higgs는 dev 전용이다. 운영 TTS는 OpenAI API gpt-4o-mini-tts로 고정하고 Services Agreement의 앱 통합·출력 소유 근거와 최종 사용자 AI 생성 음성 고지를 함께 유지한다. 배포 완료 시 public health/ready의 provider/model exact match를 증거로 남긴다.
  • 배포·soak evidence에는 API key, auth cookie, session ID, 축어록, 응답 payload와 원음을 기록하지 않는다.