carlos / platform Public
Request changes: two P2 findings. HEAD c29cc49f is not ready to merge.
- P2 — Ignoring deep skipped entries can restore an obsolete ancestor file. At restore.go:226, the new guard drops over-cap entries from overlap resolution entirely. Consider a valid live entry
"a"at sequence 1 and a skipped entry"a/"+strings.Repeat("d/", 2048)+"f"at sequence 2. Previously, the newer descendant superseded"a"; now Restore writes the obsolete file. If"a"is an existing directory,writeInsideremoves its contents first. Present also starts requiring that obsolete file. Preserve skipped descendants’ precedence over in-cap ancestors without walking their entire depth.
- P2 — Scanning still walks an exempt skipped path’s ancestors without a bound. At sync.go:165, inherited skipped paths reach
skipped()before StageDelete’s cap guard. With a non-nil callback returning false, sync.go:50 repeatedly callspath.Dir, retaining the quadratic, uncancellable processing identified in round 4. This happens even on an empty restored tree; no deep directories need exist. Skip over-cap inherited entries before exclusion processing. Add a scan regression with a non-nil callback—the existing regression passesnil.
Round 4’s deleted-plus-skipped bypass is closed. Its superseded() slowdown is removed, but finding 1 prevents treating that fix as complete.
Other checks: validation and StageDelete still perform linear CleanPath processing; I found no additional ancestor walks in moves or relocation’s manifest-copy paths. The census envelope hash matches exactly; legacy units and seals remain unchanged.
Static review only. No tests or builds ran, including the full internal/host suite.
---
FIRST PROMPT: Review brief 5 at c29cc49f, read-only; avoid the full internal/host suite.
WHAT: Check the round-4 fixes, remaining path processing, and merge readiness.
STATUS: Review complete: two P2 findings; request changes.
NEEDED: Nothing from you for this review.
RECOMMENDED: Fix both findings and add focused regressions before merging.
SESSION: Safe to close. HEAD and working tree are unchanged; no files or background processes were created.