d pushed to main at d/.profile 2026-09-19 11:37:44 +00:00
d pushed to main at d/.profile 2026-09-18 21:34:28 +00:00
d pushed to main at d/.profile 2026-09-18 14:18:57 +00:00
d pushed to main at d/.profile 2026-09-18 13:56:06 +00:00
d pushed to feat/mail-polish at x/m8sh 2026-09-18 12:01:48 +00:00
e4cb5d84f1 fix(mail): keep undo behind delete in the retraction queue and burn peer deletions
d pushed to main at d/.profile 2026-09-17 12:35:22 +00:00
d pushed to feat/mail-polish at x/m8sh 2026-09-17 08:22:21 +00:00
952d578c81 fix(mail): reliable two-side deletion and gliding undo countdown
d pushed to feat/mail-polish at x/m8sh 2026-09-16 16:57:13 +00:00
4e71c9fec7 enhance(mail): staggered reveal for heavy thread content\n\nOn thread open, media, attachment tiles, html cards and markup bubbles\nstay hidden (opacity/transform only, no layout shift) until their images\ndecode or an 800ms cap, then slide in from above bottom-first with a capped\n45ms stagger. Skipped entirely under prefers-reduced-motion.
d pushed to feat/mail-polish at x/m8sh 2026-09-16 16:39:44 +00:00
7d66f8280c fix(mail): whole-thread undo restored no messages and popup polish\n\nRestoreAllMessagesInConversation went through ListMessagesByIDsAnyState\nwith nil ids, which short-circuits to an empty list, so conversation\nrestores cleared the conversation tombstone but left every message\ntombstoned until the purge swept them. Query the conversation directly.\n\nMove the undo popup to the top of the viewport and shorten its countdown\nto 7s (it is the only restore UI and was previously 10 minutes).
d pushed to feat/mail-polish at x/m8sh 2026-09-16 15:25:32 +00:00
87f23cd2b4 fix(mail): dead delete buttons — burnThenDelete referenced bare thread prop
d pushed to feat/mail-polish at x/m8sh 2026-09-16 06:53:06 +00:00
f86464b259 fix(mail): annotate burn-stagger Map tuple for strict typing
d pushed to feat/mail-polish at x/m8sh 2026-09-16 06:42:41 +00:00
0043c5ed6a enhance(mail): instant delete with undo popup and both-sides retraction
d pushed to feat/mail-polish at x/m8sh 2026-09-14 08:05:18 +00:00
916051e255 enhance(mail): lightbox gallery swap slides and close morphs to the shown thumbnail
d pushed to feat/mail-polish at x/m8sh 2026-09-14 07:43:16 +00:00
8d85afbac3 enhance(mail): animate image lightbox open/close on every path
d pushed to main at d/.profile 2026-09-14 05:33:34 +00:00
d pushed to feat/mail-polish at x/m8sh 2026-09-13 13:28:22 +00:00
03dd16d8a2 fix(mail): keep image tiles stable under touch and dims attrs
d pushed to feat/mail-polish at x/m8sh 2026-09-13 13:03:55 +00:00
8c10b02944 revert(mail): drop the native OS image menu entirely
d pushed to feat/mail-polish at x/m8sh 2026-09-13 12:19:17 +00:00
ca4a1644df feat(imglist): add standalone image-list isolation page
d pushed to feat/mail-polish at x/m8sh 2026-09-13 07:22:12 +00:00
7573e78d38 fix(mail): reserve image space with attachment dimensions
d pushed to feat/mail-polish at x/m8sh 2026-09-12 10:16:59 +00:00
e7845758ed fix(mail): judge image long-press by press point, not retargeted target\n\niOS reports a touch that lands while the list still glides with the row or\nscroller as its target, so the image hand-off check missed and our 500ms\ntimer raised the app menu while the OS recognized no long-press at all.\nBoth trigger paths now hit-test the press coordinates as well, and a hold\nthat began mid-momentum is treated as the scroll-stop it is.