integration test: drive synthetic MeshIntentResult through full delivery pipeline #280

Closed
opened 2026-08-14 17:27:00 +00:00 by Mark · 2 comments
Owner

Wire a single integration test that drives a synthetic MeshIntentResult payload through DiscordBotService._run_intent for each of the four result shapes:

  • short — inline text, no split, no embed, no attachment
  • long prose — split() produces multiple ResponseParts (each <= 2000 chars), no file
  • code blocks — fence integrity preserved across the split stream
  • with file — attachment_threshold triggers _format_chat_attachment, file uploaded via discord.File, summary message references the attachment

Plus a research intent scenario where every component participates (typing + run-intent + embed + the splitter/attachment paths when applicable).

References the sibling component work:

  • #234 — base response delivery formatter
  • #270 — split() API + list continuity + nested-fence tests
  • #271 — typed MeshIntentResult + EmbedBuilder + 6000-char budget
  • #272 — ProgressReporter + typing-indicator bot wiring
  • #273 — oversize-output attachment path with allowlist + 8MB cap

Acceptance: pytest tests/unit/test_delivery_pipeline_integration.py passes; ruff clean; the verifier profile (kanban task t_b702138a) can read the merged PR and confirm all four components were present and exercised end-to-end.

Wire a single integration test that drives a synthetic MeshIntentResult payload through `DiscordBotService._run_intent` for each of the four result shapes: - **short** — inline text, no split, no embed, no attachment - **long prose** — `split()` produces multiple ResponseParts (each <= 2000 chars), no file - **code blocks** — fence integrity preserved across the split stream - **with file** — `attachment_threshold` triggers `_format_chat_attachment`, file uploaded via `discord.File`, summary message references the attachment Plus a **research intent** scenario where every component participates (typing + run-intent + embed + the splitter/attachment paths when applicable). References the sibling component work: - #234 — base response delivery formatter - #270 — `split()` API + list continuity + nested-fence tests - #271 — typed `MeshIntentResult` + `EmbedBuilder` + 6000-char budget - #272 — `ProgressReporter` + typing-indicator bot wiring - #273 — oversize-output attachment path with allowlist + 8MB cap Acceptance: `pytest tests/unit/test_delivery_pipeline_integration.py` passes; ruff clean; the verifier profile (kanban task `t_b702138a`) can read the merged PR and confirm all four components were present and exercised end-to-end.
Author
Owner

Feature Triage — Escalated

Scope: medium | Risk: medium | Spec: partial
Summary: integration test: drive synthetic MeshIntentResult through full delivery pipeline
Rationale:

Not clear-cut enough for auto-approval. Labeled blocked:needs-decision — review and decide: approve (add triage-approved) or close.

## Feature Triage — Escalated **Scope:** medium | **Risk:** medium | **Spec:** partial **Summary:** integration test: drive synthetic MeshIntentResult through full delivery pipeline **Rationale:** Not clear-cut enough for auto-approval. Labeled `blocked:needs-decision` — review and decide: approve (add `triage-approved`) or close.
Mark closed this issue 2026-08-20 10:14:33 +00:00
Author
Owner

Resolved: PR #283 merged (merge commit 350478c2) into master. Full-file integration test (tests/unit/test_delivery_pipeline_integration.py) lands all five scenarios (short, long-prose, code-block, with-file, research-intent) covering #234/#270/#271/#272/#273. Verification green: 8 passed in one invocation, ruff 0.3.0 clean on PR files. Janitor unblock qa-caught-unlanded-fix -> fix landed.

Resolved: PR #283 merged (merge commit 350478c2) into master. Full-file integration test (tests/unit/test_delivery_pipeline_integration.py) lands all five scenarios (short, long-prose, code-block, with-file, research-intent) covering #234/#270/#271/#272/#273. Verification green: 8 passed in one invocation, ruff 0.3.0 clean on PR files. Janitor unblock qa-caught-unlanded-fix -> fix landed.
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#280
No description provided.