refactor: trim progress renderer state
This commit is contained in:
@@ -3,8 +3,9 @@
|
|||||||
Route Telegram replies back into Codex sessions using non-interactive
|
Route Telegram replies back into Codex sessions using non-interactive
|
||||||
`codex exec` + `codex exec resume`.
|
`codex exec` + `codex exec resume`.
|
||||||
|
|
||||||
The bridge stores a mapping from `(chat_id, bot_message_id)` to a route so
|
The bridge does not persist routes. It resumes only when the incoming
|
||||||
replies can be routed correctly.
|
message (or the replied-to bot message) contains an explicit `resume: <uuid>`
|
||||||
|
line.
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ class CodexExecRunner:
|
|||||||
found_session: str | None = session_id
|
found_session: str | None = session_id
|
||||||
last_agent_text: str | None = None
|
last_agent_text: str | None = None
|
||||||
saw_agent_message = False
|
saw_agent_message = False
|
||||||
cli_last_turn: int | None = None
|
cli_last_item: int | None = None
|
||||||
|
|
||||||
cancelled = False
|
cancelled = False
|
||||||
rc: int | None = None
|
rc: int | None = None
|
||||||
@@ -223,7 +223,7 @@ class CodexExecRunner:
|
|||||||
logger.debug("[codex][jsonl] invalid line: %r", line)
|
logger.debug("[codex][jsonl] invalid line: %r", line)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
cli_last_turn, out_lines = render_event_cli(evt, cli_last_turn)
|
cli_last_item, out_lines = render_event_cli(evt, cli_last_item)
|
||||||
for out in out_lines:
|
for out in out_lines:
|
||||||
logger.info("[codex] %s", out)
|
logger.info("[codex] %s", out)
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ HARD_BREAK = " \n"
|
|||||||
MAX_PROGRESS_CMD_LEN = 300
|
MAX_PROGRESS_CMD_LEN = 300
|
||||||
MAX_QUERY_LEN = 60
|
MAX_QUERY_LEN = 60
|
||||||
MAX_PATH_LEN = 40
|
MAX_PATH_LEN = 40
|
||||||
MAX_PROGRESS_CHARS = 300
|
|
||||||
|
|
||||||
|
|
||||||
def format_elapsed(elapsed_s: float) -> str:
|
def format_elapsed(elapsed_s: float) -> str:
|
||||||
@@ -169,11 +168,9 @@ class ExecProgressRenderer:
|
|||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
max_actions: int = 5,
|
max_actions: int = 5,
|
||||||
max_chars: int = MAX_PROGRESS_CHARS,
|
|
||||||
command_width: int | None = MAX_PROGRESS_CMD_LEN,
|
command_width: int | None = MAX_PROGRESS_CMD_LEN,
|
||||||
) -> None:
|
) -> None:
|
||||||
self.max_actions = max_actions
|
self.max_actions = max_actions
|
||||||
self.max_chars = max_chars
|
|
||||||
self.command_width = command_width
|
self.command_width = command_width
|
||||||
self.recent_actions: deque[str] = deque(maxlen=max_actions)
|
self.recent_actions: deque[str] = deque(maxlen=max_actions)
|
||||||
self.last_item: int | None = None
|
self.last_item: int | None = None
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ def test_render_event_cli_real_run_fixture() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_progress_renderer_renders_progress_and_final() -> None:
|
def test_progress_renderer_renders_progress_and_final() -> None:
|
||||||
r = ExecProgressRenderer(max_actions=5, max_chars=10_000)
|
r = ExecProgressRenderer(max_actions=5)
|
||||||
for evt in _loads(SAMPLE_STREAM):
|
for evt in _loads(SAMPLE_STREAM):
|
||||||
r.note_event(evt)
|
r.note_event(evt)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user