Implement final changes from the code quality and deduplication opportunity audit

This commit is contained in:
2026-05-23 10:05:14 -05:00
parent 5620fc5bcf
commit 72deccb4e2
32 changed files with 27 additions and 1339 deletions

View File

@@ -14,9 +14,6 @@ Primary adapters:
- `storage.ObjectStore`
- `notify.Sender`
Legacy compatibility boundary:
- `storage.Backend` remains in the storage adapter package and defaults to `NoopBackend`; current pipeline stages use `storage.ObjectStore`.
## Ownership
Adapters own:
- HTTP/subprocess/SDK argument and transport details.

View File

@@ -29,9 +29,6 @@ S3 constructor behavior:
- `Upload` streams local file and returns remote metadata.
- `Exists` maps not-found responses to `false`.
## Legacy Compatibility Interface
`storage.Backend` (with `ArchiveRequest`) remains as compatibility surface with `NoopBackend`; it is not used by current stage execution.
## Invariants
- storage layer is stateless regarding manifest/stage progression.
- publish ordering semantics are owned by stage/app code, not storage adapters.

View File

@@ -40,7 +40,7 @@ Run-local outputs are materialized back into canonical session paths before stag
`artifacts.LocalStore` enforces single-writer session lock via `.lock` file (`ErrLockConflict` on contention).
## Cleanup Semantics
Automatic post-publish cleanup (`runPostArchiveCleanup`):
Automatic post-publish cleanup:
- only runs when publish actually executed and succeeded;
- requires `uploaded=true` and `current_pointer_written=true` metadata;
- respects `pipeline.spool.delete_audio_after_publish` and `pipeline.workspace.cleanup_after_publish`;