Dead Code Cleanup: 67 unused variables, parameters, and imports identified
I had OpenHands hunt for dead code. This is what it found. :-)
Dead Code Analysis Summary
A comprehensive static analysis of the codebase has identified 67 instances of dead code across the repository. These include unused variables, parameters, imports, and unreachable code that can be safely removed to improve code maintainability.
Summary by Category
| Category |
Count |
| Unused Variables |
45 |
| Unused Parameters |
13 |
| Unused Imports |
3 |
| Unreachable Code |
1 |
| Unused Constants/Attributes |
5 |
Detailed Findings
🔴 High Priority (100% Confidence)
| File |
Line |
Issue |
Link |
examples/02_remote_agent_server/01_convo_with_local_agent_server.py |
106 |
Unused exception variables exc_tb, exc_val |
View Code |
openhands-sdk/openhands/sdk/agent/acp_agent.py |
258 |
Unused variable output_byte_limit |
View Code |
openhands-sdk/openhands/sdk/agent/acp_agent.py |
264,269,274,279 |
Unused terminal_id parameters |
View Code |
openhands-sdk/openhands/sdk/conversation/fifo_lock.py |
117 |
Unused exception variables |
View Code |
openhands-sdk/openhands/sdk/conversation/impl/remote_conversation.py |
547 |
Unused exception variables |
View Code |
openhands-sdk/openhands/sdk/conversation/state.py |
494 |
Unused exception variables |
View Code |
openhands-sdk/openhands/sdk/utils/async_executor.py |
107 |
Unused exception variables |
View Code |
openhands-sdk/openhands/sdk/workspace/base.py |
56 |
Unused exception variables |
View Code |
openhands-workspace/openhands/workspace/apptainer/workspace.py |
345 |
Unused exception variables |
View Code |
openhands-workspace/openhands/workspace/cloud/workspace.py |
373 |
Unused exception variables |
View Code |
openhands-workspace/openhands/workspace/docker/workspace.py |
345 |
Unused exception variables |
View Code |
openhands-workspace/openhands/workspace/remote_api/workspace.py |
415 |
Unused exception variables |
View Code |
openhands-sdk/openhands/sdk/critic/impl/api/critic.py |
54 |
Unreachable code after raise |
View Code |
openhands-sdk/openhands/sdk/security/grayswan/analyzer.py |
92 |
Unused variable __context |
View Code |
🟡 Medium Priority (60-80% Confidence)
| File |
Line |
Issue |
Link |
examples/01_standalone_sdk/21_generate_extraneous_conversation_costs.py |
73 |
Unused completion_response |
View Code |
examples/01_standalone_sdk/28_ask_agent_example.py |
120 |
Unused final_event_count |
View Code |
openhands-agent-server/openhands/agent_server/server_details_router.py |
15-20 |
Unused route variables |
View Code |
openhands-sdk/openhands/sdk/agent/acp_agent.py |
487 |
Unused _filtered_reader |
View Code |
openhands-tools/openhands/tools/preset/planning.py |
94-96 |
Unused imports |
View Code |
🧪 Test Files with Dead Code
| File |
Count |
Issue |
Link |
tests/agent_server/test_env_parser.py |
30+ |
Repeated unused clean_env variables |
View File |
tests/sdk/llm/test_vision_support.py |
2 |
Unused mock_sv variables |
View File |
tests/sdk/conversation/test_conversation_stats.py |
1 |
Unused mock_file_store |
View File |
Common Patterns Identified
- Exception Handling Boilerplate: Most instances are unused exception variables (
exc_tb, exc_val) in catch blocks
- Test Setup Variables: Many test files have leftover setup variables that are no longer needed
- Legacy Parameters: Some method signatures include parameters that are no longer used
- Import Cleanup: Several unused imports in various files
Recommended Actions
Phase 1: High Confidence Cleanup (100%)
- Remove all unused exception variables in catch blocks
- Remove unused
output_byte_limit parameter
- Remove unreachable code after raise statements
Phase 2: Medium Confidence Review (60-80%)
- Review and remove unused class attributes and constants
- Clean up unused method parameters (may require API compatibility checks)
- Remove unused imports
Phase 3: Test Cleanup
- Remove unused test setup variables
- Clean up test helper functions
Tools Used
- Vulture: Static analysis for dead code detection
- Pylint: Unused import/variable detection
- Manual verification: Code review for context
Dead Code Cleanup: 67 unused variables, parameters, and imports identified
I had OpenHands hunt for dead code. This is what it found. :-)
Dead Code Analysis Summary
A comprehensive static analysis of the codebase has identified 67 instances of dead code across the repository. These include unused variables, parameters, imports, and unreachable code that can be safely removed to improve code maintainability.
Summary by Category
Detailed Findings
🔴 High Priority (100% Confidence)
examples/02_remote_agent_server/01_convo_with_local_agent_server.pyexc_tb,exc_valopenhands-sdk/openhands/sdk/agent/acp_agent.pyoutput_byte_limitopenhands-sdk/openhands/sdk/agent/acp_agent.pyterminal_idparametersopenhands-sdk/openhands/sdk/conversation/fifo_lock.pyopenhands-sdk/openhands/sdk/conversation/impl/remote_conversation.pyopenhands-sdk/openhands/sdk/conversation/state.pyopenhands-sdk/openhands/sdk/utils/async_executor.pyopenhands-sdk/openhands/sdk/workspace/base.pyopenhands-workspace/openhands/workspace/apptainer/workspace.pyopenhands-workspace/openhands/workspace/cloud/workspace.pyopenhands-workspace/openhands/workspace/docker/workspace.pyopenhands-workspace/openhands/workspace/remote_api/workspace.pyopenhands-sdk/openhands/sdk/critic/impl/api/critic.pyopenhands-sdk/openhands/sdk/security/grayswan/analyzer.py__context🟡 Medium Priority (60-80% Confidence)
examples/01_standalone_sdk/21_generate_extraneous_conversation_costs.pycompletion_responseexamples/01_standalone_sdk/28_ask_agent_example.pyfinal_event_countopenhands-agent-server/openhands/agent_server/server_details_router.pyopenhands-sdk/openhands/sdk/agent/acp_agent.py_filtered_readeropenhands-tools/openhands/tools/preset/planning.py🧪 Test Files with Dead Code
tests/agent_server/test_env_parser.pyclean_envvariablestests/sdk/llm/test_vision_support.pymock_svvariablestests/sdk/conversation/test_conversation_stats.pymock_file_storeCommon Patterns Identified
exc_tb,exc_val) in catch blocksRecommended Actions
Phase 1: High Confidence Cleanup (100%)
output_byte_limitparameterPhase 2: Medium Confidence Review (60-80%)
Phase 3: Test Cleanup
Tools Used