You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Address v2.1.0 evaluation feedback and bump to v2.2.0 (#9)
Fix four issues identified in the v2.1.0 evaluation:
1. Fix symlink false positive in path validation (Critical)
- Changed os.path.abspath() to os.path.realpath() to resolve symlinks
- Fixes false path traversal errors on macOS where /tmp -> /private/tmp
2. Fix exclude_paths to match subdirectories (Medium)
- Added path_matches_exclusion() helper supporting both prefix and component matching
- exclude_paths=["test/"] now matches both "test/foo.sol" and "src/test/foo.sol"
- Updated 5 tools: list_contracts, search_contracts, search_functions,
run_detectors, find_dead_code
3. Add invalid detector name validation (Low)
- Added invalid_detector_names field to RunDetectorsResponse
- Validates requested detector names against available detectors
- Returns list of unrecognized names in response
4. Fix list_function_implementations for inherited functions (Low)
- Now checks both functions_declared and functions_inherited
- Updated resolve_function_implementations in types.py
Also:
- Update ruff-pre-commit from v0.8.0 to v0.14.13
- Rename hook id from 'ruff' to 'ruff-check' (new convention)
- Modernize code with pyupgrade rules (set comprehensions, dict.fromkeys)
Tests:
- Added 10 tests for path_matches_exclusion helper
- Added subdirectory exclusion test for list_contracts
- Added 3 tests for invalid detector name validation
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
0 commit comments