perf(channels): tame the post-READY read stampede
perf(channels): tame the post-READY read stampede
Inspect stored evidence paths
lib/core/permissions/channel_permission_cache_provider.dartlib/features/channels/data/read_state_repository.dart
Reading the persisted public view.
Datamining / findings
Evidence records derived from public code, builds, assets, APIs or schemas. A detection is not automatically a release, announcement or confirmed feature.
Classification overview
perf(channels): tame the post-READY read stampede
lib/core/permissions/channel_permission_cache_provider.dartlib/features/channels/data/read_state_repository.dartperf(chat): reuse the mention context cache in message page fetches
lib/core/gateway/gateway_event_handler.dartlib/core/gateway/message_mention_context_cache.dartlib/features/chat/data/message_repository.dartlib/features/chat/providers/core/chat_providers.dartchore(chat): log per-phase marks in the message page fetch
lib/features/chat/data/message_repository.dartperf(gateway): bulk guild create writes like the READY fanout
lib/core/gateway/gateway_event_handler.darttest/core/gateway/gateway_event_handler_test.dartperf(chat): cut sequential DB round-trips on the channel switch path
lib/features/channels/providers/unread_provider.dartlib/features/chat/providers/core/chat_view_model.dartchore(chat): log per-phase marks in the switchChannel stopwatch
lib/features/chat/providers/core/chat_view_model.dartperf(chat): skip re-sync scheduling on identity-preserving rebuilds
lib/features/chat/presentation/widgets/channel/channel_chat_content.darttest/features/chat/presentation/widgets/channel/mobile_channel_chat_surface_test.dartperf(gateway): parse READY guilds before opening the write transaction
lib/core/gateway/gateway_event_handler.dartperf(channels): drop channel re-emissions when no field changed
lib/features/channels/domain/channel.dartlib/features/channels/providers/channel_providers.darttest/features/channels/providers/channel_providers_test.dartfix(app): resolve the unread anchor where channel message loads originate (#1701)
fluxer_app/src/features/app/hooks/useChannelHoverPreload.tsfluxer_app/src/features/gateway/events/GatewayReady.tsfluxer_app/src/features/messaging/state/MessagingMessages.tsfix(app): open channels at the unread boundary when the backlog exceeds one page (#1698)
fluxer_app/src/features/messaging/state/MessagingMessages.tsfluxer_app/src/features/navigation/state/NavigationSideEffects.tsfluxer_app/src/features/read_state/state/ReadStates.tsfluxer_app/src/features/read_state/state/read_states/ReadStateUnreadAnchor.test.tsfluxer_app/src/features/read_state/state/read_states/ReadStateUnreadAnchor.tsfix(app): apply streamer mode to member nicknames and stop guild scope leaking into global surfaces (#1697)
fluxer_app/src/features/app/components/dialogs/shared/RecipientList.tsxfluxer_app/src/features/app/components/floating/UserAreaPopout.tsxfluxer_app/src/features/app/components/layout/UserArea.tsxfluxer_app/src/features/app/components/shared/FriendSelector.tsxfluxer_app/src/features/channel/components/ChannelMembers.tsxfluxer_app/src/features/channel/components/bottomsheets/ChannelDetailsBottomSheet.tsxfluxer_app/src/features/channel/components/bottomsheets/ChannelDetailsBottomSheetMemberList.tsxfluxer_app/src/features/channel/components/channel_view/DMChannelView.tsxfluxer_app/src/features/channel/components/channel_view/dm_channel_view/CallParticipantsRow.tsxfluxer_app/src/features/channel/components/direct_message/useDMListItemHandlers.tsxfluxer_app/src/features/channel/components/friends/FriendListItem.tsxfluxer_app/src/features/channel/components/friends/MobileFriendRequestItem.tsxfluxer_app/src/features/channel/components/friends/views/FriendsList.tsxfluxer_app/src/features/channel/components/friends/views/PendingFriendsView.tsxfluxer_app/src/features/channel/components/guild_members_page/MemberTableRow.tsxfluxer_app/src/features/channel/components/guild_members_page/SearchApi.tsfluxer_app/src/features/relationship/utils/FriendsListUtils.tsxfluxer_app/src/features/relationship/utils/RelationshipActionUtils.tsxfluxer_app/src/features/search/state/QuickSwitcherCandidateBuilder.tsfluxer_app/src/features/search/state/QuickSwitcherResultGenerators.tsfluxer_app/src/features/ui/action_menu/UserContextMenu.tsxfluxer_app/src/features/ui/action_menu/items/DMMenuData.tsxfluxer_app/src/features/ui/avatars/AvatarStack.tsxfluxer_app/src/features/ui/components/Avatar.tsxfluxer_app/src/features/user/components/popouts/UserProfilePopout.tsxfluxer_app/src/features/user/components/profile/VoiceActivityCard.tsxfluxer_app/src/features/user/utils/NicknameUtils.tsfluxer_app/src/features/voice/components/VoiceParticipantAvatarList.tsxfluxer_app/src/features/voice/components/VoiceParticipantSortUtils.tsfluxer_app/src/features/voice/components/pip_overlay/PiPOverlayInner.tsxfluxer_app/src/features/voice/utils/TtsTextFormatter.tsfluxer_app/src/features/voice/utils/VoiceTtsUtils.tsxfix(app): show the full user tag beside display names instead of a bare discriminator (#1696)
fluxer_app/src/features/app/components/dialogs/shared/UseForwardChannelObservations.tsfluxer_app/src/features/app/components/floating/UserAreaPopout.module.cssfluxer_app/src/features/app/components/floating/UserAreaPopout.tsxfluxer_app/src/features/app/components/layout/GroupedVoiceParticipant.tsxfluxer_app/src/features/app/components/layout/sidebar_nav/GuildListDMItem.tsxfluxer_app/src/features/auth/components/accounts/AccountRow.module.cssfluxer_app/src/features/auth/components/accounts/AccountRow.tsxfluxer_app/src/features/channel/components/AutocompleteMention.tsxfluxer_app/src/features/channel/components/TypingUsers.tsxfluxer_app/src/features/channel/components/bottomsheets/ChannelDetailsBottomSheet.module.cssfluxer_app/src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelInfoHeader.tsxfluxer_app/src/features/channel/components/bottomsheets/channel_details_bottom_sheet/DMMembersList.tsxfluxer_app/src/features/channel/components/channel_header/useChannelHeaderData.tsfluxer_app/src/features/channel/components/direct_message/DMListItem.tsxfluxer_app/src/features/channel/utils/ChannelUtils.tsxfluxer_app/src/features/messaging/components/markdown/renderers/MentionRenderer.tsxfluxer_app/src/features/messaging/hooks/use_textarea_autocomplete/builders.tsfluxer_app/src/features/messaging/utils/AutocompleteOptionBuilders.tsfluxer_app/src/features/messaging/utils/markdown/Plaintext.tsfluxer_app/src/features/moderation/components/report_modal/IARModalPreview.tsxfluxer_app/src/features/user/components/modals/MutualItemsSheet.tsxfluxer_app/src/features/user/components/modals/tabs/BlockedUsersTab.module.cssfluxer_app/src/features/user/components/modals/tabs/BlockedUsersTab.tsxfluxer_app/src/features/user/components/modals/user_profile_modal/MutualFriendItem.tsxci: publish releases with the Fluxer CI app instead of the Actions token (#1695)
.github/workflows/_build-image.yaml.github/workflows/build-admin.yaml.github/workflows/build-api.yaml.github/workflows/build-app-proxy-self-hosted.yaml.github/workflows/build-app-proxy.yaml.github/workflows/build-desktop.yaml.github/workflows/build-docs.yaml.github/workflows/build-gateway.yaml.github/workflows/build-gifs.yaml.github/workflows/build-media-proxy.yaml.github/workflows/build-messages.yaml.github/workflows/build-snowflakes.yaml.github/workflows/build-static.yaml.github/workflows/build-unfurl.yaml.github/workflows/build-users.yaml.github/workflows/dispatch-private-marketing-build.yamlfix(app): resend a stalled member list subscription before replacing the session (#1694)
fluxer_app/src/features/member/hooks/useMemberListSubscription.tsci: stop fork clones running repository-scoped workflows (#1693)
.github/workflows/dispatch-dart-sdk-regeneration.yaml.github/workflows/dispatch-private-marketing-build.yaml.github/workflows/labeller.yaml.github/workflows/lock-closed-conversations.yamlfix(app): show friend nicknames on forward targets (#1692)
fluxer_app/src/features/app/components/dialogs/shared/UseForwardChannelObservations.tsfix(app): search forward targets by username and every known nickname (#1691)
fluxer_app/src/features/app/components/dialogs/shared/ForwardChannelIndex.tsfluxer_app/src/features/app/components/dialogs/shared/ForwardChannelSearch.test.tsfluxer_app/src/features/app/components/dialogs/shared/ForwardChannelSearchMatch.tsfluxer_app/src/features/app/components/dialogs/shared/UseForwardChannelObservations.tsfluxer_app/src/features/lexical/composer/LexicalRichInput.tsxfluxer_app/src/features/messaging/components/modals/ForwardModal.tsxfix(captcha): import foundation instead of material_ui in native controller
packages/fluxer_captcha/lib/src/controller/impl/captcha_controller_native.dartfix(api): let SSO accounts without a password satisfy sudo verification (#1690)
fluxer_api/src/api/auth/services/SudoVerificationService.tsfluxer_api/src/api/auth/tests/SudoVerificationCredentials.test.ts