Skip to content

fix(mobile): retain live thread replies in channel window - #3344

Open
smltr wants to merge 3 commits into
block:mainfrom
smltr:fix/mobile-live-thread-summaries
Open

fix(mobile): retain live thread replies in channel window#3344
smltr wants to merge 3 commits into
block:mainfrom
smltr:fix/mobile-live-thread-summaries

Conversation

@smltr

@smltr smltr commented Jul 28, 2026

Copy link
Copy Markdown

Summary

Mobile received ordinary live thread replies but discarded them at the channel-window storage boundary unless they carried broadcast=1. Because the replies never reached the window store, the parent message could not update its thread summary until the app reloaded the channel from the relay.

This change:

  • retains live non-broadcast thread replies in the mobile channel-window store
  • leaves the existing render-layer filter responsible for keeping ordinary replies out of the top-level timeline
  • removes the now-unused store-layer broadcast helper
  • adds regression coverage proving a live reply increments the parent reply count without becoming a top-level row

Related issue

Fixes #3293.

An issue/PR search found no duplicates

Testing

  • flutter test test/features/channels/channel_messages_provider_test.dart — 15 passed
  • just mobile-check — formatting, Flutter analysis, and mobile file-size checks passed
  • flutter test — 826 passed, 1 skipped
  • git diff --check — passed
  • before/after smoke test on a my Pixel 8a:
    • Baseline 2ce2d71cc: an incoming threaded reply did not update the parent summary until the app was restarted.
    • Fix 0f7fec6ca: the parent gained the reply summary live without restart, and the reply remained out of the top-level timeline.

No screenshots or recordings captured

Co-authored-by: Sam Trouy <smltr@proton.me>
Signed-off-by: Sam Trouy <smltr@proton.me>
@smltr
smltr requested a review from a team as a code owner July 28, 2026 17:34
@idrisskone101

Copy link
Copy Markdown

bumping this 👆🏾

Keep the live-reply regression tests away from main's newly added local-row summary test so both changes merge without conflict.

Co-authored-by: Daniel Aguilera <daguiler@gmail.com>
Signed-off-by: Daniel Aguilera <daguiler@gmail.com>
@daguiler76

Copy link
Copy Markdown

Current main introduced a content conflict in channel_messages_provider_test.dart after this PR's last update. I prepared a minimal follow-up against the PR head that only reorders existing tests so Git retains both main's new local-row regression and this PR's two live-reply regressions:

smltr#1

Verified on the follow-up head:

  • merge simulation with current main: clean (git merge-tree --write-tree, exit 0)
  • just mobile-check: passed
  • full mobile suite: 826 passed, 1 skipped

I also resolved the integration directly on current main as a separate cross-check; that combined tree passed 1,024 tests with 1 skipped. No production behavior changed in the helper commit.

test(mobile): avoid block#3344 conflict with current main
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Mobile: live threaded replies never reach the channel window store, so thread summaries never update (regression from #1518)

3 participants