85edc0572a
feat(mobile): desktop-parity emoji and thread experience ( #3485 )
...
Brings the Flutter app's emoji and thread surfaces up to desktop parity.
## Emoji
- **Full emoji-mart dataset** generated from the same `@emoji-mart/data`
set desktop uses (1,870 emoji, 8 categories), committed as an asset — so
shortcodes, names, and keywords are identical across clients. `just
mobile-emoji-data` regenerates it.
- **Rebuilt the tray**: search (a Dart port of desktop's tiered
`emojiSearch` ranking, extended to names and keywords), a
frequently-used section, and one continuous scroll with pinned section
headers. The category rail is a shortcut into that list, not a page
switcher, and spans the full width the search field uses. Custom emoji
share the native glyph size and cell.
- **Reaction pills** match desktop's geometry, and the count shows at 1.
- **Emoji-only messages** render at 36px with 1.45em inline custom
emoji, matching desktop's `emojiOnly` treatment.
- **Positive-emoji burst** ported from desktop's `EmojiBurstProvider`,
suppressed under reduced motion.
## Threads
- **Top-down layout** — head first under the app bar, replies flowing
down, like desktop's thread panel. The old reversed list bottom-anchored
the content and jammed the head against the composer.
- **Tap a channel message to open its thread**; long-press still opens
the action sheet.
- **Live reactions.** The thread's relay query is one-shot and its
`kinds` filter carries only content rows, so a reaction event could not
reach an open thread at all, and `allMessages` was a snapshot frozen
when the route was pushed — a new pill only appeared after leaving and
re-entering, which refetched. The live channel events are now unioned
into the thread's list. The burst is also route-guarded, since the
channel timeline stays mounted underneath and was claiming it first.
- The `+` affordance follows the channel: replies stay bare until they
carry a reaction, and the head keeps a standing `+`.
## Keyboard
A deliberate downward drag past ~48px dismisses the keyboard; short
scrolls leave it alone. Applies to the channel list, the thread list,
and the compose bar (via a raw `Listener`, so it can't steal the field's
tap or selection drags).
True finger-tracking dismissal is out of scope — Flutter only offers
`manual`/`onDrag`, and 1:1 tracking needs a native `UIScrollView` proxy
plus Android's `WindowInsetsAnimationController`.
## Testing
`just mobile-check` and `just mobile-test` pass (965 tests). New
coverage for emoji search ranking, dataset parsing, the emoji-only
predicate, tray scroll/rail behavior, reaction pills and the burst, and
both thread fixes above. `just ci` green.
---------
Signed-off-by: kenny lopez <klopez4212@gmail.com >
Signed-off-by: npub12zsjdqx8dud99s9h47xmk9lq93vryf7zjrae8wdrmma52cg5yglseyulst <50a12680c76f1a52c0b7af8dbb17e02c583227c290fb93b9a3defb456114223f@buzz.block.builderlab.xyz >
Signed-off-by: klopez4212 <klopez4212@gmail.com >
Co-authored-by: npub12zsjdqx8dud99s9h47xmk9lq93vryf7zjrae8wdrmma52cg5yglseyulst <50a12680c76f1a52c0b7af8dbb17e02c583227c290fb93b9a3defb456114223f@buzz.block.builderlab.xyz >
2026-07-30 07:29:40 -07:00
klopez4212 and GitHub
7dfea2634f
Add mobile message image galleries ( #3312 )
...
## What
- group uploaded photos into full-width message carousels
- add a fullscreen viewer with pinch zoom, double-tap reset, swipe-down
dismissal, a centered filmstrip, and image actions
- preload nearby display-sized images for smoother swiping and keep each
upload as its own avatar-backed message
## Validation
- `just mobile-check`
- `flutter test test/features/channels/message_content_test.dart`
- iOS 26.5 simulator gesture pass
---------
Signed-off-by: kenny lopez <klopez4212@gmail.com >
2026-07-28 16:48:35 +01:00
8398468ec9
Refine the mobile message composer ( #2730 )
...
## Summary
- replace the mobile composer sheet with a compact expanding capsule
- add vertically stacked attachment actions and an inline camera preview
- align suggestion, formatting, and send treatments with desktop
## Validation
- `just mobile-check`
- `just mobile-test` (541 passed, 1 skipped)
---------
Signed-off-by: npub102wg7q285p64ch2fjvstmf2ntn2sz3c4u5hmwatalc76mhsuauysftjtfj <7a9c8f0147a0755c5d499320bda5535cd5014715e52fb7757dfe3dadde1cef09@buzz.block.builderlab.xyz >
Co-authored-by: npub102wg7q285p64ch2fjvstmf2ntn2sz3c4u5hmwatalc76mhsuauysftjtfj <7a9c8f0147a0755c5d499320bda5535cd5014715e52fb7757dfe3dadde1cef09@buzz.block.builderlab.xyz >
2026-07-24 16:32:22 -07:00
21573b6cb9
chore(mobile): lighter-weight release process ( #2144 )
...
Signed-off-by: npub1sv749mw8zcmld4ygjx2mx2aqcn3zvtuj2nlmgatxgad3t9uweu9q5marze <833d52edc71637f6d4889195b32ba0c4e2262f9254ffb47566475b15978ecf0a@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: npub1ux8n2yfs8qfvgd75s7kyhar2mztac355v6vmrz4juc9l3msw4pgstums9e <e18f3511303812c437d487ac4bf46ad897dc46946699b18ab2e60bf8ee0ea851@sprout-oss.stage.blox.sqprod.co >
Signed-off-by: npub1re830n24qhgstulznk5dxdluccspxkxxdq643lm4q3zwwwjgsuqqmcmdrm <1e4f17cd5505d105f3e29da8d337fcc6201358c6683558ff750444e73a488700@buzz.block.builderlab.xyz >
Signed-off-by: npub102wg7q285p64ch2fjvstmf2ntn2sz3c4u5hmwatalc76mhsuauysftjtfj <7a9c8f0147a0755c5d499320bda5535cd5014715e52fb7757dfe3dadde1cef09@buzz.block.builderlab.xyz >
Co-authored-by: npub1sv749mw8zcmld4ygjx2mx2aqcn3zvtuj2nlmgatxgad3t9uweu9q5marze <833d52edc71637f6d4889195b32ba0c4e2262f9254ffb47566475b15978ecf0a@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1ux8n2yfs8qfvgd75s7kyhar2mztac355v6vmrz4juc9l3msw4pgstums9e <e18f3511303812c437d487ac4bf46ad897dc46946699b18ab2e60bf8ee0ea851@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1re830n24qhgstulznk5dxdluccspxkxxdq643lm4q3zwwwjgsuqqmcmdrm <1e4f17cd5505d105f3e29da8d337fcc6201358c6683558ff750444e73a488700@buzz.block.builderlab.xyz >
Co-authored-by: 7a9c8f0147a0755c5d499320bda5535cd5014715e52fb7757dfe3dadde1cef09@buzz.block.builderlab.xyz <7a9c8f0147a0755c5d499320bda5535cd5014715e52fb7757dfe3dadde1cef09@buzz.block.builderlab.xyz >
2026-07-23 15:05:59 -07:00
01b595c15e
chore(release): release Buzz Mobile version 0.4.11 ( #2225 )
...
Signed-off-by: Tyler Longwell <tlongwell@block.xyz >
Signed-off-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1qyvc0c5kl4gqv2fd97fsk46tu378sqgy35vc83rvgfwne90sel7s0ed67d <011987e296fd5006292d2f930b574be47c7801048d1983c46c425d3c95f0cffd@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Tyler Longwell <tlongwell@block.xyz >
2026-07-21 15:12:15 +00:00
0638009b32
chore(release): release Buzz Mobile version 0.4.9 ( #2200 )
...
Signed-off-by: npub1ft62tztwwm2x9xamk25smmuaj4sfckdkldksruf2x2jwqalffkrq0g7arr <4af4a5896e76d4629bbbb2a90def9d95609c59b6fb6d01f12a32a4e077e94d86@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1ft62tztwwm2x9xamk25smmuaj4sfckdkldksruf2x2jwqalffkrq0g7arr <4af4a5896e76d4629bbbb2a90def9d95609c59b6fb6d01f12a32a4e077e94d86@sprout-oss.stage.blox.sqprod.co >
2026-07-20 19:51:31 -07:00
fb8c90cf59
chore(release): release Buzz Mobile version 0.4.8 ( #2187 )
...
Signed-off-by: npub1ft62tztwwm2x9xamk25smmuaj4sfckdkldksruf2x2jwqalffkrq0g7arr <4af4a5896e76d4629bbbb2a90def9d95609c59b6fb6d01f12a32a4e077e94d86@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1ft62tztwwm2x9xamk25smmuaj4sfckdkldksruf2x2jwqalffkrq0g7arr <4af4a5896e76d4629bbbb2a90def9d95609c59b6fb6d01f12a32a4e077e94d86@sprout-oss.stage.blox.sqprod.co >
2026-07-20 15:13:31 -07:00
b1ef791cb8
chore(release): release Buzz Mobile version 0.4.7 ( #2137 )
...
Signed-off-by: npub1ux8n2yfs8qfvgd75s7kyhar2mztac355v6vmrz4juc9l3msw4pgstums9e <e18f3511303812c437d487ac4bf46ad897dc46946699b18ab2e60bf8ee0ea851@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1ux8n2yfs8qfvgd75s7kyhar2mztac355v6vmrz4juc9l3msw4pgstums9e <e18f3511303812c437d487ac4bf46ad897dc46946699b18ab2e60bf8ee0ea851@sprout-oss.stage.blox.sqprod.co >
2026-07-19 12:58:55 -07:00
3aba3a5316
chore(release): release Buzz Mobile version 0.4.6-rc.1 ( #2049 )
...
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-17 15:46:08 -07:00
001151e1a4
chore(release): release Buzz Mobile version 0.4.5 ( #1965 )
...
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-16 09:35:37 -07:00
7eea924f3d
fix(mobile): replace pairing placeholder with Buzz icon ( #1952 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-07-16 07:38:11 -07:00
c772ac08ca
chore(release): release Buzz Mobile version 0.4.4 ( #1886 )
...
Signed-off-by: npub1gfp6rmqfph8v2d0n4xkkam7d7v5769t8q72muepa6kltfug4zsjsert8ly <4243a1ec090dcec535f3a9ad6eefcdf329ed15670795be643dd5beb4f1151425@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1gfp6rmqfph8v2d0n4xkkam7d7v5769t8q72muepa6kltfug4zsjsert8ly <4243a1ec090dcec535f3a9ad6eefcdf329ed15670795be643dd5beb4f1151425@sprout-oss.stage.blox.sqprod.co >
2026-07-15 01:45:34 +00:00
37f65c08dc
fix(mobile): handle buzz:// links ( #1826 )
...
Signed-off-by: Tom Brow <tomb@block.xyz >
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Goose <opensource@block.xyz >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-14 16:00:13 -07:00
ab5c4d9876
chore(release): release Buzz Mobile version 0.4.3 ( #1869 )
...
Signed-off-by: npub1gfp6rmqfph8v2d0n4xkkam7d7v5769t8q72muepa6kltfug4zsjsert8ly <4243a1ec090dcec535f3a9ad6eefcdf329ed15670795be643dd5beb4f1151425@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1gfp6rmqfph8v2d0n4xkkam7d7v5769t8q72muepa6kltfug4zsjsert8ly <4243a1ec090dcec535f3a9ad6eefcdf329ed15670795be643dd5beb4f1151425@sprout-oss.stage.blox.sqprod.co >
2026-07-14 15:28:28 -07:00
7b6e12657d
fix(mobile): fix agent avatars on mobile ( #1837 )
...
Signed-off-by: npub1ux8n2yfs8qfvgd75s7kyhar2mztac355v6vmrz4juc9l3msw4pgstums9e <e18f3511303812c437d487ac4bf46ad897dc46946699b18ab2e60bf8ee0ea851@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1ux8n2yfs8qfvgd75s7kyhar2mztac355v6vmrz4juc9l3msw4pgstums9e <e18f3511303812c437d487ac4bf46ad897dc46946699b18ab2e60bf8ee0ea851@sprout-oss.stage.blox.sqprod.co >
2026-07-14 11:25:00 -07:00
ffa2de0fba
chore(release): release Buzz Mobile version 0.4.2 ( #1833 )
...
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-13 16:20:29 -07:00
fdd366bc18
chore(release): release Buzz Mobile version 0.3.33 ( #1828 )
...
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-13 15:16:09 -07:00
d80ed3180b
chore(release): release Buzz Mobile version 0.3.32 ( #1739 )
...
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-10 15:32:07 -07:00
bdb3e69899
chore(release): release Buzz Mobile version 0.3.31 ( #1724 )
...
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-10 16:11:38 -04:00
klopez4212 and GitHub
945e9b879a
Mobile appearance foundation ( #1366 )
2026-06-30 07:22:55 -07:00
Will Pfleger and GitHub
45eae7c0ec
chore(release): release version 0.3.30 ( #1190 )
2026-06-23 10:02:52 -04:00
Wes and GitHub
d389bf0b85
chore(release): release version 0.3.29 ( #1184 )
2026-06-22 22:44:29 +00:00
Wes and GitHub
603c9381ec
chore(release): release version 0.3.28 ( #1170 )
2026-06-22 10:51:31 -07:00
ae8165f8bb
chore(release): release version 0.3.27 ( #1161 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-06-21 17:38:40 -07:00
Will Pfleger and GitHub
320e95d43a
chore(release): release version 0.3.26 ( #1127 )
2026-06-19 02:37:33 +00:00
Will Pfleger and GitHub
25001eb741
chore(release): release version 0.3.25 ( #1102 )
2026-06-18 00:17:44 +00:00
Will Pfleger and GitHub
02dde44aa1
chore(release): release version 0.3.24 ( #1074 )
2026-06-16 14:02:04 -04:00
Wes and GitHub
d02aee2021
chore(release): release version 0.3.23 ( #1040 )
2026-06-13 22:30:13 -07:00
5d995d928b
chore(release): release version 0.3.22 ( #1038 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-06-13 21:01:25 -07:00
Wes and GitHub
455d184c7a
chore(release): release version 0.3.21 ( #1037 )
2026-06-13 20:24:50 -07:00
Will Pfleger and GitHub
65b6d79423
chore(release): release version 0.3.20 ( #1027 )
2026-06-12 22:24:20 -04:00
Will Pfleger and GitHub
29b8f73b08
chore(release): release version 0.3.19 ( #1014 )
2026-06-12 18:47:43 -04:00
Wes and GitHub
179c968d08
chore(release): release version 0.3.18 ( #995 )
2026-06-11 15:41:49 -07:00
Wes and GitHub
9242b91f00
chore(release): release version 0.3.17 ( #976 )
2026-06-11 10:10:34 -07:00
c63e018b05
Rename mobile app to Buzz ( #955 )
...
Signed-off-by: Wes <wesbillman@users.noreply.github.com >
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co >
2026-06-10 13:38:11 -07:00
Will Pfleger and GitHub
c28d14f460
chore(release): release version 0.3.16 ( #943 )
2026-06-10 13:04:14 -04:00
Wes and GitHub
98aa535935
chore(release): release version 0.3.15 ( #936 )
2026-06-09 18:02:31 -07:00
Wes and GitHub
d099866ace
chore(release): release version 0.3.14 ( #916 )
2026-06-09 07:43:02 -07:00
Wes and GitHub
d8278f7588
chore(release): release version 0.3.13 ( #903 )
2026-06-08 09:36:16 -07:00
Wes and GitHub
9bbb85b439
chore(release): release version 0.3.12 ( #886 )
2026-06-05 21:17:01 +00:00
Wes and GitHub
baf1f7705f
chore(release): release version 0.3.11 ( #865 )
2026-06-04 17:34:15 -07:00
Wes and GitHub
249bec86cf
chore(release): release version 0.3.10 ( #849 )
2026-06-04 09:04:52 -07:00
Will Pfleger and GitHub
3b78dc5690
feat(mobile+desktop): two-tier Slack-style app icon badge ( #802 )
2026-06-03 18:16:49 -07:00
Wes and GitHub
b4f8f40333
chore(release): release version 0.3.9 ( #832 )
2026-06-03 10:45:22 -07:00
Wes and GitHub
7c896d339d
chore(release): release version 0.3.8 ( #829 )
2026-06-02 16:57:08 -07:00
dc6821667d
chore(release): release version 0.3.7 ( #825 )
...
Signed-off-by: Mesh-LLM CI <ci@mesh-llm.local >
Co-authored-by: Mesh-LLM CI <ci@mesh-llm.local >
2026-06-02 14:56:23 -07:00
Will Pfleger and GitHub
56c504a4c7
feat: code block rendering, syntax highlighting, and compose fixes ( #803 )
2026-06-02 14:43:08 -07:00
Wes and GitHub
93183cb75d
chore(release): release version 0.3.6 ( #811 )
2026-06-01 20:51:18 +00:00
Wes and GitHub
995189c223
chore(release): release version 0.3.5 ( #799 )
2026-05-29 14:48:49 -07:00
Wes and GitHub
8fc27b6554
chore(release): release version 0.3.4 ( #786 )
2026-05-29 09:50:08 -07:00