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

Offen
#5,259 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Rust
Sterne
32.7k
Forks
4.3k
Ø Merge
1 T. 13 Std.
Gemergte PRs (30 T.)
253

Beschreibung

**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).

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Vergleiche den Tag mobile-v0.4.12-rc.2 mit main, mit Fokus auf mobile/lib/features/activity/compose_drafts_provider.dart und mobile/lib/features/channels/compose_bar/draft_lifecycle.dart. Überprüfe den Wiederherstellungspfad von _useComposeDraftLifecycle und folge anschließend dem iOS-Release-Prozess; abgeschlossen bedeutet, dass ein neuer App-Store-Release #2889 enthält und nicht gesendete Entwürfe pro Kanal und Thread beibehält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
dart, flutter
Bereich
mobile, release
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Ruhig
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.