Repository navigation
Conversation
- stream_chat_flutter_core: StreamScheduledMessageListController and StreamScheduledMessageListEventHandler, a paged list of the current user's scheduled messages kept current by their events. - stream_chat_flutter: onSendLongPress on StreamMessageComposer and StreamChatMessageInput, offered while the send button would send a new message. Bumps stream_core_flutter for StreamButton.onLongPress. - sample_app: schedule a message by long-pressing send (presets or a custom time), a scheduled messages pill in the channel, and a list to edit, reschedule, send now or delete them, behind the "Scheduled Messages" setting. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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. |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## sahil/flu-954-scheduled-messages-llc-api #3140 +/- ##
============================================================================
+ Coverage 81.34% 81.38% +0.04%
============================================================================
Files 458 460 +2
Lines 29882 29983 +101
============================================================================
+ Hits 24307 24403 +96
- Misses 5575 5580 +5 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…u-954-scheduled-messages-ui
StreamScheduledMessageListController orders every value it is given by scheduled time, as StreamDraftListController does with its sort, so the load, load more and update paths no longer sort on their own. Adds tests for loading more, starting from a value, the update and delete events and the event listener. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…u-954-scheduled-messages-ui
StreamScheduledMessageListController passes its page size and cursor to queryScheduledMessages as PaginationParams. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The schedule sheet's presets and time checks use clock.now() instead of DateTime.now(). Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…u-954-scheduled-messages-ui
…u-954-scheduled-messages-ui
StreamScheduledMessageListController looks a scheduled message up once with indexWhere when updating or deleting it, instead of scanning the list twice. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…u-954-scheduled-messages-ui
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…u-954-scheduled-messages-ui
…u-954-scheduled-messages-ui
…u-954-scheduled-messages-ui # Conflicts: # packages/stream_chat_flutter_core/CHANGELOG.md # sample_app/lib/config/sample_app_config_screen.dart
… the text when scheduling fails Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…u-954-scheduled-messages-ui
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…u-954-scheduled-messages-ui
xsahil03x
marked this pull request as draft
November 3, 2026 15:26
…u-954-scheduled-messages-ui
…mple - Add StreamChannelListController.includeScheduledMessages. - Order StreamScheduledMessageListController's items like the channel's scheduled messages, keep a server copy over one from this device, and keep events that arrive while a page loads. - Sample: list scheduled messages by send time with failed ones in place and their reason inline, page through them, keep mentions and quotes when editing, refuse to schedule commands, and describe failures by reason. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…u-954-scheduled-messages-ui
ScheduledMessage has plain server timestamps again, so the list keeps whichever copy changed last. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This branch has not been deployed
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.
Linear: FLU-954
Second of three PRs for scheduled messages, stacked on #3138. Depends on GetStream/stream-core-flutter#210 (merged), whose ref this bumps.
What changed
StreamScheduledMessageListControllerandStreamScheduledMessageListEventHandler, a paged list of the current user's scheduled messages (optionally for one channel or set of statuses), in the same order as a channel's scheduled messages. Like the draft and reminder lists, the handler keeps it current from thescheduled_message.*events and reloads it when the connection recovers; apps can override any handler.StreamChannelListController.includeScheduledMessages, to load each channel's scheduled messages with the channel list.onSendLongPressonStreamMessageComposer(receives the composer's controller, so the app can read and reset the message) andStreamChatMessageInput. It is offered only while the send button would send a new message, not while editing or running a command. The send button's tooltip still describes it to screen readers.StreamButton.onLongPress.Why
The design asks for scheduling from the composer and a list to manage scheduled messages. The scheduling UI stays in the sample for now; the SDK only gains the composer hook and the core list controller, following how drafts and reminders are built.
Verification
🤖 Generated with Claude Code