Adopt unreadable Desktop Spark OS discovery guard#620
Merged
Conversation
discover_repo_paths in system_map.py checked desktop.exists() then iterated desktop.iterdir() with no error handling. On macOS the default ~/Desktop is TCC-protected: .exists() returns True but .iterdir() raises PermissionError ([Errno 1] Operation not permitted). That uncaught error crashed `spark os capabilities|compile|authority|trace|memory` with a raw traceback (exit 1). A missing Desktop was already handled gracefully; an unreadable one now is too. Merged PR #603 hardened the sibling filesystem walkers in this file against PermissionError but missed discover_repo_paths. This completes that coverage with the same narrow OSError handling pattern. Fix: snapshot desktop.iterdir() inside try/except OSError -> [] before iterating, mirroring the surrounding narrow-exception style. Adds a regression test that drives discover_repo_paths with a desktop whose iterdir() raises PermissionError plus a non-empty installed dict, asserting it returns the installed paths without raising. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Maintainer adoption of #619 by @banse. The participant PR was useful and packet-ready, but GitHub blocked direct merge because the branch was behind current master. This PR cherry-picks the same narrow fix onto current master. Verification run locally: python -m pytest tests/test_system_map.py -k unreadable_desktop; python -m pytest tests/test_system_map.py; python -m pytest tests/test_cli.py; python -m compileall src; git diff --check master..HEAD. Credit source: #619, subject to normal Spark Compete gates and no-double-credit rules.