Skip to content

fix: resolve startup RecursionError on Windows (Issue #13) and improve project onboarding#14

Open
0xC1ph3rX wants to merge 1 commit intoScriptSmith:masterfrom
0xC1ph3rX:fix/issue-13-startup-recursion
Open

fix: resolve startup RecursionError on Windows (Issue #13) and improve project onboarding#14
0xC1ph3rX wants to merge 1 commit intoScriptSmith:masterfrom
0xC1ph3rX:fix/issue-13-startup-recursion

Conversation

@0xC1ph3rX
Copy link

Summary

This PR fixes the startup crash reported in Issue #13 and improves setup reliability for contributors running Reaper from source.

Main fix (Issue #13)

components/globals.py had recursive path traversal in _calc_path() that could loop forever on Windows drive/root boundaries, causing:

RecursionError: maximum recursion depth exceeded

I replaced the recursive implementation with an iterative parent walk and added safe base cases so traversal stops correctly at root boundaries.

Additional improvements included in this branch

  1. Added regression tests for path resolution edge cases (tests/test_globals.py).
  2. Added clearer Quick Start + Troubleshooting docs in README.md (Windows/macOS/Linux, dependency and API-key setup guidance).
  3. Added lightweight CI (.github/workflows/ci.yml) for Python 3.10, 3.11, 3.12.
  4. Added modern project metadata (pyproject.toml) and dev requirements (requirements-dev.txt).
  5. Refreshed dependency constraints in requirements.txt.
  6. Added clearer API error hints in components/job_queue.py for invalid credentials and deprecated/changed endpoints.

Validation

Ran locally:

  • python3 -m unittest discover -s tests -p "test_*.py"
  • python3 -m py_compile components/globals.py components/job_queue.py reaper.py
  • python3 -c "import os; from components.globals import BUNDLE_DIR; assert os.path.isdir(BUNDLE_DIR)"

Closes #13.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Maximum recursion depth exceeded

1 participant