forked from molecule-ai/molecule-core
User asked to "keep optimizing and comprehensive e2e testings to prove all works as expected" for the communication path. Adds three layers of coverage for PR #2130 (agent → user file attachments via send_message_to_user) since that path has the most user-visible blast radius: 1. Shell E2E (tests/e2e/test_notify_attachments_e2e.sh) — pure platform test, no workspace container needed. 14 assertions covering: notify text-only round-trip, notify-with-attachments persists parts[].kind=file in the shape extractFilesFromTask reads, per-element validation rejects empty uri/name (regression for the missing gin `dive` bug), and a real /chat/uploads → /notify URI round-trip when a container is up. 2. Canvas AGENT_MESSAGE handler tests (canvas-events.test.ts +5) — pin the WebSocket-side filtering that drops malformed attachments, allows attachments-only bubbles, ignores non-array payloads, and no-ops on pure-empty events. 3. Persisted response_body shape test (message-parser.test.ts +1) — pins the {result, parts} contract the chat history loader hydrates on reload, so refreshing after an agent attachment restores both caption and download chips. Also wires the new shell E2E into e2e-api.yml so the contract regresses in CI rather than only in manual runs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| workflows | ||
| CODEOWNERS | ||