block / block/buzz

iOS App Store 0.4.12: composer text is lost when navigating away from a channel — draft persistence (#2889) has never shipped in a release

Aperta
#5,259 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Rust
Stelle
32.7k
Fork
4.3k
Merge medio
1g 13h
PR unite (30g)
253

Descrizione

**Describe the bug**

On the current iOS App Store release (0.4.12), text typed into the channel composer is lost when you navigate away from the channel. Returning to the channel shows an empty composer — the unsent text is gone entirely (it also never appears in the Activity inbox Drafts filter).

Composer draft persistence *does* exist on `main`: it landed in #2889 (`9d36778c3`, 2026-07-27, `mobile/lib/features/activity/compose_drafts_provider.dart` + the restore path now in `mobile/lib/features/channels/compose_bar/draft_lifecycle.dart` after the #4512 refactor). But the `mobile-v0.4.12-rc.2` tag was cut on **2026-07-25 — two days before the feature merged** — and `git ls-tree mobile-v0.4.12-rc.2` confirms neither file exists in that release. So every App Store user today has a composer whose text lives only in the widget's `TextEditingController` and is destroyed on navigation.

**Steps to reproduce**

1. Install Buzz from the iOS App Store (0.4.12).
2. Open any channel and type a message into the composer without sending.
3. Navigate back to the channel list (or anywhere else in the app).
4. Return to the same channel.
5. The composer is empty — the drafted text is gone.

**Expected behavior**

Unsent composer text persists per-channel (and per-thread) across navigation, like Desktop and stock iMessage — i.e., the behavior already implemented on `main` by #2889.

**Version and platform**

- Buzz version: iOS app 0.4.12 (App Store)
- OS: iOS 26.5.2

**Logs / additional context**

- Ask: cut a new iOS App Store release that includes #2889 — the fix is already merged, it just hasn't shipped. (Related: #4604 also reports against the aging 0.4.12 App Store build.)
- For anyone verifying on `main`: the restore path is `_useComposeDraftLifecycle` in `mobile/lib/features/channels/compose_bar/draft_lifecycle.dart`, backed by the SharedPreferences store in `mobile/lib/features/activity/compose_drafts_provider.dart` (identity-namespaced by relay + pubkey, 50-draft cap).

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Confronta il tag mobile-v0.4.12-rc.2 con main, concentrandoti su mobile/lib/features/activity/compose_drafts_provider.dart e mobile/lib/features/channels/compose_bar/draft_lifecycle.dart. Verifica il percorso di ripristino di _useComposeDraftLifecycle, quindi segui il processo di release iOS; il lavoro è completo quando una nuova release sull’App Store include #2889 e conserva le bozze non inviate per canale e thread.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
dart, flutter
Ambito
mobile, release
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Tranquilla
Chiarezza
Specificata chiaramente
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.