Fixed a redundant path bug for previous session artifacts

This commit is contained in:
2026-05-21 10:58:49 -05:00
parent d8f58dce31
commit a813bd5a50
7 changed files with 48 additions and 2 deletions

View File

@@ -2,6 +2,7 @@ package artifacts
import (
"path/filepath"
"strings"
"gitea.maximumdirect.net/eric/narratio/internal/config"
)
@@ -64,7 +65,7 @@ func SessionPreviousArtifactsDirForCampaign(rootDir, campaign, sessionID string)
func SessionPreviousArtifactPathForCampaign(rootDir, campaign, sessionID, artifactRelativePath string) string {
return filepath.Join(
SessionPreviousArtifactsDirForCampaign(rootDir, campaign, sessionID),
filepath.FromSlash(artifactRelativePath),
filepath.FromSlash(previousArtifactCacheRelativePath(artifactRelativePath)),
)
}
@@ -105,7 +106,19 @@ func SessionPreviousArtifactsDir(paths SessionPaths) string {
// SessionPreviousArtifactPath returns a path under previous/artifacts for already-resolved session paths.
func SessionPreviousArtifactPath(paths SessionPaths, artifactRelativePath string) string {
return filepath.Join(paths.PreviousArtifactsDir, filepath.FromSlash(artifactRelativePath))
return filepath.Join(paths.PreviousArtifactsDir, filepath.FromSlash(previousArtifactCacheRelativePath(artifactRelativePath)))
}
func previousArtifactCacheRelativePath(artifactRelativePath string) string {
rel := filepath.ToSlash(filepath.Clean(filepath.FromSlash(strings.TrimSpace(artifactRelativePath))))
if rel == "." {
return ""
}
const artifactsPrefix = "artifacts/"
if strings.HasPrefix(rel, artifactsPrefix) && len(rel) > len(artifactsPrefix) {
return strings.TrimPrefix(rel, artifactsPrefix)
}
return rel
}
func buildSessionPaths(workspaceRoot, campaign, sessionID string) SessionPaths {