Restore preview now displays missing paths and type mismatches as skipped items.
Restore no longer reports No differences found when skipped drift exists.
Restore exits without prompting when there are only skipped items and no applicable owner/mode changes.
Privilege checks now use lstat() instead of stat() to preserve no-follow symlink behavior.
Added pytest as a dev dependency and configured test discovery.
Added tests for CLI helpers, restore preview, database behavior, scanning, and restore planning/application.
Updated README and DEVELOPMENT docs to reflect skipped restore items, symlink behavior, and pytest usage.
Verified Bandit now runs against the chguard/ package through pre-commit.
- Restore preview now displays missing paths and type mismatches as skipped items.
- Restore no longer reports `No differences found` when skipped drift exists.
- Restore exits without prompting when there are only skipped items and no applicable owner/mode changes.
- Privilege checks now use `lstat()` instead of `stat()` to preserve no-follow symlink behavior.
- Added `pytest` as a dev dependency and configured test discovery.
- Added tests for CLI helpers, restore preview, database behavior, scanning, and restore planning/application.
- Updated `README` and `DEVELOPMENT` docs to reflect skipped restore items, symlink behavior, and `pytest` usage.
- Verified Bandit now runs against the `chguard/` package through pre-commit.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
No differences foundwhen skipped drift exists.lstat()instead ofstat()to preserve no-follow symlink behavior.pytestas a dev dependency and configured test discovery.READMEandDEVELOPMENTdocs to reflect skipped restore items, symlink behavior, andpytestusage.chguard/package through pre-commit.