Skip to content

fix(ui): chat file picker offers ZIP files (abilityai/trinity#2749) - #3899

Merged
vybe merged 3 commits into
devfrom
feature/2749-chat-picker-zip
Oct 23, 2026
Merged

vybe merged 3 commits into
devfrom
feature/2749-chat-picker-zip

Conversation

@obasilakis

@obasilakis obasilakis commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • The Chat tab's paperclip picker now offers .zip / application/zip. The upload service already accepts ZIP and stores it unextracted; the path, limits and storage are unchanged.
  • The Workspace composer pickers (PortalConversation.vue, PortalRailFiles.vue) set no accept filter, so they already offer ZIP. No change there.
  • docs/user-docs/agents/agent-chat.md drops the "drop a ZIP onto the input instead" caveat.

Changes

  • src/frontend/src/components/chat/ChatInput.vue (accept list)
  • src/frontend/tests/unit/chatPickerZip.spec.js (new)
  • docs/user-docs/agents/agent-chat.md

Test Plan

  • npx vitest run tests/unit/chatPickerZip.spec.js tests/unit/turnCancel.spec.js tests/unit/agentDetailTalkDoor.spec.js — 70 passed (new spec red before the fix)
  • Manual: Chat tab, paperclip, a .zip is selectable and uploads like a dropped one

Fixes #2749

🤖 Generated with Claude Code

The upload service accepts ZIP (stored as-is), but the Chat tab's
paperclip picker filtered it out, so a ZIP could only be dropped onto
the input. Add .zip / application/zip to the picker's accept list and
drop the workaround from the user doc. The Workspace composer's picker
has no accept filter, so it already offers ZIP.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@obasilakis obasilakis added the ui PR touches the frontend UI — triggers Playwright e2e tests label Oct 22, 2026
obasilakis and others added 2 commits October 22, 2026 17:24
The source-text ratchet holds a new spec to zero reads of component
source. Mount ChatInput and assert on the rendered file input's accept
list instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@obasilakis

Copy link
Copy Markdown
Contributor Author

/review + /validate-pr

Verdict: APPROVE after fixes (review asked for light changes; fixed below). No critical findings. Lane B.

Review

  • All four acceptance criteria met: the picker's accept list carries .zip / application/zip; picker and drag-and-drop share addFiles; the Workspace pickers (PortalConversation.vue, PortalRailFiles.vue) set no accept filter, so they already offer ZIP; the agent-chat.md caveat is gone.
  • Revert test: the old ChatInput.vue turns the new spec red.

Fixed after review

  • The spec now mounts ChatInput and reads the rendered accept attribute (the source-text ratchet rejected the first version).
  • Two FAQ pages (faq/chat-and-sessions.md, faq/agents.md) still told users to drag a ZIP in; removed.

Follow-up filed: #3908 — a ZIP declared as application/x-zip-compressed (Chrome on Windows) is likely refused by the upload type check, for the picker and drag-and-drop alike.

Open: the manual picker check in the test plan.

@vybe vybe left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merge-train: batch validated on train/20261023-2211 (#3930, all checks green)

@vybe
vybe merged commit 95762eb into dev Oct 23, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ui PR touches the frontend UI — triggers Playwright e2e tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants