Stabilize runtime auth and E2E coverage

This commit is contained in:
Yun Chan 2026-06-26 14:47:00 +09:00
parent 6a3e3b541c
commit 188e899394
133 changed files with 55987 additions and 6775 deletions

View file

@ -42,6 +42,8 @@ class InProcSession:
persona: PersonaCard
state: SessionState
session_no: int = 1
created_at: float = field(default_factory=time.time)
ended_at: Optional[float] = None
turns: list[TurnRecord] = field(default_factory=list)
ended: bool = False
prev_rapport_credit: float = 0.0 # carry-over delta 계산용
@ -55,7 +57,7 @@ class InProcSession:
class SessionStore:
"""in-memory 세션 레지스트리. DB degraded 시 SoR 대용."""
"""in-memory 세션 저장소. DB degraded 시 SoR 대용."""
def __init__(self) -> None:
self._sessions: dict[str, InProcSession] = {}
@ -89,6 +91,12 @@ class SessionStore:
def get(self, session_id: str) -> Optional[InProcSession]:
return self._sessions.get(session_id)
def put(self, session: InProcSession) -> None:
self._sessions[session.session_id] = session
def list(self) -> list[InProcSession]:
return list(self._sessions.values())
def append_turn(self, session_id: str, turn: TurnRecord) -> None:
s = self._sessions.get(session_id)
if s is not None:
@ -103,6 +111,7 @@ class SessionStore:
s = self._sessions.get(session_id)
if s is not None:
s.ended = True
s.ended_at = time.time()
return s
def remove(self, session_id: str) -> None: