[
  {
    "prompt": "Split the large file src/dashboard/routes/world.py (1065 lines) into logical submodules. This is issue #1360 for the Timmy-Time-dashboard repo.\n\nWORKSPACE: /tmp/timmy-agents/hermes/repo\nBRANCH: refactor/split-world-routes\n\nIMPORTANT: \n- Work in /tmp/timmy-agents/hermes/repo\n- Create branch refactor/split-world-routes from origin/main\n- Run `tox -e unit` after changes to verify all 966 tests pass\n- Commit with message: refactor: split world.py into focused submodules (#1360)\n- Push branch to origin\n- Do NOT merge to main\n\nCURRENT STRUCTURE of world.py:\nThe file has these logical groups:\n\n1. COMMITMENTS (~60 lines): _extract_commitments, _record_commitments, _tick_commitments, _build_commitment_context, close_commitment, get_commitments, reset_commitments\n2. WEBSOCKET (~100 lines): _ws_clients set, _heartbeat, _authenticate_ws, world_ws, _broadcast, _handle_client_message  \n3. MATRIX CONFIG/AGENTS/HEALTH/THOUGHTS (~300 lines): _get_agent_color, _get_agent_shape, _compute_circular_positions, _build_matrix_agents_response, _load_matrix_config, get_matrix_config, get_matrix_agents, _build_matrix_thoughts_response, get_matrix_thoughts, _check_capability_*, _build_matrix_health_response, get_matrix_health, _build_matrix_memory_response, get_matrix_memory_search\n4. BARK/CONVERSATION (~150 lines): BarkRequest, post_matrix_bark, reset_conversation_ground, _refresh_ground, _bark_and_broadcast, _generate_bark, _log_bark_failure\n5. WORLD STATE (~80 lines): _read_presence_file, _build_world_state, _get_current_state, get_world_state, broadcast_world_state\n6. CLIENT IP helper: _get_client_ip\n\nSPLIT PLAN:\nCreate src/dashboard/routes/world/ package:\n- __init__.py: re-export `router`, `matrix_router`, `broadcast_world_state`, `_ws_clients` for backward compat\n- state.py: World state functions (_read_presence_file, _build_world_state, _get_current_state, get_world_state route, broadcast_world_state)\n- websocket.py: WebSocket handling (_ws_clients, _heartbeat, _authenticate_ws, world_w",
    "chosen": "",
    "session": "session_20260324_144425_64f43f.json"
  }
]