Add typed artifact codec foundation

This commit is contained in:
2026-07-17 05:41:20 +00:00
parent 075888c97f
commit fc1b57bde2
22 changed files with 795 additions and 33 deletions

View File

@@ -53,7 +53,15 @@ runtime sensitive-data handling belongs in [Operations](../operations.md).
`pipeline.Registries` holds constructors used during execution.
`pipeline.ModuleCatalog` exposes their specs during configuration validation and
resolution. Separate registries exist for every stage and for validators;
`ValidatorChainRegistry` stores production default-chain mappings.
`ValidatorChainRegistry` stores production default-chain mappings. Both
containers also carry an `ArtifactCodecRegistry`. Generic registration records
one codec per stable artifact kind, validates its schema metadata and JSON
Schema, retains the exact schema digest and Go type, and safely encodes or
decodes framework-erased values with typed errors on incompatibility.
Production composition initializes the artifact codec registry without adding
codec entries. The resolver and runner do not consult it yet, and production
lanes remain on the raw artifact path.
A `ModuleSpec` declares its stage plus required and provided capabilities.
Chunk, extract, merge, and normalize specs may also declare reference slots.
@@ -183,6 +191,8 @@ durable manifest and logical file schemas are defined in the
- `internal/core/config/effective_config_test.go`: config-to-resolution boundary.
- `internal/framework/pipeline/profile_test.go`: selection, defaults,
capabilities, validator chains, and digest behavior.
- `internal/framework/pipeline/artifact_codec_registry_test.go`: typed codec
metadata, registration, erasure safety, strict decoding, and cloning.
- `internal/framework/pipeline/references_test.go`: target resolution and
materialization.
- `internal/framework/pipeline/runner_test.go`: stage transitions, retries,