- Shipped
- August 6, 2026 at 12:20 AM UTC
- Author
- kamo
- Commit
- 7eb33d8
Moving someone from To to Bcc meant deleting the chip and typing the address again from memory. Chips are now selectable and can be dragged or carried on the clipboard from any of the three fields into any other. - click selects a chip; ctrl/cmd-click toggles and shift-click takes a range. The info card moves from click to double-click, so a single click can do what it does in every other mail client — pick the chip up. - drag one chip or a whole selection to another field. Ctrl or Alt held makes it a copy; an insertion caret shows where it will land, and dropping inside the same field reorders. A multi-chip drag carries a count rather than showing the - Ctrl+X / Ctrl+C / Ctrl+V move chips between fields. text/plain is always written, so a chip dragged or copied into the body — or into another mail client entirely — arrives as an ordinary address list; a private flavour alongside it keeps the name, photo and contact link for a paste back into Kamo. - keyboard: arrows walk the chips (shift extends), Ctrl+A takes the field, Delete removes the selection and lands on the next chip, Escape returns to the input. Backspace in an empty input now steps onto the last chip instead of deleting it outright, so what is about to go is visible first. - pasting into the input chips every complete address it finds, including a single one. A half-typed fragment still falls through to the text input. The cross-field half needs the three fields to act on each other, which a field owning only its own list cannot do; RecipientTransferProvider holds the registry and performs the move. A field rendered without it — the campaign editor uses one on its own — keeps selection, reordering and the clipboard, and simply has nowhere to transfer to. parseRecipientList now requires a domain rather than just an '@'. parseAddress is deliberately lax because it keys an avatar cache off whatever a header carried; a chip is something we will try to deliver to, and pasting "bob@" produced one that could never be sent.