개선관리 요구사항과 Google 로그인을 완료

This commit is contained in:
Yun Chan 2026-08-28 16:07:09 +09:00
parent cc0a15b7c6
commit 2a39636163
112 changed files with 10166 additions and 527 deletions

View file

@ -23,7 +23,7 @@ from ..contracts.multimodal_alliance import (
ModalityAxisMeasurement,
)
from ..deps import AIView, Principal, Role, db_for_ai_view, require_role
from ..services import multimodal_alliance_store
from ..services import feedback_policy, multimodal_alliance_store
router = APIRouter(tags=["multimodal-alliance"])
@ -521,7 +521,14 @@ async def sweep_multimodal_retention(
async def get_multimodal_session_metadata(
session_id: UUID,
principal: HumanPrincipal,
include_derived: bool = True,
) -> MultimodalSessionMetadataResponse:
expose_feedback = await feedback_policy.can_expose_session_learner_feedback(
session_id,
principal,
)
if include_derived and not expose_feedback:
await feedback_policy.require_session_learner_feedback(session_id, principal)
try:
payload = await multimodal_alliance_store.read_session_metadata(
principal=principal,
@ -529,6 +536,15 @@ async def get_multimodal_session_metadata(
)
except multimodal_alliance_store.MultimodalAllianceError as exc:
raise _http_error(exc) from exc
if not include_derived:
payload = {
**payload,
"timelines": [],
"word_timestamps": [],
"voice_events": [],
"measurements": [],
"fusion_decisions": [],
}
return MultimodalSessionMetadataResponse.model_validate(payload)