

























@@ -616,6 +616,17 @@ enum ExecApprovalsStore {
616616let trimmedResolved = entry.lastResolvedPath?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
617617let normalizedResolved = trimmedResolved.isEmpty ? nil : trimmedResolved
618618619+if !ExecApprovalHelpers.patternHasPathSelector(trimmedPattern),
620+ !trimmedResolved.isEmpty,
621+ case let .valid(migratedPattern) = ExecApprovalHelpers.validateAllowlistPattern(trimmedResolved) {
622+return ExecAllowlistEntry(
623+ id: entry.id,
624+ pattern: migratedPattern,
625+ lastUsedAt: entry.lastUsedAt,
626+ lastUsedCommand: entry.lastUsedCommand,
627+ lastResolvedPath: normalizedResolved)
628+}
629+619630switch ExecApprovalHelpers.validateAllowlistPattern(trimmedPattern) {
620631case let .valid(pattern):
621632return ExecAllowlistEntry(
@@ -724,11 +735,10 @@ enum ExecApprovalHelpers {
724735static func validateAllowlistPattern(_ pattern: String?) -> ExecAllowlistPatternValidation {
725736let trimmed = pattern?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
726737guard !trimmed.isEmpty else { return .invalid(.empty) }
727-guard self.containsPathComponent(trimmed) else { return .invalid(.missingPathComponent) }
728738return .valid(trimmed)
729739}
730740731-static func isPathPattern(_ pattern: String?) -> Bool {
741+static func isValidAllowlistPattern(_ pattern: String?) -> Bool {
732742switch self.validateAllowlistPattern(pattern) {
733743case .valid:
734744true
@@ -737,6 +747,11 @@ enum ExecApprovalHelpers {
737747}
738748}
739749750+static func isPathPattern(_ pattern: String?) -> Bool {
751+let trimmed = pattern?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
752+return self.patternHasPathSelector(trimmed)
753+}
754+740755static func parseDecision(_ raw: String?) -> ExecApprovalDecision? {
741756let trimmed = raw?.trimmingCharacters(in: .whitespacesAndNewlines) ?? ""
742757guard !trimmed.isEmpty else { return nil }
@@ -759,7 +774,7 @@ enum ExecApprovalHelpers {
759774return pattern.isEmpty ? nil : pattern
760775}
761776762-private static func containsPathComponent(_ pattern: String) -> Bool {
777+static func patternHasPathSelector(_ pattern: String) -> Bool {
763778 pattern.contains("/") || pattern.contains("~") || pattern.contains("\\")
764779}
765780}
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。