v2 프로토콜 정본·워커 판정 기록, JEV-002 대시보드·TODO·백로그, 테스트 수집 인벤토리와 아키텍처 가이드를 갱신한다.
This commit is contained in:
parent
293ff7f0ab
commit
b7bd24f016
7 changed files with 319 additions and 4 deletions
|
|
@ -142,6 +142,8 @@ SSE `done`, `TurnRecord` JSON, `provider_events`에는 포함하지 않는다.
|
|||
trace insert와 `state_after` upsert를 같은 DB transaction으로 묶고, 실패 시 rollback한다. legacy·위기·실패·취소
|
||||
경로는 trace 없이 기존 상태 갱신 계약을 유지한다.
|
||||
|
||||
Jev v2(2026-09-29)는 한 요청에 A(상담자 발화 판정)·B(감정 9축)·C(표현) 최대 20문항을 묻고, 감쇠 없는 이번 턴 반응·비대칭 기분 전이·개방도 게이트로 L3 `정서 연기 지시`를 만든다. trace는 `schema_version=2`로 판정·반응·표현 계획을 더하고, 학습자·교수자용 고정 문구 속마음 요약 `ClientInnerReactionV1`은 같은 transaction에서 `app.client_inner_reaction`에 저장해 피드백 정책이 켜진 경우에만 stream `done`·`TurnResponse`·음성 `reply`와 리뷰 `ReviewTurn.innerReaction`으로 노출한다. 정본은 [v2 프로토콜](../decisions/jev-client-affect-v2.md)이다.
|
||||
|
||||
### 2.3 페르소나 메시지 빌더 — `app/services/persona.py` (L0~L6)
|
||||
|
||||
`build_turn_messages(card, state, learner_text_masked, ...)`가 한 턴의 `EngineMessage[]`를 조립한다.
|
||||
|
|
@ -851,7 +853,8 @@ DB는 PostgreSQL 16 + pgvector(단일 SoR). 초기화 SQL은 `infra/db/init/`에
|
|||
다대다, `supervisor_comment`(rationale/critique + intent_deviation JSONB), `safety_events`.
|
||||
- **내담자 감정 trace** `app.client_affect_trace` — 완료된 Jev 내담자 턴의 내부 전이 provenance. `turn_id` 기본키와
|
||||
`session_id`는 `app.turns`/`app.sessions`를 cascade 참조하고, trace와 상태 upsert는 성공한 client append와 같은
|
||||
transaction에 속한다. trace가 없는 과거·legacy·위기·실패·취소 턴은 추정값으로 채우지 않는다.
|
||||
transaction에 속한다. trace가 없는 과거·legacy·위기·실패·취소 턴은 추정값으로 채우지 않는다. v1·v2 기록이 혼재하며 관리자 조회가 `schema_version`으로 구분한다.
|
||||
- **내담자 속마음 요약** `app.client_inner_reaction` — migration 24. Jev v2 성공 턴의 고정 문구 요약(`reaction jsonb`). trace와 같은 transaction에 insert하며, RLS SELECT는 AI 경로를 차단하고 관리자·교수자(cohort)·본인 학습자만 허용한다. UPDATE·DELETE 정책은 없다.
|
||||
- **사례개념화 제출물** `app.case_worksheet` — 회기 리뷰의 축어록 기반 자동 초안을 학습자가 편집해 저장한 JSONB.
|
||||
`session_id` 단위 upsert이며, `GET /review`에서 자동 초안보다 우선된다.
|
||||
- **교수자 검토 상태** `app.session_review_status` — 교수자/관리자의 회기 검토 상태, 메모, 검토 시각을
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Vignette 저장소의 모든 검증 수단(백엔드 단위 테스트, 웹 타
|
|||
| API 타입 생성 체크 | `apps/web` | `npm run check:api-types` | 불필요 | 불필요 | 불필요 | 불필요 | 불필요 | pass |
|
||||
| 웹 타입체크 | `apps/web` | `npm run typecheck` | 불필요 | 불필요 | 불필요 | 불필요 | 불필요 | pass |
|
||||
| 웹 빌드 | `apps/web` | `npm run build` | 불필요 | 불필요 | 불필요 | 불필요 | 불필요 | pass |
|
||||
| Playwright E2E(전체) | `apps/web` | `npm run e2e` | **필요(+시드)** | **필요** | 자동기동 | 일부만 | **필요** | 현재 수집 1251 tests / 71 files · 현 작업트리 전체 GREEN 미검증 |
|
||||
| Playwright E2E(전체) | `apps/web` | `npm run e2e` | **필요(+시드)** | **필요** | 자동기동 | 일부만 | **필요** | 현재 수집 1277 tests / 72 files · 현 작업트리 전체 GREEN 미검증 |
|
||||
|
||||
핵심 원칙: **단위 테스트(pytest)와 타입체크/빌드는 외부 서비스 없이 단독 실행된다.**
|
||||
**E2E만 풀스택(DB+API+웹+브라우저)을 요구한다.** 아래 각 절에서 근거와 절차를 설명한다.
|
||||
|
|
@ -326,7 +326,7 @@ VITE_API_BASE=http://127.0.0.1:8000 npm run e2e # 프록시 대신 API
|
|||
|
||||
### 3.6 실측 테스트 개수 (현재)
|
||||
|
||||
2026-09-22 `py -3.11 -X utf8 scripts/check-dev-dashboard-ssot.py`가 실행한 `npx playwright test --list` 실제 수집 기준 **현재 수집 1251 tests / 71 files**다
|
||||
2026-09-29 `py -3.11 -X utf8 scripts/check-dev-dashboard-ssot.py`가 실행한 `npx playwright test --list` 실제 수집 기준 **현재 수집 1277 tests / 72 files**다
|
||||
(유스케이스 16테마 `uc-*.spec.ts` 239 시나리오 포함).
|
||||
이 숫자는 수집량이지 통과량이 아니다. 현 작업트리 전체 완주는 아직 증거가 없으며,
|
||||
과거 전체 GREEN 기록과 이번 focused/release gate 결과를 구분해 적는다.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue