Added error-proofing to prevent hardcoded ~/.hermes paths that break
profile isolation. This is a poka-yoke (mistake-proofing) measure.
Changes:
1. Added .githooks/check_hardcoded_paths.py - pre-commit hook that detects:
- Path.home() / '.hermes' patterns
- '~/.hermes' in string literals
- os.path.expanduser('~/.hermes') patterns
- os.path.join(expanduser('~'), '.hermes') patterns
2. Updated .githooks/pre-commit.py to run the hardcoded path check
3. Added CI job in .github/workflows/tests.yml to check for hardcoded paths
4. Added comprehensive tests in tests/test_hardcoded_paths.py:
- Tests for pattern detection
- Tests for get_hermes_home() and display_hermes_home() functions
- Tests for profile isolation
- Integration tests for pre-commit hook
The hook ignores:
- hermes_constants.py (source of truth)
- Test files (can mock/test behavior)
- Documentation files (.md, README, etc.)
- Comments and docstrings
This prevents the recurring pattern of hardcoded paths that break
profile isolation, as mentioned in issue #293.
Fixes#293