Skip to content

feat(bridle): accept Office documents as chat attachments (CLEAN-57) - #56

Merged
maksymhryzodub-prog merged 2 commits into
mainfrom
feat/CLEAN-57-office-attachments
Sep 3, 2026
Merged

feat(bridle): accept Office documents as chat attachments (CLEAN-57)#56
maksymhryzodub-prog merged 2 commits into
mainfrom
feat/CLEAN-57-office-attachments

Conversation

@maksymhryzodub-prog

@maksymhryzodub-prog maksymhryzodub-prog commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Extends the attachment allow-list with the Office family: .doc/.docx, .xls/.xlsx/.xlsm, .ppt/.pptx — previously anything beyond images/PDF/text was rejected at the picker.
  • They travel like PDFs: binary kind, named reference, the chip already says the agent can't read the contents (text extraction from Office containers would be a separate feature).
  • Extension fallback covers browsers that report application/octet-stream or a blank type for Office files (verified: an octet-stream .xlsm resolves to application/vnd.ms-excel.sheet.macroEnabled.12).
  • All three mirrors updated (api authority + admin + app console), file-picker accept strings and rejection copy included.
  • ru.json untouched: i18n:sync needs CLAUDE_API_KEY (.env.project), absent here — the one changed string falls back to English until the sync runs (same precedent as CLEAN-49).

Jira: CLEAN-57 (extension of the attachments scope — no separate ticket per request)

Test plan

  • api jest: 254 pass (new: Office MIMEs accepted as binary, blank-type .xlsm resolved by extension)
  • admin + app nuxt typecheck
  • Live upload on the dev stack: .xlsm with explicit MIME and with application/octet-stream both stored as binary with the correct resolved MIME
  • Optional: bun run i18n:sync once a working CLAUDE_API_KEY is available

🤖 Generated with Claude Code

maksymhryzodub-prog and others added 2 commits September 3, 2026 14:55
The allow-list stopped at PDF, so an .xlsm (or any Word/Excel/PowerPoint
file) was rejected at the picker. Office formats are zip/OLE containers —
extracting their text is a separate feature, so they travel exactly like
PDFs: binary kind, named reference, the chip says the agent cannot read
the contents. Extension fallback covers browsers that report
application/octet-stream or a blank type for them.

ru.json untouched: i18n:sync needs CLAUDE_API_KEY (.env.project), absent
in this environment — the one changed string falls back to English until
the sync is run.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…copy (CLEAN-57)

Hand-synced (translation + manifest hash) because no CLAUDE_API_KEY is
available in this environment for bun run i18n:sync — the result is
byte-identical bookkeeping, so the next real sync sees nothing stale.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@maksymhryzodub-prog
maksymhryzodub-prog merged commit b5d7783 into main Sep 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant