gsxdsm
1cd06746fe
FN-8502: add photo and file attachments to Chat and Quick Add
Enable supported photo and file attachment workflows across Quick Add and Chat.
- Expand Quick Add and Chat picker, paste, and drag/drop attachment intake.
- Preserve pending attachments until direct and room sends are accepted, with accessible previews and retry support.
- Align Chat MIME and size validation with task attachments, including video, Markdown, and TOML support.
- Add regression coverage for attachment previews, delivery behavior, and accepted MIME types.
Files changed:
.changeset/fn-8502-chat-quick-add-attachments.md | 7 ++
docs/dashboard-guide.md | 5 +-
... quick-entry-attachment-preview-modal.test.tsx} | 50 ++++++--
packages/dashboard/app/components/ChatView.tsx | 80 +++++++++++--
.../dashboard/app/components/InlineCreateCard.tsx | 6 +-
.../app/components/PendingAttachmentPreviews.css | 60 ++++++++++
...ePreviews.tsx => PendingAttachmentPreviews.tsx} | 68 ++++++-----
.../app/components/PendingImagePreviews.css | 35 ------
.../dashboard/app/components/QuickEntryBox.tsx | 127 +++++++++++++--------
packages/dashboard/app/components/TaskForm.tsx | 6 +-
.../__tests__/ChatView.core-interactions.test.tsx | 61 ++++++++--
.../__tests__/ChatView.mobile-render.test.tsx | 20 +++-
.../components/__tests__/ChatView.rooms.test.tsx | 27 ++++-
.../components/__tests__/QuickEntryBox.test.tsx | 59 ++++++++--
packages/dashboard/app/hooks/useChat.ts | 41 ++++++-
.../src/__tests__/chat-attachment-content.test.ts | 17 +++
packages/dashboard/src/chat-attachment-content.ts | 4 +-
.../dashboard/src/routes/chat-attachment-config.ts | 16 +++
.../src/routes/register-chat-room-routes.ts | 9 +-
.../dashboard/src/routes/register-chat-routes.ts | 11 +-
20 files changed, 534 insertions(+), 175 deletions(-)
Fusion-Task-Id: FN-8502
Fusion-Task-Lineage: 0205187c-7e5b-45f8-a71d-fcfd9fb01e65
Co-authored-by: Fusion (runfusion.ai) <noreply@runfusion.ai>
2026-07-22 18:46:46 -07:00
..
2026-04-24 19:39:20 -07:00
2026-06-11 08:01:51 -07:00
2026-06-13 11:03:30 -07:00
2026-06-22 23:58:38 -07:00
2026-07-21 23:09:30 -07:00
2026-05-30 14:20:12 -07:00
2026-06-22 15:23:43 -07:00
2026-06-03 19:48:40 -07:00
2026-07-15 15:30:55 -07:00
2026-05-08 17:17:59 -07:00
2026-06-30 01:23:09 -07:00
2026-07-05 11:31:47 -07:00
2026-07-16 16:01:29 -07:00
2026-06-11 09:21:23 -07:00
2026-07-16 14:08:43 -07:00
2026-05-09 10:31:04 -07:00
2026-06-02 18:29:53 -07:00
2026-07-16 00:01:17 -07:00
2026-07-14 18:47:53 -07:00
2026-05-16 12:49:57 -07:00
2026-07-16 03:17:35 -07:00
2026-07-22 00:22:42 -07:00
2026-05-07 18:35:45 -07:00
2026-07-04 10:42:19 -07:00
2026-07-15 19:03:44 -07:00
2026-07-21 13:28:24 -07:00
2026-07-18 11:02:45 -07:00
2026-06-13 16:30:28 -07:00
2026-05-22 20:20:42 -07:00
2026-06-13 11:53:44 -07:00
2026-05-23 20:24:18 -07:00
2026-07-19 16:36:42 -07:00
2026-04-23 13:29:23 -07:00
2026-05-17 10:37:54 -07:00
2026-07-21 15:04:07 -07:00
2026-05-23 20:24:18 -07:00
2026-07-18 04:44:53 -07:00
2026-07-17 14:25:30 -07:00
2026-05-22 20:20:42 -07:00
2026-06-29 14:50:02 -07:00
2026-07-21 18:33:22 -07:00
2026-07-16 04:15:18 -07:00
2026-05-22 20:20:42 -07:00
2026-05-22 20:20:42 -07:00
2026-05-22 20:20:42 -07:00
2026-04-24 19:39:20 -07:00
2026-07-01 18:01:17 -07:00
2026-06-03 22:31:23 -07:00
2026-06-03 15:32:29 -07:00
2026-07-07 08:27:26 -07:00
2026-07-01 16:43:08 -07:00
2026-07-03 07:47:03 -07:00
2026-07-12 19:39:42 -07:00
2026-07-11 00:01:10 -07:00
2026-06-22 23:58:38 -07:00
2026-05-10 23:36:10 -07:00
2026-05-29 20:05:14 -07:00
2026-06-08 14:22:03 -07:00
2026-07-17 09:27:33 -07:00
2026-05-22 20:20:42 -07:00
2026-06-13 11:22:07 -07:00
2026-05-23 20:24:18 -07:00
2026-06-24 23:32:52 -07:00
2026-07-16 16:01:29 -07:00
2026-07-05 12:24:12 -07:00
2026-07-16 16:01:29 -07:00
2026-07-16 18:18:35 -07:00
2026-03-28 16:30:23 -04:00
2026-04-24 22:25:57 -07:00
2026-06-27 23:08:10 -07:00
2026-06-21 00:15:00 -07:00
2026-07-17 10:25:01 -07:00
2026-07-22 18:46:46 -07:00
2026-07-16 16:01:29 -07:00
2026-07-16 16:01:29 -07:00
2026-07-15 23:45:53 -07:00
2026-05-29 08:20:28 -07:00
2026-06-05 01:53:42 -07:00
2026-07-15 22:00:27 -07:00
2026-07-16 16:51:19 -07:00
2026-07-16 18:36:50 -07:00
2026-04-24 19:39:20 -07:00
2026-06-30 23:45:02 -07:00
2026-06-30 13:43:28 -07:00
2026-05-07 23:21:05 -07:00
2026-05-08 01:57:55 -07:00
2026-05-06 05:29:56 -07:00
2026-07-08 09:19:42 -07:00
2026-06-23 10:43:14 -07:00
2026-07-13 07:10:14 -07:00
2026-05-08 07:38:50 -07:00
2026-06-22 03:34:15 -07:00
2026-06-16 19:49:45 -07:00
2026-06-14 13:50:17 -07:00
2026-07-03 07:47:03 -07:00
2026-07-16 16:01:29 -07:00
2026-05-23 20:24:18 -07:00
2026-07-11 22:16:48 -07:00
2026-06-10 00:20:35 -07:00
2026-05-29 20:05:14 -07:00
2026-07-01 11:12:59 -07:00