fix(emoji): visibility key collision
fix(emoji): visibility key collision Fixes: #833
Inspect stored evidence paths
lib/shared/utils/emoji_image_cache.darttest/shared/utils/emoji_image_cache_test.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
fix(emoji): visibility key collision Fixes: #833
lib/shared/utils/emoji_image_cache.darttest/shared/utils/emoji_image_cache_test.dartMerge remote-tracking branch 'origin/canary' into canary
lib/shared/utils/emoji_image_cache.darttest/shared/utils/emoji_image_cache_test.dartfeat(settings): support applications settings
lib/core/constants/user_flags.dartlib/features/settings/presentation/sheets/application_create_sheet.dartlib/features/settings/presentation/user_settings_modal.dartlib/features/settings/presentation/widgets/applications/application_bot_profile_section.dartlib/features/settings/presentation/widgets/applications/application_danger_section.dartlib/features/settings/presentation/widgets/applications/application_detail.dartlib/features/settings/presentation/widgets/applications/application_header.dartlib/features/settings/presentation/widgets/applications/application_info_section.dartlib/features/settings/presentation/widgets/applications/application_oauth_builder_section.dartlib/features/settings/presentation/widgets/applications/application_read_only_input.dartlib/features/settings/presentation/widgets/applications/application_secrets_section.dartlib/features/settings/presentation/widgets/user_applications.dartlib/features/settings/providers/applications_view_model.dartlib/features/settings/utils/bot_username.dartlib/features/settings/utils/oauth_authorize_url.dartlib/features/settings/utils/user_settings_field_registry.dartlib/features/settings/utils/user_settings_search_index.dartlib/l10n/fluxer_en.arblib/l10n/generated/fluxer_localizations.dartlib/l10n/generated/fluxer_localizations_ar.dartlib/l10n/generated/fluxer_localizations_bg.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_he.dartlib/l10n/generated/fluxer_localizations_hi.dartlib/l10n/generated/fluxer_localizations_hr.dartlib/l10n/generated/fluxer_localizations_hu.dartlib/l10n/generated/fluxer_localizations_id.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_nl.dartlib/l10n/generated/fluxer_localizations_pl.dartlib/l10n/generated/fluxer_localizations_pt.dartlib/l10n/generated/fluxer_localizations_ro.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_vi.dartlib/l10n/generated/fluxer_localizations_zh.dartMerge remote-tracking branch 'origin/canary' into canary
lib/core/constants/user_flags.dartlib/features/settings/presentation/sheets/application_create_sheet.dartlib/features/settings/presentation/user_settings_modal.dartlib/features/settings/presentation/widgets/applications/application_bot_profile_section.dartlib/features/settings/presentation/widgets/applications/application_danger_section.dartlib/features/settings/presentation/widgets/applications/application_detail.dartlib/features/settings/presentation/widgets/applications/application_header.dartlib/features/settings/presentation/widgets/applications/application_info_section.dartlib/features/settings/presentation/widgets/applications/application_oauth_builder_section.dartlib/features/settings/presentation/widgets/applications/application_read_only_input.dartlib/features/settings/presentation/widgets/applications/application_secrets_section.dartlib/features/settings/presentation/widgets/user_applications.dartlib/features/settings/providers/applications_view_model.dartlib/features/settings/utils/bot_username.dartlib/features/settings/utils/oauth_authorize_url.dartlib/features/settings/utils/user_settings_field_registry.dartlib/features/settings/utils/user_settings_search_index.dartlib/l10n/fluxer_en.arblib/l10n/generated/fluxer_localizations.dartlib/l10n/generated/fluxer_localizations_ar.dartlib/l10n/generated/fluxer_localizations_bg.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_he.dartlib/l10n/generated/fluxer_localizations_hi.dartlib/l10n/generated/fluxer_localizations_hr.dartlib/l10n/generated/fluxer_localizations_hu.dartlib/l10n/generated/fluxer_localizations_id.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_nl.dartlib/l10n/generated/fluxer_localizations_pl.dartlib/l10n/generated/fluxer_localizations_pt.dartlib/l10n/generated/fluxer_localizations_ro.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_vi.dartlib/l10n/generated/fluxer_localizations_zh.dartfix(static): vendor the deepfilternet 1.3.0 assets (#2832)
fluxer_static/libs/deepfilternet3/v3/models/DeepFilterNet3_onnx.tar.gzfluxer_static/libs/deepfilternet3/v3/pkg/df_bg.wasmfix(api): drop the upload segment signal and dead exports (#2831)
deploy/self-hosting/.env.examplefluxer_api/src/api/attachment/AttachmentUrls.tsfluxer_api/src/api/channel/services/message/AttachmentProcessingService.tsfluxer_api/src/api/channel/services/message/UploadSegmentSignal.tsfix(api): drop the upload segment signal and dead exports
deploy/self-hosting/.env.examplefluxer_api/src/api/attachment/AttachmentUrls.tsfluxer_api/src/api/channel/services/message/AttachmentProcessingService.tsfluxer_api/src/api/channel/services/message/UploadSegmentSignal.tsfix(test): failing test
test/features/channels/providers/channel_sidebar_icon_connect_bits_provider_test.darttest/features/chat/providers/core/chat_view_model_send_test.dartMerge remote-tracking branch 'origin/canary' into canary
test/features/channels/providers/channel_sidebar_icon_connect_bits_provider_test.darttest/features/chat/providers/core/chat_view_model_send_test.dartfeat(media-proxy): sign attachment URLs and gate origins (#2830)
Cargo.lockconfig/env/development.envdeploy/self-hosting/.env.exampledeploy/self-hosting/docker-compose.ymlfluxer_api/pkgs/media_proxy_utils/package.jsonfluxer_api/pkgs/media_proxy_utils/src/AttachmentUrlSignature.tsfluxer_api/src/api/Config.tsfluxer_api/src/api/app/ControllerRegistry.tsfluxer_api/src/api/attachment/AttachmentController.tsfluxer_api/src/api/attachment/AttachmentUrls.tsfluxer_api/src/api/channel/services/message/AttachmentProcessingService.tsfluxer_api/src/api/channel/services/message/MessageResponseDataService.tsfluxer_api/src/api/channel/services/message/UploadSegmentSignal.tsfluxer_api/src/api/config/APIConfig.tsfluxer_api/src/api/favorite_gif/FavoriteGifResolver.tsfluxer_api/src/api/favorite_meme/FavoriteMemeModel.tsfluxer_api/src/api/favorite_meme/FavoriteMemeService.tsfluxer_api/src/api/infrastructure/EmbedService.tsfluxer_api/src/api/infrastructure/IMediaService.tsfluxer_api/src/api/infrastructure/MediaService.tsfluxer_api/src/api/openapi/openapi.jsonfluxer_api/src/api/rate_limit_configs/ChannelRateLimitConfig.tsfluxer_api/src/api/test/Setup.tsfluxer_api/src/api/test/TestMediaService.tsfluxer_api/src/api/test/mocks/RepositoryBackedMessageResponseDataService.tsfluxer_api/src/api/utils/UnfurlerUtils.tsfluxer_api/src/api/webhook/WebhookService.tsfluxer_api/src/api/worker/tasks/HarvestGuildData.tsfluxer_api/src/api/worker/tasks/HarvestUserData.tsfluxer_app/src/features/app/constants/Endpoints.tsfluxer_app/src/features/channel/components/AutocompleteMemePreview.tsxfluxer_app/src/features/channel/components/MessageAttachmentStateUtils.tsfluxer_app/src/features/channel/components/MobileMemesPicker.tsxfluxer_app/src/features/channel/components/embeds/ChannelEmbed.tsxfluxer_app/src/features/channel/components/embeds/attachments/TextualAttachmentPreview.tsxfluxer_app/src/features/channel/components/embeds/attachments/TextualAttachmentPreviewFetch.tsfluxer_app/src/features/channel/components/embeds/media/EmbedGifv.tsxfluxer_app/src/features/channel/components/embeds/media/VoiceMessagePlayer.tsxfluxer_app/src/features/channel/components/pickers/gif/FavoriteGifTypes.tsfluxer_app/src/features/channel/components/pickers/gif/GifPickerGrid.tsxfluxer_app/src/features/channel/components/pickers/gif/GifPickerGridData.tsfluxer_app/src/features/channel/components/pickers/memes/MemeGridItem.tsxfluxer_app/src/features/expressions/state/FavoriteGif.tsfluxer_app/src/features/gateway/transport/GatewayConnection.tsfluxer_app/src/features/messaging/components/markdown/renderers/LinkRenderer.tsxfluxer_app/src/features/messaging/components/modals/MediaViewerModal.tsxfluxer_app/src/features/messaging/hooks/useAttachmentRefreshOnError.tsfluxer_app/src/features/messaging/hooks/useMediaLoading.tsfluxer_app/src/features/messaging/hooks/useNearViewport.tsfluxer_app/src/features/messaging/state/AttachmentUrlRefresher.tsfix(chat): gate check on disposed loading provider Fixes: #827
lib/features/channels/utils/navigate_to_channel_content.dartlib/features/chat/presentation/channel_layout.dartlib/features/mature_content/presentation/sheets/channel_access_gate_sheet.dartlib/features/mature_content/providers/mature_content_agreements_provider.dartlib/features/mature_content/utils/channel_gate_navigator.darttest/features/mature_content/utils/channel_gate_navigator_test.darttest/features/voice/utils/voice_channel_chat_jump_test.dartMerge remote-tracking branch 'origin/canary' into canary
lib/features/channels/utils/navigate_to_channel_content.dartlib/features/chat/presentation/channel_layout.dartlib/features/mature_content/presentation/sheets/channel_access_gate_sheet.dartlib/features/mature_content/providers/mature_content_agreements_provider.dartlib/features/mature_content/utils/channel_gate_navigator.darttest/features/mature_content/utils/channel_gate_navigator_test.darttest/features/voice/utils/voice_channel_chat_jump_test.dartfix(voice): jump-to-message support for text voice channels Fixes: #826
lib/features/chat/presentation/channel_layout.dartlib/features/chat/presentation/widgets/channel/channel_chat_content.dartlib/features/voice/presentation/sheets/voice_channel_chat_sheet.dartlib/features/voice/presentation/voice_channel_page_view.dartlib/features/voice/presentation/widgets/voice_channel_chat_surface.dartlib/features/voice/utils/voice_channel_chat_jump.darttest/features/voice/utils/voice_channel_chat_jump_test.dartMerge remote-tracking branch 'origin/canary' into canary
lib/features/chat/presentation/channel_layout.dartlib/features/chat/presentation/widgets/channel/channel_chat_content.dartlib/features/voice/presentation/sheets/voice_channel_chat_sheet.dartlib/features/voice/presentation/voice_channel_page_view.dartlib/features/voice/presentation/widgets/voice_channel_chat_surface.dartlib/features/voice/utils/voice_channel_chat_jump.darttest/features/voice/utils/voice_channel_chat_jump_test.dartfix(chat): never refresh in memory bits check on coldstart Fixes: #829
lib/core/permissions/channel_effective_permissions.dartlib/core/platform/physical_keyboard.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/composer_send_and_voice_button.dartlib/features/chat/providers/channel/channel_message_permissions_provider.dartlib/features/chat/providers/core/chat_view_model.darttest/core/platform/physical_keyboard_test.darttest/features/chat/providers/channel/channel_message_permissions_provider_test.dartMerge remote-tracking branch 'origin/canary' into canary
lib/core/permissions/channel_effective_permissions.dartlib/core/platform/physical_keyboard.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/composer_send_and_voice_button.dartlib/features/chat/providers/channel/channel_message_permissions_provider.dartlib/features/chat/providers/core/chat_view_model.darttest/core/platform/physical_keyboard_test.darttest/features/chat/providers/channel/channel_message_permissions_provider_test.dartfix(api): chunk guild permission batch RPC over 100 guilds (#2829)
fluxer_api/src/api/infrastructure/GatewayService.tsfix(api): chunk guild permission batch RPC over 100 guilds
fluxer_api/src/api/infrastructure/GatewayService.tsfeat(chat): physical keyboard detection Fixes: #825 Fixes: #828
android/app/src/main/kotlin/com/fluxer/MainActivity.ktandroid/app/src/main/kotlin/com/fluxer/PhysicalKeyboardBridge.ktandroid/app/src/test/kotlin/com/fluxer/PhysicalKeyboardBridgeTest.ktios/Runner.xcodeproj/project.pbxprojios/Runner/AppDelegate.swiftios/Runner/PhysicalKeyboardBridge.swiftlib/core/platform/physical_keyboard.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/composer_autocomplete_field.dartlib/features/chat/presentation/widgets/composer/slash_command_composer.dartlib/features/chat/utils/composer/composer_enter_send.dartlib/features/input/providers/physical_keyboard_provider.darttest/core/platform/physical_keyboard_test.darttest/features/chat/utils/composer/composer_enter_send_test.dartMerge remote-tracking branch 'origin/canary' into canary
android/app/src/main/kotlin/com/fluxer/MainActivity.ktandroid/app/src/main/kotlin/com/fluxer/PhysicalKeyboardBridge.ktandroid/app/src/test/kotlin/com/fluxer/PhysicalKeyboardBridgeTest.ktios/Runner.xcodeproj/project.pbxprojios/Runner/AppDelegate.swiftios/Runner/PhysicalKeyboardBridge.swiftlib/core/platform/physical_keyboard.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/composer_autocomplete_field.dartlib/features/chat/presentation/widgets/composer/slash_command_composer.dartlib/features/chat/utils/composer/composer_enter_send.dartlib/features/input/providers/physical_keyboard_provider.darttest/core/platform/physical_keyboard_test.darttest/features/chat/utils/composer/composer_enter_send_test.dart