fix(app): trim pasted friend tags
fix(app): trim pasted friend tags
Inspect stored evidence paths
fluxer_app/src/features/channel/components/direct_message/AddFriendForm.tsx
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
fix(app): trim pasted friend tags
fluxer_app/src/features/channel/components/direct_message/AddFriendForm.tsxfix(app): keep sticker sizes fixed while resizing the expression picker
fluxer_app/src/features/channel/components/StickersPicker.tsxfluxer_app/src/features/channel/components/sticker_picker/StickerPickerConstants.tsfluxer_app/src/features/channel/components/sticker_picker/VirtualRow.module.cssfluxer_app/src/features/channel/components/sticker_picker/VirtualRow.tsxfeat(self-hosted): improvements to instance handling
lib/app.dartlib/core/deep_links/deep_link_handler.dartlib/core/instance/instance_config_snapshot.dartlib/core/instance/instance_constants.dartlib/core/instance/instance_runtime_config.dartlib/core/providers/app_ui_lifecycle_provider.dartlib/core/providers/instance_runtime_config_provider.dartlib/core/providers/well_known_provider.dartlib/features/auth/data/auth_repository.dartlib/features/auth/presentation/login_screen.dartlib/features/auth/presentation/widgets/login_form.dartlib/features/auth/presentation/widgets/register_screen.dartlib/features/auth/providers/instance_selector_provider.dartlib/features/auth/providers/login_view_model.dartlib/features/auth/providers/pending_registration_url_code_provider.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/system_dm_composer_barrier.dartlib/features/chat/presentation/widgets/pickers/gif_picker_content.dartlib/features/chat/presentation/widgets/pickers/inline_expression_panel.dartlib/features/chat/providers/upload/cloud_upload_controller.dartlib/features/chat/utils/composer_expression_tabs.dartlib/features/chat/utils/system_message_text.dartlib/features/discovery/presentation/widgets/discovery_guild_card.dartlib/features/emoji/domain/emoji_attribution.dartlib/features/friends/presentation/widgets/friends_list.dartlib/features/guilds/presentation/modals/add_guild_create_view.dartlib/features/guilds/presentation/widgets/guild_bottom_sheet.dartlib/features/guilds/presentation/widgets/guild_context_menu.dartlib/features/guilds/presentation/widgets/guild_menu_data.dartlib/features/guilds/presentation/widgets/guild_navbar.dartlib/features/guilds/presentation/widgets/staff_only_guild_nagbar.dartlib/features/guilds/providers/add_guild_enabled_provider.dartlib/features/guilds/utils/leave_guild_action.dartlib/features/profile/presentation/widgets/user_profile_action_card_row.dartlib/features/profile/presentation/widgets/user_profile_relationship_button.dartlib/features/profile/presentation/widgets/user_profile_view.dartlib/features/quick_switcher/data/quick_switcher_candidate_builder.dartlib/features/quick_switcher/domain/quick_switcher_build_input.dartlib/features/quick_switcher/providers/quick_switcher_provider.dartlib/features/settings/presentation/sheets/connection_add_sheet.dartlib/features/settings/presentation/widgets/user_accessibility_animation_section.dartlib/features/settings/presentation/widgets/user_notifications_settings.dartlib/features/settings/providers/connections_view_model.dartlib/features/shell/presentation/splash_reveal_overlay.dartlib/features/shell/presentation/splash_screen.dartlib/features/ui/icons/instance_branding_image.dartlib/features/voice/providers/voice_join_eligibility_provider.darttest/core/instance/instance_runtime_config_test.darttest/features/auth/presentation/widgets/register_screen_test.darttest/features/chat/utils/composer_expression_tabs_test.dartMerge remote-tracking branch 'origin/canary' into canary
lib/app.dartlib/core/deep_links/deep_link_handler.dartlib/core/instance/instance_config_snapshot.dartlib/core/instance/instance_constants.dartlib/core/instance/instance_runtime_config.dartlib/core/providers/app_ui_lifecycle_provider.dartlib/core/providers/instance_runtime_config_provider.dartlib/core/providers/well_known_provider.dartlib/features/auth/data/auth_repository.dartlib/features/auth/presentation/login_screen.dartlib/features/auth/presentation/widgets/login_form.dartlib/features/auth/presentation/widgets/register_screen.dartlib/features/auth/providers/instance_selector_provider.dartlib/features/auth/providers/login_view_model.dartlib/features/auth/providers/pending_registration_url_code_provider.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/system_dm_composer_barrier.dartlib/features/chat/presentation/widgets/pickers/gif_picker_content.dartlib/features/chat/presentation/widgets/pickers/inline_expression_panel.dartlib/features/chat/providers/upload/cloud_upload_controller.dartlib/features/chat/utils/composer_expression_tabs.dartlib/features/chat/utils/system_message_text.dartlib/features/discovery/presentation/widgets/discovery_guild_card.dartlib/features/emoji/domain/emoji_attribution.dartlib/features/friends/presentation/widgets/friends_list.dartlib/features/guilds/presentation/modals/add_guild_create_view.dartlib/features/guilds/presentation/widgets/guild_bottom_sheet.dartlib/features/guilds/presentation/widgets/guild_context_menu.dartlib/features/guilds/presentation/widgets/guild_menu_data.dartlib/features/guilds/presentation/widgets/guild_navbar.dartlib/features/guilds/presentation/widgets/staff_only_guild_nagbar.dartlib/features/guilds/providers/add_guild_enabled_provider.dartlib/features/guilds/utils/leave_guild_action.dartlib/features/profile/presentation/widgets/user_profile_action_card_row.dartlib/features/profile/presentation/widgets/user_profile_relationship_button.dartlib/features/profile/presentation/widgets/user_profile_view.dartlib/features/quick_switcher/data/quick_switcher_candidate_builder.dartlib/features/quick_switcher/domain/quick_switcher_build_input.dartlib/features/quick_switcher/providers/quick_switcher_provider.dartlib/features/settings/presentation/sheets/connection_add_sheet.dartlib/features/settings/presentation/widgets/user_accessibility_animation_section.dartlib/features/settings/presentation/widgets/user_notifications_settings.dartlib/features/settings/providers/connections_view_model.dartlib/features/shell/presentation/splash_reveal_overlay.dartlib/features/shell/presentation/splash_screen.dartlib/features/ui/icons/instance_branding_image.dartlib/features/voice/providers/voice_join_eligibility_provider.darttest/core/instance/instance_runtime_config_test.darttest/features/auth/presentation/widgets/register_screen_test.darttest/features/chat/utils/composer_expression_tabs_test.darti18n: regenerate localizations
lib/l10n/generated/fluxer_localizations_ar.dartlib/l10n/generated/fluxer_localizations_cs.dartlib/l10n/generated/fluxer_localizations_da.dartlib/l10n/generated/fluxer_localizations_de.dartlib/l10n/generated/fluxer_localizations_el.dartlib/l10n/generated/fluxer_localizations_en.dartlib/l10n/generated/fluxer_localizations_es.dartlib/l10n/generated/fluxer_localizations_fi.dartlib/l10n/generated/fluxer_localizations_fr.dartlib/l10n/generated/fluxer_localizations_hu.dartlib/l10n/generated/fluxer_localizations_it.dartlib/l10n/generated/fluxer_localizations_ja.dartlib/l10n/generated/fluxer_localizations_ko.dartlib/l10n/generated/fluxer_localizations_lt.dartlib/l10n/generated/fluxer_localizations_nb.dartlib/l10n/generated/fluxer_localizations_pl.dartlib/l10n/generated/fluxer_localizations_pt.dartlib/l10n/generated/fluxer_localizations_ru.dartlib/l10n/generated/fluxer_localizations_sv.dartlib/l10n/generated/fluxer_localizations_th.dartlib/l10n/generated/fluxer_localizations_tr.dartlib/l10n/generated/fluxer_localizations_uk.dartlib/l10n/generated/fluxer_localizations_zh.dartfix(api): configure email app base URL separately
deploy/self-hosting/.env.exampledeploy/self-hosting/docker-compose.ymlfluxer_api/src/api/Config.tsfluxer_api/src/api/config/APIConfig.tsfluxer_api/src/api/middleware/ServiceSingletons.tspackages/config/src/ConfigLoader.tspackages/config/src/MasterConfig.tspackages/config/src/config_loader/EnvironmentOverrides.tsfix(api): configure email app base URL separately
deploy/self-hosting/.env.exampledeploy/self-hosting/docker-compose.ymlfluxer_api/src/api/Config.tsfluxer_api/src/api/config/APIConfig.tsfluxer_api/src/api/middleware/ServiceSingletons.tspackages/config/src/ConfigLoader.tspackages/config/src/MasterConfig.tspackages/config/src/config_loader/EnvironmentOverrides.tsfix(app): separate unread state from unread counts
fluxer_app/src/features/app/components/layout/ChannelItem.tsxfluxer_app/src/features/app/components/layout/ChannelListContent.tsxfluxer_app/src/features/app/components/layout/FavoritesChannelListContent.tsxfluxer_app/src/features/app/components/layout/GuildsLayout.tsxfluxer_app/src/features/app/components/layout/sidebar_nav/GuildListDMItem.tsxfluxer_app/src/features/app/components/layout/utils/ChannelUnreadState.test.tsfluxer_app/src/features/app/components/layout/utils/ChannelUnreadState.tsfluxer_app/src/features/app/components/layout/utils/ChannelUnreadStateMachine.test.tsfluxer_app/src/features/app/components/layout/utils/ChannelUnreadStateMachine.tsfluxer_app/src/features/channel/components/direct_message/DMListItem.tsxfluxer_app/src/features/read_state/state/ReadStates.test.tsfluxer_app/src/features/read_state/state/ReadStates.tsfluxer_app/src/features/read_state/state/read_states/ReadStateEntry.tsfluxer_app/src/features/search/state/QuickSwitcherCandidateBuilder.tsfluxer_app/src/features/ui/action_menu/items/GuildMenuData.tsxfluxer_app/src/features/ui/action_menu/items/GuildMenuItems.tsxfix(app): keep unread channel opens anchored to the divider
fluxer_app/src/features/channel/components/BlockedMessageGroups.tsxfluxer_app/src/features/channel/components/ChannelMessageStream.tsxfluxer_app/src/features/channel/components/ChannelMessages.tsxfluxer_app/src/features/messaging/utils/MessageGroupingUtils.test.tsfluxer_app/src/features/messaging/utils/MessageGroupingUtils.tsfluxer_app/src/features/platform/utils/scroll_manager/shared.test.tsfluxer_app/src/features/read_state/state/ReadStates.tsfluxer_app/src/features/read_state/state/read_states/ReadStateEntry.tsfix(app): submit message edits in background
fluxer_app/src/features/channel/components/UserMessage.tsxfluxer_app/src/features/messaging/commands/MessageCommands.tsxfluxer_app/src/features/messaging/hooks/useTextareaSubmit.tsfluxer_app/src/features/messaging/state/MessageQueue.tsxfluxer_app/src/features/messaging/utils/MessageRequestUtils.tsfluxer_app/src/features/platform/transport/RestTransport.tsfix(app): submit message edits in background
fluxer_app/src/features/channel/components/UserMessage.tsxfluxer_app/src/features/messaging/commands/MessageCommands.tsxfluxer_app/src/features/messaging/hooks/useTextareaSubmit.tsfluxer_app/src/features/messaging/state/MessageQueue.tsxfluxer_app/src/features/messaging/utils/MessageRequestUtils.tsfluxer_app/src/features/platform/transport/RestTransport.tschore: dart format Thanks broken save all vs code button
lib/features/chat/presentation/widgets/composer/slash_command_composer.dartlib/features/chat/presentation/widgets/composer/slash_command_param_bar.dartlib/features/chat/service/composer_slash_session.dartlib/features/chat/utils/composer_command_execute.dartlib/features/chat/utils/slash_slot_validation.darttest/features/chat/service/composer_slash_session_test.darttest/features/chat/utils/composer_slash_commands_test.dartMerge remote-tracking branch 'origin/canary' into canary
lib/features/chat/presentation/widgets/composer/slash_command_composer.dartlib/features/chat/presentation/widgets/composer/slash_command_param_bar.dartlib/features/chat/service/composer_slash_session.dartlib/features/chat/utils/composer_command_execute.dartlib/features/chat/utils/slash_slot_validation.darttest/features/chat/service/composer_slash_session_test.darttest/features/chat/utils/composer_slash_commands_test.dartchore: update lock
macos/Flutter/GeneratedPluginRegistrant.swiftpubspec.lockMerge remote-tracking branch 'origin/canary' into canary
lib/features/chat/domain/composer_slash_command.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/composer_autocomplete_field.dartlib/features/chat/presentation/widgets/composer/composer_autocomplete_field_state.dartlib/features/chat/presentation/widgets/composer/composer_autocomplete_panel.dartlib/features/chat/presentation/widgets/composer/slash_command_composer.dartlib/features/chat/presentation/widgets/composer/slash_command_param_bar.dartlib/features/chat/presentation/widgets/composer/wide_composer_layout.dartlib/features/chat/providers/core/chat_view_model.dartlib/features/chat/service/composer_autocomplete_trigger.dartlib/features/chat/service/composer_slash_session.dartlib/features/chat/utils/composer_command.dartlib/features/chat/utils/composer_command_execute.dartlib/features/chat/utils/composer_command_insertion.dartlib/features/chat/utils/composer_slash_commands.dartlib/features/chat/utils/slash_slot_validation.dartlib/l10n/fluxer_en.arblib/l10n/generated/fluxer_localizations.dartlib/l10n/generated/fluxer_localizations_ar.dartlib/l10n/generated/fluxer_localizations_cs.dartlib/l10n/generated/fluxer_localizations_da.dartlib/l10n/generated/fluxer_localizations_de.dartlib/l10n/generated/fluxer_localizations_el.dartlib/l10n/generated/fluxer_localizations_en.dartlib/l10n/generated/fluxer_localizations_es.dartlib/l10n/generated/fluxer_localizations_fi.dartlib/l10n/generated/fluxer_localizations_fr.dartlib/l10n/generated/fluxer_localizations_hu.dartlib/l10n/generated/fluxer_localizations_it.dartlib/l10n/generated/fluxer_localizations_ja.dartlib/l10n/generated/fluxer_localizations_ko.dartlib/l10n/generated/fluxer_localizations_lt.dartlib/l10n/generated/fluxer_localizations_nb.dartlib/l10n/generated/fluxer_localizations_pl.dartlib/l10n/generated/fluxer_localizations_pt.dartlib/l10n/generated/fluxer_localizations_ru.dartlib/l10n/generated/fluxer_localizations_sv.dartlib/l10n/generated/fluxer_localizations_th.dartlib/l10n/generated/fluxer_localizations_tr.dartlib/l10n/generated/fluxer_localizations_uk.dartlib/l10n/generated/fluxer_localizations_zh.dartmacos/Flutter/GeneratedPluginRegistrant.swiftpubspec.locktest/features/chat/presentation/widgets/composer/composer_autocomplete_panel_test.darttest/features/chat/presentation/widgets/composer/slash_command_param_bar_test.darttest/features/chat/service/composer_slash_session_test.darttest/features/chat/utils/composer_command_test.darttest/features/chat/utils/composer_slash_commands_test.dartfeat(composer): add support for basic slash commands
lib/features/chat/domain/composer_slash_command.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/composer_autocomplete_field.dartlib/features/chat/presentation/widgets/composer/composer_autocomplete_field_state.dartlib/features/chat/presentation/widgets/composer/composer_autocomplete_panel.dartlib/features/chat/presentation/widgets/composer/slash_command_composer.dartlib/features/chat/presentation/widgets/composer/slash_command_param_bar.dartlib/features/chat/presentation/widgets/composer/wide_composer_layout.dartlib/features/chat/providers/core/chat_view_model.dartlib/features/chat/service/composer_autocomplete_trigger.dartlib/features/chat/service/composer_slash_session.dartlib/features/chat/utils/composer_command.dartlib/features/chat/utils/composer_command_execute.dartlib/features/chat/utils/composer_command_insertion.dartlib/features/chat/utils/composer_slash_commands.dartlib/features/chat/utils/slash_slot_validation.dartlib/l10n/fluxer_en.arblib/l10n/generated/fluxer_localizations.dartlib/l10n/generated/fluxer_localizations_ar.dartlib/l10n/generated/fluxer_localizations_cs.dartlib/l10n/generated/fluxer_localizations_da.dartlib/l10n/generated/fluxer_localizations_de.dartlib/l10n/generated/fluxer_localizations_el.dartlib/l10n/generated/fluxer_localizations_en.dartlib/l10n/generated/fluxer_localizations_es.dartlib/l10n/generated/fluxer_localizations_fi.dartlib/l10n/generated/fluxer_localizations_fr.dartlib/l10n/generated/fluxer_localizations_hu.dartlib/l10n/generated/fluxer_localizations_it.dartlib/l10n/generated/fluxer_localizations_ja.dartlib/l10n/generated/fluxer_localizations_ko.dartlib/l10n/generated/fluxer_localizations_lt.dartlib/l10n/generated/fluxer_localizations_nb.dartlib/l10n/generated/fluxer_localizations_pl.dartlib/l10n/generated/fluxer_localizations_pt.dartlib/l10n/generated/fluxer_localizations_ru.dartlib/l10n/generated/fluxer_localizations_sv.dartlib/l10n/generated/fluxer_localizations_th.dartlib/l10n/generated/fluxer_localizations_tr.dartlib/l10n/generated/fluxer_localizations_uk.dartlib/l10n/generated/fluxer_localizations_zh.darttest/features/chat/presentation/widgets/composer/composer_autocomplete_panel_test.darttest/features/chat/presentation/widgets/composer/slash_command_param_bar_test.darttest/features/chat/service/composer_slash_session_test.darttest/features/chat/utils/composer_command_test.darttest/features/chat/utils/composer_slash_commands_test.dartfix(gifs): bound shard cache memory
fluxer_gifs/Cargo.tomlfluxer_gifs/src/klipy.rsfluxer_gifs/src/main.rsfluxer_gifs/src/shard_impl.rsfluxer_gifs/src/types.rsfluxer_svc/src/metrics.rsfluxer_svc/src/shard.rsfix(search): respect scope in channel suggestions
fluxer_app/src/features/channel/components/channel_search_results/ChannelSearchResultsShared.tsxfluxer_app/src/features/channel/components/message_search_bar/ChannelsSection.tsxfluxer_app/src/features/channel/components/message_search_bar/MessageSearchBarUtils.tsfluxer_app/src/features/channel/components/message_search_bar/PlaintextSection.tsxfluxer_app/src/features/channel/components/message_search_bar/useMessageSearchAutocomplete.tsfluxer_app/src/features/search/components/search/ScopeSheet.tsxfix(search): respect scope in channel suggestions
fluxer_app/src/features/channel/components/channel_search_results/ChannelSearchResultsShared.tsxfluxer_app/src/features/channel/components/message_search_bar/ChannelsSection.tsxfluxer_app/src/features/channel/components/message_search_bar/MessageSearchBarUtils.tsfluxer_app/src/features/channel/components/message_search_bar/PlaintextSection.tsxfluxer_app/src/features/channel/components/message_search_bar/useMessageSearchAutocomplete.tsfluxer_app/src/features/search/components/search/ScopeSheet.tsxfix(api): store administrator user archives separately (#2025)
fluxer_api/src/api/worker/tasks/HarvestUserData.ts