discord_response: typing indicator + periodic progress updates (delta from #234) #272

Closed
opened 2026-08-12 10:25:01 +00:00 by Mark · 0 comments
Owner

Follow-up to #234 (Response Delivery) — delta for the typing-indicator acceptance that did not land in commit 5a1d111 (feat(#234): add Discord response delivery formatter).

Source: kanban card t_61a72dbc (decomposed from #234 Phase 4, "Add typing indicator with periodic progress updates").

While a mesh intent is processing, the bot must post a Discord typing indicator on the originating channel and emit periodic progress messages (e.g. every 5s or on phase change: 'parsing…', 'calling tool X…', 'finalizing…'). Typing indicator must refresh as long as work is in flight and stop cleanly on completion or error. API shape: a context manager / async wrapper — async with progress(channel, task_id): await do_work().

Acceptance not met by landed code (runtime/discord_response.py):

  1. No Discord typing indicator is actually posted. use_typing is metadata-only (FormattedResponse.use_typing bool); no Channel.typing / trigger_typing call exists in runtime/ or docker/.
  2. No periodic progress messages on phase change (parsing/tool call/finalizing) and no 5s progress cadence.
  3. No refresh lifecycle: nothing keeps typing ticks alive while work is in flight, and nothing stops the indicator on completion or error.
  4. No context manager / async wrapper exposing async with progress(channel, task_id).
  5. No tests: no simulated 20s+ run proving typing ticks, no progress-on-phase-change test, no no-leak-after-exception test.

Existing baseline: pytest tests/unit/test_discord_response.py -> 13 passed, ruff check clean. Deliverable files: runtime/discord_response.py (amend), docker/discord_bot.py (amend), tests/unit/test_discord_response.py (amend or new tests/unit/test_discord_progress.py).

Follow-up to #234 (Response Delivery) — delta for the typing-indicator acceptance that did not land in commit 5a1d111 (feat(#234): add Discord response delivery formatter). Source: kanban card t_61a72dbc (decomposed from #234 Phase 4, "Add typing indicator with periodic progress updates"). While a mesh intent is processing, the bot must post a Discord typing indicator on the originating channel and emit periodic progress messages (e.g. every 5s or on phase change: 'parsing…', 'calling tool X…', 'finalizing…'). Typing indicator must refresh as long as work is in flight and stop cleanly on completion or error. API shape: a context manager / async wrapper — async with progress(channel, task_id): await do_work(). Acceptance not met by landed code (runtime/discord_response.py): 1. No Discord typing indicator is actually posted. use_typing is metadata-only (FormattedResponse.use_typing bool); no Channel.typing / trigger_typing call exists in runtime/ or docker/. 2. No periodic progress messages on phase change (parsing/tool call/finalizing) and no 5s progress cadence. 3. No refresh lifecycle: nothing keeps typing ticks alive while work is in flight, and nothing stops the indicator on completion or error. 4. No context manager / async wrapper exposing async with progress(channel, task_id). 5. No tests: no simulated 20s+ run proving typing ticks, no progress-on-phase-change test, no no-leak-after-exception test. Existing baseline: pytest tests/unit/test_discord_response.py -> 13 passed, ruff check clean. Deliverable files: runtime/discord_response.py (amend), docker/discord_bot.py (amend), tests/unit/test_discord_response.py (amend or new tests/unit/test_discord_progress.py).
Mark 2026-08-13 10:53:52 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Mark/mesh-seed#272
No description provided.