Skip to content

fix(ui): keep the replies count on a deleted thread parent - #3110

Open
xsahil03x wants to merge 25 commits into
masterfrom
sahil/flu-1092-a-deleted-thread-parent-loses-its-n-replies-footer-so-the
Open

xsahil03x wants to merge 25 commits into
masterfrom
sahil/flu-1092-a-deleted-thread-parent-loses-its-n-replies-footer-so-the

Conversation

@xsahil03x

@xsahil03x xsahil03x commented Oct 26, 2026 •

Copy link
Copy Markdown
Member

What

A deleted message that had thread replies showed the "Message deleted" placeholder without its "N replies" row, so the thread could no longer be opened from the channel. StreamMessageContent now keeps the replies row under the placeholder, matching Android and iOS. The backend keeps reply_count on a soft delete.

This also enables the two e2e tests that cover it in message_list_test.dart.

Fixes FLU-1092.

Stacked on #3105 (the e2e suite); GitHub retargets it to master once that merges.

Before After

Verification

  • Widget test in stream_message_metadata_test.dart: a deleted thread parent shows its replies count. It fails without the fix.
  • Android emulator (sample app): send a message, reply in its thread, delete the parent. Screenshots above; tapping "1 reply" on the deleted parent opens the thread.
  • e2e: "thread is not locked after the user deletes the parent message" and the participant variant are un-skipped and run in this PR's E2E workflow.

v11: see the "Merging master into v11" comment on FLU-1092.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added a dedicated chat app for end-to-end testing, with channel and message search, thread and reminder tabs, pinned messages, and channel actions.
    • Expanded automated coverage for attachments, polls, reactions, authentication, message delivery, and other chat workflows.
  • Bug Fixes
    • Deleted messages now retain their reply count.
    • Failed messages no longer hide the preceding message’s timestamp or delivery status.

testableapple and others added 21 commits October 23, 2026 14:55
A deleted message that had thread replies showed the "Message deleted"
placeholder without its "N replies" row, so the thread could no longer
be opened from the channel.

Fixes FLU-1092.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
flu-1092-a-deleted-thread-parent-loses-its-n-replies-footer-so-the
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 4 included reviews currently available.

Learn how review limits work.

Review configuration:

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 80096bb8-f9c9-490d-97d6-5901be948d03
Commits

Reviewing files that changed from the base of the PR and between 3923d3e and f7098df.

Files selected for processing: 4
  • e2e_app/integration_test/message_list_test.dart
  • packages/stream_chat_flutter/CHANGELOG.md
  • packages/stream_chat_flutter/lib/src/message_widget/components/stream_message_content.dart
  • packages/stream_chat_flutter/test/src/message_widget/stream_message_metadata_test.dart

No actionable comments were generated in the recent review.

Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 540633ce-9ff6-4146-9a60-d96081fb5341
Commits

Reviewing files that changed from the base of the PR and between d6259fd and 3923d3e.

Files ignored due to path filters: 27
  • e2e_app/Gemfile.lock is excluded by !**/*.lock
  • e2e_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png is excluded by !**/*.png
  • e2e_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png is excluded by !**/*.png
  • e2e_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png is excluded by !**/*.png
  • e2e_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png is excluded by !**/*.png
  • e2e_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png is excluded by !**/*.png
  • e2e_app/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata is excluded by !**/*.xcworkspace/contents.xcworkspacedata
  • e2e_app/ios/Runner.xcworkspace/contents.xcworkspacedata is excluded by !**/*.xcworkspace/contents.xcworkspacedata
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png is excluded by !**/*.png
  • e2e_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png is excluded by !**/*.png
  • sample_app/Gemfile.lock is excluded by !**/*.lock
Files selected for processing: 135
  • .claude/skills/flutter-version-bump/SKILL.md
  • .github/actions/allure-launch/action.yml
  • .github/actions/setup-ios-runtime/action.yml
  • .github/actions/setup-ruby/action.yml
  • .github/workflows/e2e_test.yml
  • .github/workflows/e2e_test_cron.yml
  • .gitignore
  • e2e_app/.gitignore
  • e2e_app/.metadata
  • e2e_app/Gemfile
  • e2e_app/README.md
  • e2e_app/analysis_options.yaml
  • e2e_app/android/.gitignore
  • e2e_app/android/app/build.gradle.kts
  • e2e_app/android/app/src/debug/AndroidManifest.xml
  • e2e_app/android/app/src/main/AndroidManifest.xml
  • e2e_app/android/app/src/main/kotlin/io/getstream/chat/e2e_app/MainActivity.kt
  • e2e_app/android/app/src/main/res/drawable-v21/launch_background.xml
  • e2e_app/android/app/src/main/res/drawable/launch_background.xml
  • e2e_app/android/app/src/main/res/values-night/styles.xml
  • e2e_app/android/app/src/main/res/values/styles.xml
  • e2e_app/android/app/src/profile/AndroidManifest.xml
  • e2e_app/android/build.gradle.kts
  • e2e_app/android/gradle.properties
  • e2e_app/android/gradle/wrapper/gradle-wrapper.properties
  • e2e_app/android/settings.gradle.kts
  • e2e_app/fastlane/Allurefile
  • e2e_app/fastlane/Fastfile
  • e2e_app/fastlane/Pluginfile
  • e2e_app/fastlane/README.md
  • e2e_app/fastlane/e2e_log.rb
  • e2e_app/fastlane/e2e_tests.rb
  • e2e_app/integration_test/allure/allure.dart
  • e2e_app/integration_test/attachments_test.dart
  • e2e_app/integration_test/authentication_test.dart
  • e2e_app/integration_test/channel_actions_test.dart
  • e2e_app/integration_test/channel_list_test.dart
  • e2e_app/integration_test/channel_search_test.dart
  • e2e_app/integration_test/connection_test.dart
  • e2e_app/integration_test/draft_messages_test.dart
  • e2e_app/integration_test/giphy_test.dart
  • e2e_app/integration_test/hyper_links_test.dart
  • e2e_app/integration_test/message_actions_test.dart
  • e2e_app/integration_test/message_delivery_status_test.dart
  • e2e_app/integration_test/message_list_test.dart
  • e2e_app/integration_test/mock_server/data_types.dart
  • e2e_app/integration_test/mock_server/mock_server.dart
  • e2e_app/integration_test/moderation_test.dart
  • e2e_app/integration_test/pages/channel_list_page.dart
  • e2e_app/integration_test/pages/message_list_page.dart
  • e2e_app/integration_test/pinned_messages_test.dart
  • e2e_app/integration_test/polls_test.dart
  • e2e_app/integration_test/quoted_reply_test.dart
  • e2e_app/integration_test/reactions_test.dart
  • e2e_app/integration_test/reminders_test.dart
  • e2e_app/integration_test/robots/backend_robot.dart
  • e2e_app/integration_test/robots/participant_robot.dart
  • e2e_app/integration_test/robots/user_robot.dart
  • e2e_app/integration_test/robots/user_robot_channel_list_asserts.dart
  • e2e_app/integration_test/robots/user_robot_message_list_asserts.dart
  • e2e_app/integration_test/search_test.dart
  • e2e_app/integration_test/slow_mode_test.dart
  • e2e_app/integration_test/support/failure_artifacts.dart
  • e2e_app/integration_test/support/fake_url_launcher.dart
  • e2e_app/integration_test/support/predefined_users.dart
  • e2e_app/integration_test/support/step.dart
  • e2e_app/integration_test/support/stream_test_case.dart
  • e2e_app/integration_test/support/stream_test_env.dart
  • e2e_app/integration_test/support/widget_test_extensions.dart
  • e2e_app/integration_test/thread_list_test.dart
  • e2e_app/integration_test/unread_counts_test.dart
  • e2e_app/integration_test/unread_messages_test.dart
  • e2e_app/ios/.gitignore
  • e2e_app/ios/Flutter/AppFrameworkInfo.plist
  • e2e_app/ios/Flutter/Debug.xcconfig
  • e2e_app/ios/Flutter/Release.xcconfig
  • e2e_app/ios/Runner.xcodeproj/project.pbxproj
  • e2e_app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  • e2e_app/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
  • e2e_app/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
  • e2e_app/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
  • e2e_app/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
  • e2e_app/ios/Runner/AppDelegate.swift
  • e2e_app/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
  • e2e_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
  • e2e_app/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
  • e2e_app/ios/Runner/Base.lproj/LaunchScreen.storyboard
  • e2e_app/ios/Runner/Base.lproj/Main.storyboard
  • e2e_app/ios/Runner/Info.plist
  • e2e_app/ios/Runner/Runner-Bridging-Header.h
  • e2e_app/ios/Runner/SceneDelegate.swift
  • e2e_app/ios/RunnerTests/RunnerTests.swift
  • e2e_app/lib/app.dart
  • e2e_app/lib/auth/auth_controller.dart
  • e2e_app/lib/auth/users.dart
  • e2e_app/lib/main.dart
  • e2e_app/lib/navigation.dart
  • e2e_app/lib/pages/channel_actions_sheet.dart
  • e2e_app/lib/pages/channel_list_tab.dart
  • e2e_app/lib/pages/choose_user_page.dart
  • e2e_app/lib/pages/group_info_page.dart
  • e2e_app/lib/pages/home_page.dart
  • e2e_app/lib/pages/pinned_messages_page.dart
  • e2e_app/lib/pages/reminders_tab.dart
  • e2e_app/lib/pages/thread_list_tab.dart
  • e2e_app/lib/widgets/e2e_message_actions.dart
  • e2e_app/lib/widgets/search_text_field.dart
  • e2e_app/pubspec.yaml
  • e2e_app/scripts/install_ios_runtime.sh
  • melos.yaml
  • packages/stream_chat_flutter/CHANGELOG.md
  • packages/stream_chat_flutter/lib/src/message_list_view/message_list_view.dart
  • packages/stream_chat_flutter/lib/src/message_list_view/mlv_utils.dart
  • packages/stream_chat_flutter/lib/src/message_widget/components/stream_message_content.dart
  • packages/stream_chat_flutter/test/src/message_list_view/message_list_failed_message_grouping_test.dart
  • packages/stream_chat_flutter/test/src/message_widget/stream_message_metadata_test.dart
  • sample_app/Gemfile
  • sample_app/android/fastlane/Fastfile
  • sample_app/e2e_stubs/firebase_core/lib/firebase_core.dart
  • sample_app/e2e_stubs/firebase_core/pubspec.yaml
  • sample_app/e2e_stubs/firebase_crashlytics/lib/firebase_crashlytics.dart
  • sample_app/e2e_stubs/firebase_crashlytics/pubspec.yaml
  • sample_app/e2e_stubs/firebase_messaging/lib/firebase_messaging.dart
  • sample_app/e2e_stubs/firebase_messaging/pubspec.yaml
  • sample_app/fastlane/Fastfile
  • sample_app/integration_test/message_list_test.dart
  • sample_app/integration_test/robots/backend_robot.dart
  • sample_app/integration_test/robots/user_robot.dart
  • sample_app/integration_test/robots/user_robot_message_list_asserts.dart
  • sample_app/integration_test/support/predefined_users.dart
  • sample_app/ios/fastlane/Fastfile
  • sample_app/lib/app.dart
  • sample_app/lib/auth/auth_controller.dart
  • sample_app/pubspec.yaml
  • sample_app/pubspec_overrides.e2e.yaml
Files with no reviewable changes: 18
  • sample_app/e2e_stubs/firebase_core/pubspec.yaml
  • sample_app/e2e_stubs/firebase_crashlytics/pubspec.yaml
  • sample_app/e2e_stubs/firebase_messaging/pubspec.yaml
  • sample_app/integration_test/message_list_test.dart
  • sample_app/e2e_stubs/firebase_crashlytics/lib/firebase_crashlytics.dart
  • .claude/skills/flutter-version-bump/SKILL.md
  • sample_app/pubspec.yaml
  • sample_app/e2e_stubs/firebase_core/lib/firebase_core.dart
  • sample_app/android/fastlane/Fastfile
  • sample_app/pubspec_overrides.e2e.yaml
  • sample_app/integration_test/robots/user_robot_message_list_asserts.dart
  • sample_app/integration_test/support/predefined_users.dart
  • sample_app/Gemfile
  • sample_app/integration_test/robots/user_robot.dart
  • sample_app/ios/fastlane/Fastfile
  • sample_app/fastlane/Fastfile
  • sample_app/integration_test/robots/backend_robot.dart
  • sample_app/e2e_stubs/firebase_messaging/lib/firebase_messaging.dart

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 1 remain after this review.

Walkthrough

Changes

E2E application migration and CI

Layer / File(s) Summary
Standalone E2E app and platform projects
e2e_app/**, melos.yaml
Adds a Flutter E2E app with authentication, navigation, channel views, reminders, threads, Android configuration, and iOS configuration.
Fastlane execution and test infrastructure
e2e_app/fastlane/**, e2e_app/integration_test/support/**, e2e_app/integration_test/robots/**
Adds test selection, batching, retries, coverage handling, mock-server control, token testing, widget helpers, fluent robots, and Allure labeling.
Integration test coverage
e2e_app/integration_test/**
Adds coverage for authentication, messages, attachments, channels, threads, polls, reactions, reminders, moderation, search, unread states, and delivery statuses.
Workflow and action migration
.github/workflows/**, .github/actions/**, .gitignore, e2e_app/.gitignore
Moves E2E commands and artifacts to e2e_app, adds Android API 36 and batched cron coverage, adds coverage-map aggregation, and parameterizes Ruby setup.
Sample app E2E removal
sample_app/**, .claude/skills/flutter-version-bump/SKILL.md
Removes the sample app’s E2E lanes, tests, Firebase stubs, E2E overrides, and test-only authentication controls.
Message rendering fixes
packages/stream_chat_flutter/lib/src/**, packages/stream_chat_flutter/test/src/**
Separates failed and non-failed message groups and preserves deleted-message replies and reply counts. The changelog records both fixes.

Priority: Normal

Estimated code review effort: 5 (Critical) | ~120 minutes

Change: Bug fix

Sequence Diagram(s)

sequenceDiagram
  participant CI
  participant Fastlane
  participant E2EApp
  participant MockServer
  participant Allure
  CI->>Fastlane: Select and run test batch
  Fastlane->>MockServer: Start mock server
  Fastlane->>E2EApp: Launch integration tests
  E2EApp->>MockServer: Request test data and tokens
  Fastlane->>Allure: Upload test results
  Fastlane->>CI: Upload coverage artifacts
Loading

Suggested reviewers: testableapple

Merge Risk: Minimal · previous review 3923d

The change restores the replies row under a deleted thread parent, so the thread is reachable again from the channel. No merge-blocking issue was found in the supplied evidence. The remaining changes are E2E app and CI migration, which do not affect production behavior.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surv… Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the primary UI fix: preserving the replies count on deleted thread parents.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 4 functions across 9 files. (100 skipped: 100 unsupported.)

Resolution

Write docstrings for the functions missing them to satisfy the coverage threshold.

Finishing Touches: 💡 3
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
⚔️ Resolve merge conflicts: 💡
  • Resolve merge conflict in branch sahil/flu-1092-a-deleted-thread-parent-loses-its-n-replies-footer-so-the
🛠️ Fix failing CI checks: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.32%. Comparing base (018b487) to head (f7098df).
⚠️ Report is 3 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #3110      +/-   ##
==========================================
+ Coverage   80.28%   80.32%   +0.04%     
==========================================
  Files         455      455              
  Lines       29614    29617       +3     
==========================================
+ Hits        23775    23790      +15     
+ Misses       5839     5827      -12     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

xsahil03x and others added 3 commits October 27, 2026 12:34
* test(repo): assert the token date and signature policy (FLU-1083)

The SDK refreshes the token on code 40 only. A token used before its
issue date (42) is reconnected as-is until the server's clock catches
up, and a bad signature (43) is not retried with a new token. The four
tests now assert that instead of a refresh.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* test(repo): tighten the token date and signature tests (FLU-1083)

Keep the invalid window open past the refresh so the refreshed token is
always rejected, count token requests through an env assertion, and fix
the step and file comments to match what the tests assert.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* test(repo): drop the token signature after login test (FLU-1083)

A signing secret doesn't go bad mid-session, and the test only timed the
SDK's reconnect backoff.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* test(repo): keep the login error across the loading screen (FLU-1083)

The chooser page is replaced while connecting, so an error it stored
itself was gone by the time the login failed. The auth state now carries
it, and the rebuilt page shows it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vTgFwqhUc2wKCWrw635yC

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
* fix(ui): keep the footer of a sent message before a failed one (FLU-1090)

A message that failed now starts its own group, so the sent message
before it keeps its timestamp and delivery status. Consecutive failed
messages still group together.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs(ui): describe every failed message in the changelog (FLU-1090)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012vTgFwqhUc2wKCWrw635yC

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
flu-1092-a-deleted-thread-parent-loses-its-n-replies-footer-so-the

# Conflicts:
#	packages/stream_chat_flutter/CHANGELOG.md
Base automatically changed from test/e2e-native-parity to master October 27, 2026 17:37
…leted-thread-parent-loses-its-n-replies-footer-so-the

# Conflicts:
#	e2e_app/README.md
#	e2e_app/fastlane/Fastfile
#	e2e_app/integration_test/authentication_test.dart
#	e2e_app/integration_test/giphy_test.dart
#	e2e_app/integration_test/hyper_links_test.dart
#	e2e_app/integration_test/message_actions_test.dart
#	e2e_app/integration_test/message_delivery_status_test.dart
#	e2e_app/integration_test/message_list_test.dart
#	e2e_app/integration_test/pages/channel_list_page.dart
#	e2e_app/integration_test/robots/backend_robot.dart
#	e2e_app/integration_test/robots/participant_robot.dart
#	e2e_app/integration_test/robots/user_robot.dart
#	e2e_app/integration_test/robots/user_robot_message_list_asserts.dart
#	e2e_app/integration_test/support/stream_test_env.dart
#	e2e_app/lib/auth/auth_controller.dart
#	e2e_app/lib/pages/channel_list_tab.dart
#	e2e_app/lib/pages/home_page.dart
#	e2e_app/lib/pages/thread_list_tab.dart
#	e2e_app/lib/widgets/e2e_message_actions.dart
#	e2e_app/lib/widgets/search_text_field.dart
#	e2e_app/pubspec.yaml
#	packages/stream_chat_flutter/CHANGELOG.md
#	packages/stream_chat_flutter/test/src/message_list_view/message_list_failed_message_grouping_test.dart

This branch has not been deployed

No deployments
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.

2 participants