Slice 26: Transcript Source Runtime
Intent#
Foreground sync passes ready transcript material to Ingest as
transcript:<absolute path>. Ingest should not rely on the harness being able
to read arbitrary provider transcript paths from outside the repo sandbox.
This slice adds a transcript source runtime adapter behind the existing
SourceRuntimeAdapter port.
Scope#
- Support
transcript:<path>when the transcript resolves to a local JSONL file. - Parse JSON Lines with the maintained
jsonlinespackage. - Validate known Codex and Claude transcript shapes with Pydantic models at the transcript integration edge.
- Render readable line-numbered transcript material for the Ingest prompt.
- Keep transcript runtime bounded by characters.
- Truncate transcript runtime from the tail, because sync transcript sources are append-only and recent lines are usually the new material.
Out Of Scope#
- Cursor-aware source-runtime requests.
- Provider-specific full transcript reconstruction.
- Hosted transcript storage.
- Raw transcript upload.
- Cursor transcript support.
Design Decision#
Use a local runtime adapter, not a sync-specific prompt branch.
SyncWorkflow remains responsible for transcript eligibility and cursor
updates. IngestWorkflow remains source-kind neutral. The transcript adapter
translates external provider JSONL into SourceRuntime, just as Git and GitHub
adapters translate their external shapes.
Files#
src/codealmanac/integrations/sources/transcripts/runtime.pysrc/codealmanac/integrations/sources/transcripts/__init__.pysrc/codealmanac/integrations/sources/__init__.pytests/test_transcript_source_runtime.pytests/test_sync_workflow.py- steering docs under
docs/python-port/
Verification#
- Focused transcript runtime tests.
- Sync/Ingest prompt test proving transcript runtime reaches the harness.
- Full pytest.
- Full ruff.
git diff --check.- Isolated foreground sync dogfood with JSONL transcript runtime material.