V4.7 Phase 2: Evidence Model Simplification (part 2)

This commit is contained in:
zoltan57
2026-08-18 15:31:33 -05:00
parent 7285a87dfb
commit 11097b9cfe
15 changed files with 312 additions and 138 deletions
+20 -6
View File
@@ -23,6 +23,7 @@ from transcription.db import session as db_session_module
from transcription.db import session_scope
from transcription.db.models import Document
from transcription.db.models import DocumentPerson
from transcription.db.models import ExecutionAttempt
from transcription.db.models import Job
from transcription.db.models import JobSource
from transcription.db.models import JobSourceStatus
@@ -131,17 +132,30 @@ async def seed_job(app_client: tuple[FastAPI, TestClient]) -> Callable[..., Awai
await session.flush()
if transcription_text is not None or error_detail is not None:
outcome = JobSourceStatus.TRANSCRIBED if transcription_text is not None else JobSourceStatus.FAILED
job_source = JobSource(job_id=job.id, source_id=source.id, status=outcome)
session.add(job_source)
await session.flush()
# V4.7: evidence lives on execution_attempt, not job_source.
executed_at = datetime.now(UTC)
session.add(
JobSource(
ExecutionAttempt(
job_source_id=job_source.id,
job_id=job.id,
source_id=source.id,
status=(
JobSourceStatus.TRANSCRIBED if transcription_text is not None else JobSourceStatus.FAILED
),
attempt_number=1,
status=outcome,
provider="openrouter",
model="google/gemini-2.5-flash",
response_received=transcription_text is not None,
sdk_response_snapshot=raw_api_response,
normalized_metadata=ai_metadata,
raw_transcription=transcription_text,
error_detail=error_detail,
ai_metadata=ai_metadata,
raw_api_response=raw_api_response,
started_at=executed_at,
finished_at=executed_at,
duration_ms=0,
)
)