Skip to content

refactor: dead code cleanup #2218

@VascoSch92

Description

@VascoSch92

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

  1. Exception Handling Boilerplate: Most instances are unused exception variables (exc_tb, exc_val) in catch blocks
  2. Test Setup Variables: Many test files have leftover setup variables that are no longer needed
  3. Legacy Parameters: Some method signatures include parameters that are no longer used
  4. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions