Download S3 audio during prepare

This commit is contained in:
2026-05-16 14:33:42 +00:00
parent 1e6db89dd4
commit 24cce49a70
10 changed files with 429 additions and 31 deletions

View File

@@ -49,7 +49,7 @@ YAML decoding is strict (`KnownFields(true)`), so unknown fields fail fast.
## Storage And Archive Foundations
Narratio now includes configuration and path-model foundations for future S3 audio input and archive support.
Narratio now includes configuration and path-model foundations for archive support, plus implemented prepare-stage S3 audio input.
Implemented foundations:
@@ -58,7 +58,7 @@ Implemented foundations:
- `pipeline.archive` config shape (`enabled`, `upload_run`, `promote_artifacts`)
- promotion-rule validation (`from`/`to` required, relative-only paths, traversal rejected)
- `session.campaign` requirement for campaign-aware path construction
- optional `session.inputs.audio_s3.prefix` modeling (not executed yet)
- optional `session.inputs.audio_s3.prefix` modeling and prepare-stage S3 audio download
- run ID generation and S3/local path helper foundations
- manifest run/path identity fields
@@ -79,10 +79,11 @@ Current boundaries:
- `audio_dir`/`audio_files` and `audio_s3` are mutually exclusive
- real S3-compatible backend now exists in the storage adapter package
- storage backend tests use fake storage and do not require live S3
- no prepare-stage S3 list/download behavior yet
- no archive-stage S3 upload/promotion behavior yet
- no `current/manifest.json` or `current/run_id.txt` uploads yet
S3 input details and current boundaries are documented in [docs/s3-audio-input.md](docs/s3-audio-input.md).
## Remote Storage Backend
Narratio includes an object-store backend layer for future prepare/archive work:
@@ -104,7 +105,8 @@ Key invariant:
Current boundary:
- this backend layer is implemented but not yet wired into prepare-stage audio retrieval or archive-stage uploads
- `prepare` uses `List` + `Download` through the backend when `session.inputs.audio_s3` is configured
- archive-stage uploads/promotion are still not implemented
## Canonical Stage Order