Response Delivery #234

Closed
opened 2026-07-15 11:34:20 +00:00 by Mark · 1 comment
Owner

Phase 4: Response Delivery

Goal: Format mesh results for Discord delivery — handle the 2000-char message limit, multi-message for long responses, rich embeds, typing indicators, and file attachments.

Approach candidates:

  • Split long responses at natural boundaries (paragraphs, code blocks) into Discord messages
  • Embeds for structured output: title, description, fields, color-coded by intent type
  • Typing indicator while mesh intent is processing (periodic progress updates)
  • File uploads for artifacts (code snippets, reports, generated content)
  • Model-generated summary + full artifact as follow-up

Outputs:

  • Response formatter in runtime/discord_ingress.py or separate runtime/discord_response.py
  • Embeds for structured output types (research findings, write artifacts, status reports)
  • Chunked message delivery for long content
  • Typing indicator integration during processing

Acceptance criteria:

  • Messages under 2000 chars delivered as single message
  • Messages over 2000 chars split across multiple messages with continuation markers
  • Research results formatted as Discord embed (title, summary, key findings as fields)
  • Write artifacts sent as embedded preview + optional file attachment
  • Bot shows typing indicator while mesh is processing
  • Error messages formatted distinctly (red embed, clear error prefix)
  • Code blocks preserve formatting in mono-spaced Discord blocks

Files touched: runtime/discord_ingress.py (amend), runtime/discord_response.py (create), runtime/__init__.py (amend), tests/unit/test_discord_response.py (create)



Decomposed from mesh-seed#134

## Phase 4: Response Delivery **Goal:** Format mesh results for Discord delivery — handle the 2000-char message limit, multi-message for long responses, rich embeds, typing indicators, and file attachments. **Approach candidates:** - Split long responses at natural boundaries (paragraphs, code blocks) into Discord messages - Embeds for structured output: title, description, fields, color-coded by intent type - Typing indicator while mesh intent is processing (periodic progress updates) - File uploads for artifacts (code snippets, reports, generated content) - Model-generated summary + full artifact as follow-up **Outputs:** - Response formatter in `runtime/discord_ingress.py` or separate `runtime/discord_response.py` - Embeds for structured output types (research findings, write artifacts, status reports) - Chunked message delivery for long content - Typing indicator integration during processing **Acceptance criteria:** - [ ] Messages under 2000 chars delivered as single message - [ ] Messages over 2000 chars split across multiple messages with continuation markers - [ ] Research results formatted as Discord embed (title, summary, key findings as fields) - [ ] Write artifacts sent as embedded preview + optional file attachment - [ ] Bot shows typing indicator while mesh is processing - [ ] Error messages formatted distinctly (red embed, clear error prefix) - [ ] Code blocks preserve formatting in mono-spaced Discord blocks **Files touched:** `runtime/discord_ingress.py` (amend), `runtime/discord_response.py` (create), `runtime/__init__.py` (amend), `tests/unit/test_discord_response.py` (create) --- --- _Decomposed from [mesh-seed#134](https://forgejo.tail018ac4.ts.net/Mark/mesh-seed/issues/134)_
Author
Owner

Closed: implementation already shipped on main as 5a1d111 (see commit message). Verified locally: feature is in main.

Closed: implementation already shipped on `main` as `5a1d111` (see commit message). Verified locally: feature is in `main`.
Mark closed this issue 2026-08-12 13:23:16 +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#234
No description provided.