bbsbot 2026-02-24
Massive dead code removal, game loop decomposition, manager split, and MCP tools extraction
184 files · 4,031+ · 10,983-

Dead code removal

13 files changed
  • play_tw2002.py Deleted — legacy play script
  • play_tw2002_full.py Deleted — legacy play script
  • play_tw2002_multibot.py Deleted — legacy play script
  • play_tw2002_trading.py Deleted — legacy play script
  • test_all_patterns.py Deleted — test script
  • execution.py Deleted — trading package removed
  • navigation.py Deleted — trading package removed
  • operations.py Deleted — trading package removed
  • parsers.py Deleted — trading package removed
  • validation.py Deleted — trading package removed
  • sophisticated_trader.py Deleted — 483 lines of dead code
  • bot_twerk.py Deleted — 158 lines of dead code
  • test_trading.py Deleted — trading tests removed (278 lines)
  • Deleted commands/scripts/ entirely — play_to_win/, play_tw2002_1000turns/, play_tw2002_intelligent/, play_tw2002.py, play_tw2002_full.py, play_tw2002_multibot.py, play_tw2002_trading.py, test_all_patterns.py, capture_screen.py, expect_runner.py, and more (~3000 lines) decouple internal
    3 files
    • play_tw2002.py
    • play_tw2002_full.py
    • play_tw2002_multibot.py
  • Deleted src/bbsbot/games/tw2002/trading/ package — __init__.py, execution.py, navigation.py, operations.py, parsers.py, validation.py (~978 lines) baseline internal
    5 files
    • execution.py
    • navigation.py
    • operations.py
    • parsers.py
    • validation.py
  • Deleted src/bbsbot/games/tw2002/verification/ package — all verification scripts (~1332 lines) baseline internal
    2 files
    • screen_audit.py
    • trading_integration.py
  • Deleted src/bbsbot/games/tw2002/sophisticated_trader.py (483 lines), bot_twerk.py (158 lines) decouple internal
    2 files
    • sophisticated_trader.py
    • bot_twerk.py
  • Deleted tests/games/tw2002/test_trading.py (278 lines) qualify internal
    1 file
    • test_trading.py

Game loop decomposition

6 files changed
  • game_loop.py Slimmed down (347 lines removed) — logic extracted to named modules
  • loop_action_selection.py Action selection extracted (147 lines, new file)
  • loop_menu_recovery.py Menu recovery extracted (109 lines, new file)
  • loop_state.py State management extracted (131 lines, new file)
  • loop_context.py Loop context updates (28 lines)
  • loop_handlers.py Loop handlers updates (48 lines)
  • src/bbsbot/games/tw2002/game_actions/game_loop.py (347 lines removed) — slimmed down decouple internal
    1 file
    • game_loop.py
  • Added game_actions/loop_action_selection.py (147 lines) — action selection extracted decouple internal
    1 file
    • loop_action_selection.py
  • Added game_actions/loop_menu_recovery.py (109 lines) — menu recovery extracted decouple internal
    1 file
    • loop_menu_recovery.py
  • Added game_actions/loop_state.py (131 lines) — state management extracted decouple internal
    1 file
    • loop_state.py
  • game_actions/loop_context.py (28 lines), loop_handlers.py (48 lines) updated decouple internal
    2 files
    • loop_context.py
    • loop_handlers.py

Manager split

3 files changed
  • __init__.py Gutted (408 lines removed) — logic moved to named modules
  • app_setup.py App initialization extracted (92 lines, new file)
  • swarm_manager.py Swarm management extracted (236 lines, new file)
  • src/bbsbot/manager/__init__.py (408 lines removed) — gutted decouple internal
    1 file
    • __init__.py
  • Added src/bbsbot/manager/app_setup.py (92 lines) — app initialization extracted decouple internal
    1 file
    • app_setup.py
  • Added src/bbsbot/manager/swarm_manager.py (236 lines) — swarm management extracted decouple internal
    1 file
    • swarm_manager.py

MCP tools extraction

2 files changed
  • __init__.py Gutted (406 lines removed) — logic moved to tools_core
  • tools_core.py Core tools extracted (396 lines, new file)
  • src/bbsbot/games/tw2002/mcp_tools/__init__.py (406 lines removed) — gutted decouple internal
    1 file
    • __init__.py
  • Added src/bbsbot/games/tw2002/mcp_tools/tools_core.py (396 lines) — core tools extracted decouple internal
    1 file
    • tools_core.py

Documentation

4 files changed
  • bbs-mcp-tools.md Comprehensive BBS MCP tools reference (1183 lines, new file)
  • INTELLIGENT_BOT.md Guide condensed
  • MULTI_CHARACTER.md Guide condensed
  • README.md README updates (36 lines)
  • Added docs/reference/bbs-mcp-tools.md (1183 lines) — comprehensive BBS MCP tools reference specify internal
    1 file
    • bbs-mcp-tools.md
  • docs/guides/INTELLIGENT_BOT.md (460 → trimmed), docs/guides/MULTI_CHARACTER.md (343 → trimmed) — guides condensed specify internal
    2 files
    • INTELLIGENT_BOT.md
    • MULTI_CHARACTER.md
  • README.md (36 lines), docs/ARCHITECTURE_DIAGRAM.md (8 lines), docs/SYSTEM_ARCHITECTURE.md (20 lines), docs/RELEASE_CHECKLIST.md (5 lines), docs/README.md (10 lines) updated specify errata
    5 files
    • README.md
    • ARCHITECTURE_DIAGRAM.md
    • SYSTEM_ARCHITECTURE.md
    • RELEASE_CHECKLIST.md
    • README.md
10 files changed
  • regex_utils.py New regex utilities module (59 lines)
  • screen_utils.py Screen utilities additions (12 lines)
  • status_fields.py Worker status fields (72 lines, new file)
  • heuristics.py Detection heuristics updates (48 lines)
  • knowledge.py Orientation knowledge updates (42 lines)
  • parsing_logic.py Parsing logic updates (168 lines)
  • admin_direct.py Admin direct rework (38 lines)
  • cli.py CLI updates (27 lines)
  • rules.json Rules updates (7 lines)
  • test_login_prompts.py Login prompt tests added (12 lines)
  • src/bbsbot/games/tw2002/game_actions/game_loop.py fix: menu_selection negative_match field name corrected; pause detection shadowed by tavern heuristics fixed; LoopContext Pydantic model_rebuild error at runtime resolved remediate internal
    1 file
    • game_loop.py
  • src/bbsbot/games/tw2002/admin/ deleted; admin_direct.py (38 lines rework), admin_remote.py kept decouple internal
    1 file
    • admin_direct.py
  • src/bbsbot/games/tw2002/regex_utils.py (59 lines added), screen_utils.py (12 lines added) instantiate internal
    2 files
    • regex_utils.py
    • screen_utils.py
  • src/bbsbot/games/tw2002/orientation/detection/heuristics.py (48 lines), knowledge.py (42 lines), parsing_logic.py (168 lines) decouple internal
    3 files
    • heuristics.py
    • knowledge.py
    • parsing_logic.py
  • src/bbsbot/games/tw2002/worker/status_fields.py (72 lines added) instantiate internal
    1 file
    • status_fields.py
  • src/bbsbot/addons/__init__.py, src/bbsbot/__init__.py added instantiate internal
    2 files
    • __init__.py
    • __init__.py
  • src/bbsbot/cli.py (27 lines), games/tw2002/rules.json (7 lines) decouple behavioral
    2 files
    • cli.py
    • rules.json
  • .github/workflows/ci.yml (15 lines), Dockerfile (3 lines), .gitignore (8 lines) baseline internal
    3 files
    • ci.yml
    • Dockerfile
    • .gitignore
  • tests/test_login_prompts.py (12 lines added) qualify internal
    1 file
    • test_login_prompts.py