bbsbot 2026-02-23
CI pipeline added, login flow hardened for TWGS multi-game selection, and scale-down enforcement wired into manager
71 files · 2,203+ · 1,332-

CI pipeline

3 files changed
  • ci.yml GitHub Actions CI pipeline (35 lines)
  • .gitignore CI-related ignore updates (3 lines)
  • pyproject.toml CI-related tooling updates (21 lines)
  • Added .github/workflows/ci.yml (35 lines) — GitHub Actions CI pipeline baseline internal
    1 file
    • ci.yml
  • .gitignore (3 lines), pyproject.toml (21 lines) — CI-related tooling updates baseline internal
    2 files
    • .gitignore
    • pyproject.toml

Changelog

1 file changed
  • CHANGELOG.md Project changelog started (58 lines)
  • Added CHANGELOG.md (58 lines) — project changelog started specify errata
    1 file
    • CHANGELOG.md

Login and recovery hardening

6 files changed
  • phases.py Login phase logic hardened for TWGS multi-game selection (131 lines changed)
  • sequence.py Login sequence updated (73 lines)
  • character_creation.py Character creation fix (17 lines)
  • utils.py Login utilities (9 lines)
  • recovery.py Recovery improved; prompt_id used to distinguish TW2002 menu from TWGS selection (73 lines)
  • control_basic.py Control basic tool updates (8 lines)
  • src/bbsbot/games/tw2002/login/phases.py (131 lines changed) — login phase logic hardened decouple internal
    1 file
    • phases.py
  • src/bbsbot/games/tw2002/login/sequence.py (73 lines) — login sequence updated decouple internal
    1 file
    • sequence.py
  • src/bbsbot/games/tw2002/login/character_creation.py (17 lines) — character creation fix remediate internal
    1 file
    • character_creation.py
  • src/bbsbot/games/tw2002/login/utils.py (9 lines) decouple internal
    1 file
    • utils.py
  • src/bbsbot/games/tw2002/orientation/detection/recovery.py (73 lines) — recovery improved; prompt_id used to distinguish TW2002 menu from TWGS selection decouple internal
    1 file
    • recovery.py
  • Fixed: TWGS “Describe which game?” prompt handled; localhost auto-resolved to host.docker.internal in containers remediate behavioral
    1 file
    • phases.py
  • src/bbsbot/games/tw2002/mcp_tools/control_basic.py (8 lines) decouple internal
    1 file
    • control_basic.py

Manager scale-down enforcement

2 files changed
  • bot_process.py Scale-down to desired-state enforcement added (63 lines)
  • server.py MCP server updates (18 lines)
  • src/bbsbot/manager/bot_process.py (63 lines) — scale-down to desired-state enforcement added instantiate internal
    1 file
    • bot_process.py
  • src/bbsbot/mcp/server.py (18 lines) interface internal
    1 file
    • server.py

Game logic updates

11 files changed
  • game_loop.py Game loop updates (77 lines)
  • knowledge.py Orientation knowledge updates (8 lines)
  • layers.py Orientation layer updates (39 lines)
  • goals.py AI strategy goals updates (12 lines)
  • bot_navigation.py Bot navigation updates (13 lines)
  • io.py IO updates (11 lines)
  • logging_utils.py Logging utilities updates (27 lines)
  • rules.json Prompt rules updated (14 lines)
  • defaults.py Defaults module added (23 lines)
  • session_manager.py Session manager updates (3 lines)
  • log_routes.py Log routes updates (11 lines)
  • src/bbsbot/games/tw2002/game_actions/game_loop.py (77 lines) — game loop updates decouple internal
    1 file
    • game_loop.py
  • src/bbsbot/games/tw2002/orientation/knowledge.py (8 lines), orientation/layers.py (39 lines) decouple internal
    2 files
    • knowledge.py
    • layers.py
  • src/bbsbot/games/tw2002/strategies/ai/goals.py (12 lines) decouple internal
    1 file
    • goals.py
  • src/bbsbot/games/tw2002/bot_navigation.py (13 lines) decouple internal
    1 file
    • bot_navigation.py
  • src/bbsbot/games/tw2002/io.py (11 lines), logging_utils.py (27 lines) decouple internal
    2 files
    • io.py
    • logging_utils.py
  • games/tw2002/rules.json (14 lines) — prompt rules updated decouple behavioral
    1 file
    • rules.json
  • src/bbsbot/defaults.py (23 lines added) — defaults module added instantiate internal
    1 file
    • defaults.py
  • src/bbsbot/core/session_manager.py (3 lines), api/log_routes.py (11 lines) interface behavioral
    2 files
    • session_manager.py
    • log_routes.py

Dashboard column compaction

3 files changed
  • dashboard.html Turns/trades stacked into single column between sector and credits (77 lines)
  • dashboard.js Dashboard JS updates (5 lines)
  • docker-compose.yml Docker compose updates (2 lines)
  • src/bbsbot/web/dashboard.html (77 lines) — turns/trades stacked into single column between sector and credits decouple behavioral
    1 file
    • dashboard.html
  • web/static/dashboard.js (5 lines) decouple behavioral
    1 file
    • dashboard.js
  • docker-compose.yml (2 lines) baseline internal
    1 file
    • docker-compose.yml

Tests and dependencies

5 files changed
  • test_ai_strategy.py Stale tests aligned with current behavior (15 lines)
  • test_engine.py Learning engine test updates (2 lines)
  • test_client.py Client test updates (7 lines)
  • test_manager_timeseries.py Manager timeseries test updates (4 lines)
  • uv.lock Large dependency refresh (998 lines changed)
  • tests/games/tw2002/strategies/test_ai_strategy.py (15 lines), tests/learning/test_engine.py (2 lines), tests/test_client.py (7 lines), tests/test_manager_timeseries.py (4 lines) — stale tests aligned with current behavior qualify behavioral
    4 files
    • test_ai_strategy.py
    • test_engine.py
    • test_client.py
    • test_manager_timeseries.py
  • uv.lock (998 lines changed) — large dependency refresh baseline internal
    1 file
    • uv.lock