perf(delivery): reduce manifest ancestor validation overhead

This commit is contained in:
2026-10-25 06:41:47 +08:00
parent c54d989fc7
commit 944ac0a03b
2 changed files with 17 additions and 2 deletions
+5 -2
View File
@@ -364,9 +364,12 @@ def validate(data: dict) -> dict:
raise DeliveryError("duplicate bundle directory")
directory_set.add(name)
for name in seen | directory_set:
for parent in Path(name).parents:
if parent.as_posix() != "." and parent.as_posix() not in directory_set:
# Names are already canonical; walk their lexical parent components.
parent, separator, _ = name.rpartition("/")
while separator:
if parent not in directory_set:
raise DeliveryError("missing payload parent directory")
parent, separator, _ = parent.rpartition("/")
return data