회기 무발화 0턴 분리, 자기예측 락 불변식 및 TDD 회귀 검증 완료
Some checks failed
API contract / OpenAPI type drift (push) Failing after 3m27s

This commit is contained in:
Yun Chan 2026-09-08 23:28:06 +09:00
parent a479db7a5a
commit a0311c5957
100 changed files with 4884 additions and 11210 deletions

View file

@ -23,7 +23,7 @@ from typing import Annotated, Any, Optional
from fastapi import APIRouter, Depends, HTTPException, status
from pydantic import BaseModel, Field
from .. import session_persistence
from .. import session_evaluation_repository, session_persistence
from ..deps import Principal, Role, require_role
from ..engine_client import EngineError, engine_client
from ..runtime_policy import runtime_fallback_allowed
@ -167,7 +167,7 @@ async def reevaluate_session(
)
except EngineError as e:
detail = f"engine unavailable: {e}"
write = session_persistence.SessionEvaluationWrite.from_error(
write = session_evaluation_repository.SessionEvaluationWrite.from_error(
session_id=session_id,
learner_id=sess.learner_id,
scope=body.scope if body.scope in ("session_end", "stage_transition") else "session_end",
@ -176,7 +176,7 @@ async def reevaluate_session(
counselor_identity=counselor_identity,
client_identity=client_identity,
)
saved = await session_persistence.save_session_evaluation(write)
saved = await session_evaluation_repository.save_session_evaluation(write)
if not saved:
logger.error(
"session evaluation retry error record did not reach durable store: session_id=%s error=%s",
@ -188,14 +188,14 @@ async def reevaluate_session(
detail=_safe_session_evaluation_retry_detail(),
)
write = session_persistence.SessionEvaluationWrite.from_result(
write = session_evaluation_repository.SessionEvaluationWrite.from_result(
session_id=session_id,
learner_id=sess.learner_id,
result=result,
counselor_identity=counselor_identity,
client_identity=client_identity,
)
saved = await session_persistence.save_session_evaluation(write)
saved = await session_evaluation_repository.save_session_evaluation(write)
if not saved:
detail = "session evaluation retry result was generated but could not be saved"
logger.error("%s: session_id=%s status=%s", detail, session_id, write.status)
@ -302,7 +302,7 @@ async def get_session_evaluation(
아직 평가 트리거가 없었다면 deep=None + 분포.
"""
await _load_session_or_404(session_id, principal)
record, durable = await session_persistence.load_session_evaluation(session_id, principal)
record, durable = await session_evaluation_repository.load_session_evaluation(session_id, principal)
if record is None:
return EvaluationSummary(
session_id=session_id,