Create run workspaces only when needed

This commit is contained in:
2026-09-05 16:34:59 +00:00
parent c2806a1615
commit 51d21676c1
9 changed files with 64 additions and 6 deletions

View File

@@ -157,15 +157,22 @@ func initializeLockedInvocation(runtime *invocationRuntime) error {
if err := runtime.manifestStore.Save(runtime.ctx, runtime.manifestPath, m); err != nil {
return fmt.Errorf("save manifest identity %q: %w", runtime.manifestPath, err)
}
if err := fileops.EnsureWorkspaceDirectory(runtime.identity.LocalWorkDir); err != nil {
return runtime.persistTerminalFailure(fmt.Errorf("create run directory %q: %w", runtime.identity.LocalWorkDir, err))
}
if _, err := loadSecretsFromConfig(runtime.env.Config, runtime.env.Logger); err != nil {
return runtime.persistTerminalFailure(fmt.Errorf("load secrets from files: %w", err))
}
return nil
}
func (runtime *invocationRuntime) ensureRunWorkspaceFor(selected stage.Stage) error {
if policy, ok := selected.(stage.RunWorkspacePolicy); ok && !policy.RequiresRunWorkspace() {
return nil
}
if err := fileops.EnsureWorkspaceDirectory(runtime.identity.LocalWorkDir); err != nil {
return fmt.Errorf("create run directory %q: %w", runtime.identity.LocalWorkDir, err)
}
return nil
}
func (runtime *invocationRuntime) persistTerminalFailure(err error) error {
return persistSessionTerminalFailure(
runtime.ctx,