Improve message reliability, media responsiveness, and desktop sign-in - #231
Draft
Xare123 wants to merge 54 commits into
Draft
Improve message reliability, media responsiveness, and desktop sign-in#231Xare123 wants to merge 54 commits into
Xare123 wants to merge 54 commits into
Conversation
When the APNs socket drops (e.g. "Connection reset by peer"), rustpush's ResourceManager enters a backoff and returns the cached ResourceFailure to every caller until it regenerates. A send that lands in that window fails in a few milliseconds without ever touching the network, and the message is immediately marked as failed with a raw "Failed to generate resource IO error: ...; retrying in 30s" error. Wait the backoff out in sendMsg instead: transient resource failures (ones that report "retrying in Ns", as opposed to "not retrying") now re-attempt the send once the resource has had a chance to come back, up to a 3 minute budget that stays under ActionHandler's 5 minute send timeout. Permanent failures still mark the account as failed to log in and propagate right away. Typing indicators opt out, since they're stale by the time we reconnect. Also stop leaking the leftover temp-GUID suffix into the error dialog, so a failed message shows the error text alone instead of "...retrying in 30s)-ytgn6kfW". Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Wo9AZMkz7SjWhWygiehFZ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This draft improves message delivery integrity, large-sync responsiveness,
attachment handling, conversation media memory, rendering safety, desktop Apple
sign-in, and build diagnostics across Android and Windows.
The newest Android changes bound retained attachment data and tighten media
ownership without changing message routing or files stored on disk. They also
close several reliability gaps found during extended Pixel testing.
User impact
players when they leave the tree.
preserving pinch-to-zoom and zoomed-image panning.
transcript rendering surface.
Fetching Bottles.Root causes addressed
events to be missed.
failures.
per-message logs.
references.
controllers, which made cleanup and double-disposal difficult.
PageView, preventing normal image-to-image swiping.looking like a successful native build.
What changed
Messaging and sync reliability
acknowledgements.
and widget/controller lifecycle paths.
Media and memory lifecycle
BuildContextin the load queue.PageView;the existing zoom callback continues disabling paging while magnified.
listeners during disposal, and pause only already-registered conversation
controllers when the app backgrounds.
docs/MEMORY_MANAGEMENT.md.Startup, provisioning, and builds
failures.
them.
rejects output missing Flutter, Dart AOT, or the Rust ARM64 library.
Validation
Automated and static checks
flutter test test/helpers/memory test/helpers/message_helper_test.dart test/services/conversation_view_controller_test.dart --reporter expandedpassed, 14 of 14 tests.
cargo metadata --locked --no-deps --format-version 1passed.and informational findings were present in the branch baseline.
git diff --checkpassed.Android artifact and device
441,452,218bytes.F57736145E5FAAEEB52388764E985A89890621BD383DC563F579D93C329E2C1B.libflutter.so,libapp.so, andlibrust_lib_bluebubbles.so.1.15.0, version code20002227, and arunning application process.
and large attachment downloads. The user reported a substantially smoother
interface and fast large-file completion.
The device result is intentionally qualitative. There is no matched baseline
trace, so this draft does not claim a percentage improvement in throughput,
frame time, PSS, or swap.
Remaining before ready for review
post-workload PSS, and SwapPss.
phone endurance checks.
artifact.
Host-side
cargo checkcannot complete on the current Windows ARM64 host becauselegacy
ringand OpenSSL build dependencies require a different nativetoolchain. The Android native library was validated through the successful APK
build and archive inspection.
The Windows ARM64 lane remains experimental and is not presented as a usable
ARM64 package in this draft.