Centralize effective artifact selection

This commit is contained in:
2026-08-10 22:27:06 +00:00
parent f39fc94610
commit af492c9e97
20 changed files with 457 additions and 130 deletions

View File

@@ -203,7 +203,10 @@ func (prepareStage) Run(ctx context.Context, env *Env, m *manifest.Manifest) (*S
}
}
previousRequirements := collectPreparePreviousRequirements(env.Config)
previousRequirements, err := collectPreparePreviousRequirements(env.Config, env.EffectiveArtifacts)
if err != nil {
return nil, fmt.Errorf("prepare: resolve previous artifact requirements: %w", err)
}
var previousHydration *previousSessionHydrationResult
if err := clearManagedPreviousState(paths); err != nil {
return nil, fmt.Errorf("prepare: clear previous-session cache: %w", err)
@@ -513,11 +516,21 @@ func countAudioInputs(inputs []manifest.InputRecord) int {
return count
}
func collectPreparePreviousRequirements(cfg *config.Config) []artifacts.PreviousArtifactRequirement {
func collectPreparePreviousRequirements(cfg *config.Config, effective artifacts.EffectiveArtifactSet) ([]artifacts.PreviousArtifactRequirement, error) {
if cfg == nil || cfg.Pipeline == nil || cfg.Pipeline.Scriptorium == nil {
return nil
return nil, nil
}
return artifacts.CollectPreviousArtifactRequirements(cfg.Pipeline.Scriptorium.Artifacts)
if !effective.Resolved() {
var err error
effective, err = artifacts.ResolveEffectiveArtifactSet(
artifacts.ConfiguredArtifactDefinitions(cfg.Pipeline.Scriptorium.Artifacts),
nil,
)
if err != nil {
return nil, err
}
}
return artifacts.CollectPreviousArtifactRequirements(cfg.Pipeline.Scriptorium.Artifacts, effective), nil
}
func clearManagedPreviousState(paths artifacts.SessionPaths) error {