Files
wehub-resource-sync f99010fae1
Desktop Artifacts / Desktop Build (Linux) (push) Waiting to run
Desktop Artifacts / Desktop Build (Windows) (push) Waiting to run
Desktop Artifacts / Desktop Build (Linux (arm64)) (push) Waiting to run
Desktop Artifacts (macOS) / Desktop Build (macOS (aarch64)) (push) Waiting to run
Desktop Artifacts (macOS) / Desktop Build (macOS (x86_64)) (push) Waiting to run
CI / lint (push) Failing after 1s
CI / frontend (push) Failing after 1s
CI / scripts (push) Failing after 1s
CI / Go Test (ubuntu-latest) (push) Failing after 0s
CI / frontend-node-25 (push) Failing after 1s
CI / docs (push) Failing after 0s
CI / coverage (push) Failing after 0s
CI / e2e (push) Failing after 0s
Docker / build-and-push (push) Failing after 1s
CI / integration (push) Failing after 4m43s
CI / Go Test (windows-latest) (push) Has been cancelled
CI / Desktop Unit Tests (Windows) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:30:36 +08:00

40 lines
1.1 KiB
Go

// ABOUTME: Root-containment checks used to skip provider changed-path
// ABOUTME: classification for agents whose roots cannot contain the path.
package sync
import (
"path/filepath"
"strings"
)
// changedPathWithinAnyRoot reports whether path lies within at least
// one of roots (see changedPathWithinRoot).
func changedPathWithinAnyRoot(path string, roots []string) bool {
for _, root := range roots {
if changedPathWithinRoot(path, root) {
return true
}
}
return false
}
// changedPathWithinRoot reports whether path is root itself or lies
// under it, including the "root#member" virtual form used for
// sessions stored inside container files. It mirrors the containment
// clauses of storedSourcePathHintQuery.
func changedPathWithinRoot(path, root string) bool {
root = filepath.Clean(root)
if root == "" || root == "." {
return false
}
path = filepath.Clean(path)
if path == root {
return true
}
if root == string(filepath.Separator) {
return strings.HasPrefix(path, root)
}
return strings.HasPrefix(path, root+string(filepath.Separator)) ||
strings.HasPrefix(path, root+"#")
}