diff --git a/openhands_cli/shared/__init__.py b/openhands_cli/shared/__init__.py index 40ec3913b..d2f9f0e5b 100644 --- a/openhands_cli/shared/__init__.py +++ b/openhands_cli/shared/__init__.py @@ -1,7 +1,12 @@ # Shared utilities for openhands_cli from openhands_cli.shared.conversation_summary import extract_conversation_summary +from openhands_cli.shared.delegate_formatter import format_delegate_title from openhands_cli.shared.slash_commands import parse_slash_command -__all__ = ["extract_conversation_summary", "parse_slash_command"] +__all__ = [ + "extract_conversation_summary", + "format_delegate_title", + "parse_slash_command", +] diff --git a/openhands_cli/tui/core/state.py b/openhands_cli/tui/core/state.py index 60ca4af59..ca0ba0090 100644 --- a/openhands_cli/tui/core/state.py +++ b/openhands_cli/tui/core/state.py @@ -22,6 +22,27 @@ ├── WorkingStatusLine ├── InputField └── InfoStatusLine + +State Transitions: + The key state variables and their transitions: + + conversation_id: + None ──[create/switch]──> UUID ──[switch]──> None (briefly) ──> UUID + + running: + False ──[user_message]──> True ──[finish/error]──> False + ──[pause]──> False + + pending_action_count: + 0 ──[actions_pending]──> N ──[approve/reject]──> 0 + + Typical flow: + 1. App starts: conversation_id=None, running=False + 2. User sends message: running=True + 3. Agent runs: pending_action_count may increase if policy requires confirmation + 4. User approves/rejects: pending_action_count=0 + 5. Agent finishes: running=False + 6. Switch conversation: conversation_id=None briefly, then new UUID """ import threading