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