Description
Dogfooding — worth actually testing before filing. scan() follows symlinks via Path.resolve() in path_to_file but rglob may follow symlink loops.
Files
peek/peek/scanner.py — add is_symlink check + visited inodes
peek/tests/test_scanner.py — add test_symlink_loop
Acceptance
Time
~45 min
Description
Dogfooding — worth actually testing before filing.
scan()follows symlinks viaPath.resolve()inpath_to_filebutrglobmay follow symlink loops.Files
peek/peek/scanner.py— addis_symlinkcheck + visited inodespeek/tests/test_scanner.py— addtest_symlink_loopAcceptance
tmp/repo/a.py -> b.pysymlink loop doesn’t hang or double-countpytest -qpassesTime
~45 min