feat(core): bound sealed-tree descriptors and raise directory ceiling - #81
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (14)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe change replaces retained descendant descriptors with authenticated directory evidence and bounded root-relative reopening. Held-tree operations, startup recovery, permission limits, production preflight, and integration tests now use the new model. ChangesTree recovery and lifecycle
Estimated code review effort: 5 (Critical) | ~120 minutes Merge Risk: ⚪ Minimal · up to The change is merge-ready after normal checks and review; no actionable merge-blocking risk remains. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary
clean → undo → clean --purgecoverage at the new ceiling under a 64-FD soft limit.Compatibility. This PR does not change activation or seal-WAL wire versions; manifest v1/v2 structures; the v2 fingerprint codec or golden vectors; the content-proof version; transaction state transitions; or the content, entry, manifest, path-byte, and depth limits. The larger ceiling is therefore migration-free. A request for 1,024 tree directories is rejected before item transaction mutation because it would require 1,025 active permissions when the source-parent seal is included.
Internal-only hardlink topology support and ordinary xattr support are not part of this PR; the latter requires a separate proof-schema design. Public docs are updated separately.
Validation
Passed locally on this branch:
The workspace run included 425
deguunit tests, 80 clean integration tests, and 402degu-coreunit tests. Recovery fixtures use canonical paths, cannot silently skip certification/identity failures, and pin schema-v2 compatibility collection explicitly. The 1,023-directory APFS lifecycle ran in separate processes withRLIMIT_NOFILE=64and completed clean, undo, re-clean, and purge.Both release and all-targets musl cross-checks pass from macOS; Linux CI remains responsible for runtime and final-link evidence.
Safety
fchmod.Summary by CodeRabbit
Bug Fixes
Reliability
Limits