d2a2a1ab07
feat(ui): mobile UI v2 — contrast, avatars, room-list density, compose FAB, gradient login (v1.8.0+12)
...
From a 7-agent design workflow (3 lenses judged + synthesised). Shipped the
high-impact/low-risk tier:
- message bubbles: self #1265ED (WCAG AA pass), incoming #1C2452 + hairline
- deterministic per-user avatar colours (8-hue brand palette)
- room tile: brighter unread preview, compact density, aligned timestamp
- FAB -> New message (thumb zone), explore -> AppBar
- login + welcome brand gradient, card outlines
- input maxLines cap, bubble max-width viewport fraction, AppBar hairline
All verified on production build in headless Chromium at mobile size.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-04 07:49:53 +10:00
5a6d6cadaf
fix: return focus to message input after sending
...
Added FocusNode to TextField, requestFocus() after send completes.
Also autofocus=true so cursor is in the input when entering a room.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-03 16:18:39 +10:00
f12a7ac1fd
feat: Phase 2 complete — calls, media, spaces, persistence, chat improvements
...
- LiveKit/MatrixRTC voice+video calls with full call screen UI
- Incoming call overlay (accept/decline)
- Media upload/download — file picker, image rendering, file download
- Spaces navigation — space list + expandable child rooms
- Drift persistence — rooms + messages written on every sync
- Sync persistence auto-starts on login and session restore
- Chat: typing indicators, long-press menu, reply, emoji reactions
- User search dialog + start DM from rooms screen
- Android: INTERNET + CAMERA + RECORD_AUDIO permissions in main manifest
- Emoji picker for reactions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 06:48:03 +10:00
8f13c725a4
feat: Phase 1 complete — Matrix login, rooms, chat, profile
...
- Direct m.login.password auth against matrix.m8chat.au
- Room list with unread badges, last message, timestamps
- Chat timeline (text, images, files, replies, reactions)
- Profile screen with expandable Notifications and Security sections
- Olm E2EE initialisation (web WASM bootstrap)
- Global error handler preventing Matrix SDK crashes
- GoRouter with refreshListenable (no recreation on auth change)
- Feature-first clean architecture: Riverpod + GoRouter + Drift
- Deployed to https://app2.m8chat.au
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 06:26:57 +10:00