hzhang
b1c270a6ce
feat(chat): file upload + attachments + pinned canvas
- composer 📎 attach (multi-file) with removable chips; uploads to
/files then sends a message with attachments; image preview /
download chips via ?access_token.
- pinned per-channel canvas panel below the topbar (fixed; independent
of message scroll): md→renderMarkdown, text→<pre>, html→sandboxed
iframe; collapse/expand.
- share/edit canvas modal (sharer-only Edit/Remove); live via
canvas.updated/canvas.removed sockets; channel & messages context
menus get canvas actions.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>