Skip to content

feat(chat): send and show photos from a + menu over the keyboard - #962

Merged
bmc08gt merged 2 commits into
feat/chat-media-corefrom
feat/chat-media-send
Oct 5, 2026
Merged

bmc08gt merged 2 commits into
feat/chat-media-corefrom
feat/chat-media-send

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Second of four stacked PRs for chat photos, on top of #961. Sends and draws photo messages, with the + menu, camera and photo cards drawn over the keyboard.

  • Each photo goes out as its own message. Outgoing and incoming photos are drawn in the transcript.
  • The + menu holds camera and photos. It grows out of + over the live keyboard and morphs into the camera or photo card.
  • A capture or pick collapses into a chip inside the field, and the photo stays drawn the whole way down.

Camera and library share the staging code, card and chip, so they ship together.

Design notes: .claude/plans/2026-10-02-attach-photo-card.md.

Stack: #961 → this → #963 → #964.

Photos are staged as composer chips, uploaded through the downscale and
quality ladder, and sent one message each with retry. The transcript
draws photo bubbles, quotes and previews describe them, and tapping one
opens a full-screen viewer. An inline camera captures straight into the
composer. Only the downsampled copy is cached, not the original.
The attach menu grows out of +, and the menu, camera card and photo
card are one surface that morphs between states. The surface draws over
the live keyboard by joining the keyboard's window, falling back to an
input view swap and then to dismissing the keyboard. The camera and
picker start while the menu is up, so a card has content when it opens.
A tap anywhere outside the open menu only closes it. Staged photos sit
inside the message field and fade at its edges.

The keyboard overlay decisions are recorded in
.claude/plans/2026-10-02-attach-photo-card.md.
@bmc08gt
bmc08gt force-pushed the feat/chat-media-send branch from 387e054 to d33ff15 Compare October 5, 2026 22:23
@bmc08gt
bmc08gt merged commit b2df82f into main Oct 5, 2026
2 of 3 checks 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