Fix warm cache symlink merges - #52
Conversation
8b2aac2 to
b35c006
Compare
💡 Codex Reviewaction/internal/stickydisk/mount_unix.go Lines 153 to 155 in 8b2aac2 When a warm cache contains a directory at a path that is now a symlink or regular file in the current target, GNU action/internal/stickydisk/apt.go Lines 63 to 65 in 8b2aac2 When action/internal/gitproxy/serve.go Lines 127 to 130 in 8b2aac2 If a Git request is still active when the post step stops the proxy, action/internal/gitproxy/fallback.go Lines 58 to 61 in 8b2aac2 When a Git LFS client sends a read-only request such as ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
b35c006 to
ba29475
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ba29475e54
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
ba29475 to
bb73f35
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Fixes the unresolved P1 review feedback from #43 (
discussion_r3702181296).Warm user-owned cache merges remove colliding destination symlinks and entry-type conflicts before copying. Root-owned apt merges build the same conflict view through
sudo find, so unreadable apt directories and stale file/directory layouts are both handled. Linux keeps GNUcp --remove-destinationprotection for changes between conflict cleanup and copy.Adds regressions for writable external file symlinks, file/directory layout changes, directory symlinks, and unreadable root-owned apt contents. Regenerates the shipped Linux amd64, Linux arm64, and Windows amd64 binaries.
Validation
go test ./...go test -race ./internal/stickydiskgo vet ./internal/stickydiskGOOS=windows GOARCH=amd64 go test -c ./internal/stickydiskupx -t main-linux-amd64 main-linux-arm64 main-windows-amd64.exegit diff --check