fix(api): restore commas in geoip location labels (#2812)
fix(api): restore commas in geoip location labels (#2812)
Inspect stored evidence paths
fluxer_api/pkgs/geoip/src/GeoipLookup.ts
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(api): restore commas in geoip location labels (#2812)
fluxer_api/pkgs/geoip/src/GeoipLookup.tsfeat(admin): audit admin reads and filter the log by access (#2811)
fluxer_admin/openapi-admin.jsonfluxer_admin/src/api/audit.rsfluxer_admin/src/api/types/audit.rsfluxer_admin/src/routes/guild_tabs.rsfluxer_admin/src/routes/system.rsfluxer_admin/src/routes/user_tabs.rsfluxer_admin/src/templates/components/audit_logs_for_target.rsfluxer_admin/src/templates/pages/audit_logs.rsfluxer_admin/tests/api_deserialization.rsfluxer_admin/tests/htmx_acceptance.rsfluxer_api/pkgs/elasticsearch_search/src/adapters/ElasticsearchAuditLogAdapter.tsfluxer_api/src/api/admin/AdminAuditActions.tsfluxer_api/src/api/admin/AdminAuditRecorder.tsfluxer_api/src/api/admin/controllers/AdminApiKeyAdminController.tsfluxer_api/src/api/admin/controllers/ApplicationAdminController.tsfluxer_api/src/api/admin/controllers/ArchiveAdminController.tsfluxer_api/src/api/admin/controllers/AuditLogAdminController.tsfluxer_api/src/api/admin/controllers/BanAdminController.tsfluxer_api/src/api/admin/controllers/BulkAdminController.tsfluxer_api/src/api/admin/controllers/DiscoveryAdminController.tsfluxer_api/src/api/admin/controllers/GatewayAdminController.tsfluxer_api/src/api/admin/controllers/GuildAdminController.tsfluxer_api/src/api/admin/controllers/InstanceConfigAdminController.tsfluxer_api/src/api/admin/controllers/JobsAdminController.tsfluxer_api/src/api/admin/controllers/LimitConfigAdminController.tsfluxer_api/src/api/admin/controllers/MessageAdminController.tsfluxer_api/src/api/admin/controllers/ReportAdminController.tsfluxer_api/src/api/admin/controllers/SystemAdminController.tsfluxer_api/src/api/admin/controllers/UserAdminController.tsfluxer_api/src/api/admin/controllers/VoiceAdminController.tsfluxer_api/src/api/admin/services/AdminAuditService.tsfluxer_api/src/api/admin/tests/AdminAuditAccessFilter.test.tsfluxer_api/src/api/admin/tests/audit_coverage/AdminApiKeyAdminAuditCases.tsfluxer_api/src/api/admin/tests/audit_coverage/AdminApiKeyAdminAuditCoverage.test.tsfluxer_api/src/api/admin/tests/audit_coverage/AdminAuditCoverage.tsfluxer_api/src/api/admin/tests/audit_coverage/AdminAuditRouteCoverage.test.tsfluxer_api/src/api/admin/tests/audit_coverage/ApplicationAdminAuditCases.tsfluxer_api/src/api/admin/tests/audit_coverage/ApplicationAdminAuditCoverage.test.tsfluxer_api/src/api/admin/tests/audit_coverage/ArchiveAdminAuditCases.tsfluxer_api/src/api/admin/tests/audit_coverage/ArchiveAdminAuditCoverage.test.tsfluxer_api/src/api/admin/tests/audit_coverage/AssetAdminAuditCases.tsfluxer_api/src/api/admin/tests/audit_coverage/AssetAdminAuditCoverage.test.tsfluxer_api/src/api/admin/tests/audit_coverage/AuditLogAdminAuditCases.tsfluxer_api/src/api/admin/tests/audit_coverage/AuditLogAdminAuditCoverage.test.tsfluxer_api/src/api/admin/tests/audit_coverage/BanAdminAuditCases.tsfluxer_api/src/api/admin/tests/audit_coverage/BanAdminAuditCoverage.test.tsfluxer_api/src/api/admin/tests/audit_coverage/BulkAdminAuditCases.tsfluxer_api/src/api/admin/tests/audit_coverage/BulkAdminAuditCoverage.test.tsfluxer_api/src/api/admin/tests/audit_coverage/CodesAdminAuditCases.tsfluxer_api/src/api/admin/tests/audit_coverage/CodesAdminAuditCoverage.test.tschore(voice): remove voice reconciliation leftovers (#2810)
deploy/self-hosting/docker-compose.ymlfluxer_api/src/api/infrastructure/DisabledLiveKitService.tsfluxer_api/src/api/infrastructure/GatewayService.tsfluxer_api/src/api/infrastructure/IGatewayService.tsfluxer_api/src/api/infrastructure/ILiveKitService.tsfluxer_api/src/api/infrastructure/LiveKitService.tsfluxer_api/src/api/infrastructure/LiveKitWebhookService.tsfluxer_api/src/api/test/NoopGatewayService.tsfluxer_gateway/src/gateway/gateway_rpc_guild.erlfluxer_gateway/src/gateway/gateway_rpc_guild_voice.erlfluxer_gateway/src/gateway/gateway_rpc_guild_voice_util.erlfluxer_gateway/src/gateway/gateway_rpc_misc.erlfluxer_gateway/src/gateway/gateway_rpc_misc_push.erlfluxer_gateway/src/gateway/gateway_rpc_voice.erlfluxer_gateway/src/guild/guild.erlfluxer_gateway/src/guild/guild_voice_lifecycle.erlfluxer_gateway/src/guild/voice/guild_voice_server.erlfluxer_gateway/src/guild/voice/guild_voice_server_state.erlchore(voice): remove the recon service (#2808)
.github/labeller.yaml.github/workflows/build-recon.yamlCargo.lockCargo.tomlconfig/env/development.envfluxer_docs/src/content/docs/operator/configuration.mdxfluxer_recon/Cargo.tomlfluxer_recon/Dockerfilefluxer_recon/src/actuate.rsfluxer_recon/src/budget.rsfluxer_recon/src/census.rsfluxer_recon/src/clock.rsfluxer_recon/src/config.rsfluxer_recon/src/control.rsfluxer_recon/src/decide.rsfluxer_recon/src/discovery.rsfluxer_recon/src/evidence.rsfluxer_recon/src/gateway/codes.rsfluxer_recon/src/gateway/mod.rsfluxer_recon/src/gateway/nats.rsfluxer_recon/src/guards.rsfluxer_recon/src/health.rsfluxer_recon/src/ids.rsfluxer_recon/src/ledger.rsfluxer_recon/src/lib.rsfluxer_recon/src/livekit/auth.rsfluxer_recon/src/livekit/mod.rsfluxer_recon/src/livekit/twirp.rsfluxer_recon/src/main.rsfluxer_recon/src/metrics.rsfluxer_recon/src/names.rsfluxer_recon/src/observe.rsfluxer_recon/src/runtime.rsfluxer_recon/src/schedule.rsfluxer_recon/src/service.rsfluxer_recon/src/singleton.rsfluxer_recon/src/suspicion.rsfluxer_recon/src/topology/mod.rsfluxer_recon/src/topology/postgres.rsfluxer_recon/src/topology/scylla.rsfluxer_recon/src/turn.rsfluxer_recon/src/webhook.rsfluxer_svc/src/metrics.rstools/ci/src/ci_workflow.rstools/ci/src/image_set.rschore(voice): remove the recon service
.github/labeller.yaml.github/workflows/build-recon.yamlCargo.lockCargo.tomlconfig/env/development.envfluxer_docs/src/content/docs/operator/configuration.mdxfluxer_recon/Cargo.tomlfluxer_recon/Dockerfilefluxer_recon/src/actuate.rsfluxer_recon/src/budget.rsfluxer_recon/src/census.rsfluxer_recon/src/clock.rsfluxer_recon/src/config.rsfluxer_recon/src/control.rsfluxer_recon/src/decide.rsfluxer_recon/src/discovery.rsfluxer_recon/src/evidence.rsfluxer_recon/src/gateway/codes.rsfluxer_recon/src/gateway/mod.rsfluxer_recon/src/gateway/nats.rsfluxer_recon/src/guards.rsfluxer_recon/src/health.rsfluxer_recon/src/ids.rsfluxer_recon/src/ledger.rsfluxer_recon/src/lib.rsfluxer_recon/src/livekit/auth.rsfluxer_recon/src/livekit/mod.rsfluxer_recon/src/livekit/twirp.rsfluxer_recon/src/main.rsfluxer_recon/src/metrics.rsfluxer_recon/src/names.rsfluxer_recon/src/observe.rsfluxer_recon/src/runtime.rsfluxer_recon/src/schedule.rsfluxer_recon/src/service.rsfluxer_recon/src/singleton.rsfluxer_recon/src/suspicion.rsfluxer_recon/src/topology/mod.rsfluxer_recon/src/topology/postgres.rsfluxer_recon/src/topology/scylla.rsfluxer_recon/src/turn.rsfluxer_recon/src/webhook.rsfluxer_svc/src/metrics.rstools/ci/src/ci_workflow.rstools/ci/src/image_set.rsfix(gateway): always clear expired custom statuses (#2807)
fluxer_gateway/src/presence/presence_broadcast.erlfluxer_gateway/src/presence/presence_payload.erlfluxer_gateway/src/utils/custom_status_expiry.erlfix(app): stop plain unicode symbols rendering as color emoji (#2806)
fluxer_app/src/app/globals.cssfluxer_app/src/features/theme/styles/preflight.cssfeat(instance): make the status page URL configurable (#1159)
fluxer_admin/openapi-admin.jsonfluxer_admin/src/api/types/instance_config.rsfluxer_admin/src/routes/system_actions.rsfluxer_admin/src/templates/pages/instance_config.rsfluxer_api/src/api/Config.tsfluxer_api/src/api/admin/controllers/InstanceConfigAdminController.tsfluxer_api/src/api/config/APIConfig.tsfluxer_api/src/api/instance/InstanceConfigRepository.tsfluxer_api/src/api/openapi/openapi.jsonfluxer_app/src/features/app/hooks/useConnectionNotice.tsfluxer_app/src/features/app/state/RuntimeConfig.tsfluxer_app/src/features/devtools/components/NagbarControls.tsfluxer_app/src/features/i18n/locales/ar/messages.pofluxer_app/src/features/i18n/locales/auto-i18n-reviewed-unchanged.jsonfluxer_app/src/features/i18n/locales/bg/messages.pofluxer_app/src/features/i18n/locales/cs/messages.pofluxer_app/src/features/i18n/locales/da/messages.pofluxer_app/src/features/i18n/locales/de/messages.pofluxer_app/src/features/i18n/locales/el/messages.pofluxer_app/src/features/i18n/locales/en-GB/messages.pofluxer_app/src/features/i18n/locales/en-US/messages.pofluxer_app/src/features/i18n/locales/es-419/messages.pofluxer_app/src/features/i18n/locales/es-ES/messages.pofluxer_app/src/features/i18n/locales/fi/messages.pofluxer_app/src/features/i18n/locales/fr/messages.pofluxer_app/src/features/i18n/locales/he/messages.pofluxer_app/src/features/i18n/locales/hi/messages.pofluxer_app/src/features/i18n/locales/hr/messages.pofluxer_app/src/features/i18n/locales/hu/messages.pofluxer_app/src/features/i18n/locales/id/messages.pofluxer_app/src/features/i18n/locales/it/messages.pofluxer_app/src/features/i18n/locales/ja/messages.pofluxer_app/src/features/i18n/locales/ko/messages.pofluxer_app/src/features/i18n/locales/lt/messages.pofluxer_app/src/features/i18n/locales/nl/messages.pofluxer_app/src/features/i18n/locales/no/messages.pofluxer_app/src/features/i18n/locales/pl/messages.pofluxer_app/src/features/i18n/locales/pt-BR/messages.pofluxer_app/src/features/i18n/locales/ro/messages.pofluxer_app/src/features/i18n/locales/ru/messages.pofluxer_app/src/features/i18n/locales/sv-SE/messages.pofluxer_app/src/features/i18n/locales/th/messages.pofluxer_app/src/features/i18n/locales/tr/messages.pofluxer_app/src/features/i18n/locales/uk/messages.pofluxer_app/src/features/i18n/locales/vi/messages.pofluxer_app/src/features/i18n/locales/zh-CN/messages.pofluxer_app/src/features/i18n/locales/zh-TW/messages.pofluxer_app/src/features/ui/state/Nagbar.tsfluxer_app/src/features/user/state/StatusPage.tsfluxer_docs/scripts/VerifyDocsStyle.tschore: dart format
test/shared/gestures/axis_locking_horizontal_drag_recognizer_test.darttest/shared/gestures/pointer_delivery_profiler_test.dartMerge remote-tracking branch 'origin/canary' into canary
test/shared/gestures/axis_locking_horizontal_drag_recognizer_test.darttest/shared/gestures/pointer_delivery_profiler_test.dartfeat(gestures): dynamic slop calculation This works better than a static due to some brands on the Android side reporting pointers differently.
lib/features/chat/presentation/widgets/messages/chat_list_keyboard_dismiss.dartlib/main.dartlib/shared/gestures/axis_locking_horizontal_drag_recognizer.dartlib/shared/gestures/horizontal_drag_axis_lock.dartlib/shared/gestures/pointer_delivery_profiler.darttest/features/chat/presentation/widgets/messages/chat_list_keyboard_dismiss_test.darttest/shared/gestures/axis_locking_horizontal_drag_recognizer_test.darttest/shared/gestures/horizontal_drag_axis_lock_test.darttest/shared/gestures/pointer_delivery_profiler_test.dartMerge remote-tracking branch 'origin/canary' into canary
lib/features/chat/presentation/widgets/messages/chat_list_keyboard_dismiss.dartlib/main.dartlib/shared/gestures/axis_locking_horizontal_drag_recognizer.dartlib/shared/gestures/horizontal_drag_axis_lock.dartlib/shared/gestures/pointer_delivery_profiler.darttest/features/chat/presentation/widgets/messages/chat_list_keyboard_dismiss_test.darttest/shared/gestures/axis_locking_horizontal_drag_recognizer_test.darttest/shared/gestures/horizontal_drag_axis_lock_test.darttest/shared/gestures/pointer_delivery_profiler_test.dartrefactor(api): purge cache by canonical media prefix (#2802)
fluxer_api/pkgs/kv_client/src/IKVProvider.tsfluxer_api/pkgs/kv_client/src/KVClient.tsfluxer_api/pkgs/kv_client/src/__tests__/KVClient.test.tsfluxer_api/src/api/infrastructure/CachePurgeAdapter.tsfluxer_api/src/api/infrastructure/CachePurgePaths.test.tsfluxer_api/src/api/infrastructure/CachePurgePaths.tsfluxer_api/src/api/infrastructure/CachePurgeQueue.tsfluxer_api/src/api/infrastructure/HttpCachePurgeAdapter.tsfluxer_api/src/api/test/mocks/MockKVProvider.tsfluxer_api/src/api/worker/tasks/ProcessCachePurgeQueue.tsfluxer_api/src/api/worker/tests/ProcessCachePurgeQueue.test.tspackages/config/src/ConfigLoader.tspackages/config/src/__tests__/ConfigLoader.test.tschore(ci): upgrade runners to macos27
.github/workflows/ios-beta-testflight.yml.github/workflows/ios-canary-testflight.yml.github/workflows/ios-production-release.ymlMerge remote-tracking branch 'origin/canary' into canary
.github/workflows/ios-beta-testflight.yml.github/workflows/ios-canary-testflight.yml.github/workflows/ios-production-release.ymlMerge branch 'canary' into fix/fullscreen-nav
android/app/src/main/AndroidManifest.xmlandroid/app/src/main/kotlin/com/fluxer/AnimatorDurationScaleBridge.ktandroid/app/src/main/kotlin/com/fluxer/BrowserLaunchBridge.ktandroid/app/src/main/kotlin/com/fluxer/InAppBrowserTasks.ktandroid/app/src/main/kotlin/com/fluxer/MainActivity.ktandroid/app/src/test/kotlin/com/fluxer/AnimatorDurationScaleBridgeTest.ktandroid/app/src/test/kotlin/com/fluxer/InAppBrowserTasksTest.ktassets/haptics/neko_purr.ahapdart_sdkfluxerlib/app.dartlib/core/api/fluxer_client_provider.dartlib/core/api/premium_state_response_interceptor.dartlib/core/audio/chat_attachment/chat_attachment_audio_controller.dartlib/core/audio/chat_attachment/chat_attachment_audio_media_item.dartlib/core/audio/chat_attachment/chat_attachment_audio_playback.dartlib/core/bootstrap/flutter_error_ui.dartlib/core/database/fluxer_database.dartlib/core/database/tables/user_preferences.dartlib/core/gateway/gateway_event_handler.dartlib/core/gateway/providers/gateway_event_providers.dartlib/core/instance/instance_constants.dartlib/core/instance/instance_endpoint_normalizer.dartlib/core/limits/limit_defaults.dartlib/core/platform/android_animator_duration_scale.dartlib/core/premium/premium_state_response_json.dartlib/core/providers/app_startup_provider.dartlib/core/providers/app_ui_lifecycle_provider.dartlib/core/providers/fluxer_sfx_provider.dartlib/core/providers/gateway_connection_provider.dartlib/core/providers/gateway_provider.dartlib/core/providers/gateway_reconnect_provider.dartlib/core/push/pending_push_notification_route.dartlib/core/router/fluxer_router.dartlib/core/router/pre_reconnecting_location_provider.dartlib/core/synced_preferences/engine/synced_field_adapter.dartlib/core/synced_preferences/engine/synced_field_registry.dartlib/core/synced_preferences/engine/synced_preference_field.dartlib/core/synced_preferences/engine/synced_preferences_engine.dartlib/core/synced_preferences/engine/synced_preferences_store.dartlib/core/synced_preferences/fields/accessibility_synced_field.dartlib/core/synced_preferences/fields/double_tap_reaction_synced_field.dartlib/core/synced_preferences/fields/favorites_synced_field.dartlib/core/synced_preferences/generated/fluxer/user/preferences/v1/accessibility.pb.dartlib/core/synced_preferences/generated/fluxer/user/preferences/v1/accessibility.pbjson.dartlib/core/synced_preferences/generated/fluxer/user/preferences/v1/preferences.pb.dartlib/core/synced_preferences/generated/fluxer/user/preferences/v1/preferences.pbjson.dartlib/core/synced_preferences/proto/fluxer/user/preferences/v1/accessibility.protolib/core/synced_preferences/proto/fluxer/user/preferences/v1/preferences.protolib/core/synced_preferences/synced_theme_hydration.dartfix(api): require manage messages to remove others' reactions (#2799)
fluxer_api/src/api/channel/services/MessageInteractionService.tsfluxer_api/src/api/channel/services/interaction/MessageReactionService.tsfluxer_api/src/api/channel/tests/ReactionRemovalPermissions.test.tsfluxer_docs/src/content/docs/http-api/messages.mdxfeat(experiments): ship seven treatments to everyone (#2798)
fluxer_admin/openapi-admin.jsonfluxer_admin/src/api/types/instance_config.rsfluxer_admin/src/routes/system_actions.rsfluxer_admin/src/templates/pages/instance_config.rsfluxer_admin/tests/api_deserialization.rsfluxer_admin/tests/htmx_acceptance.rsfluxer_api/src/api/admin/controllers/InstanceConfigAdminController.tsfluxer_api/src/api/experiment/ExperimentController.tsfluxer_api/src/api/experiment/tests/ExperimentController.test.tsfluxer_api/src/api/instance/InstanceConfigRepository.test.tsfluxer_api/src/api/instance/InstanceConfigRepository.tsfluxer_api/src/api/openapi/openapi.jsonfluxer_app/src/app/App.tsxfluxer_app/src/features/app/components/layout/GuildHeader.test.tsxfluxer_app/src/features/app/components/layout/GuildHeader.tsxfluxer_app/src/features/app/components/layout/KeyboardModeListener.tsfluxer_app/src/features/app/components/shared/custom_status_display/CustomStatusDisplay.module.cssfluxer_app/src/features/app/components/shared/custom_status_display/CustomStatusDisplay.test.tsxfluxer_app/src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsxfluxer_app/src/features/app/config/AuditLogConstants.tsfluxer_app/src/features/app/hooks/useGuildBannerPresentation.tsfluxer_app/src/features/app/state/GuildHeaderCollapseRollout.test.tsfluxer_app/src/features/app/state/GuildHeaderCollapseRollout.tsfluxer_app/src/features/channel/components/BlockedMessageGroups.module.cssfluxer_app/src/features/channel/components/BlockedMessageGroups.test.tsxfluxer_app/src/features/channel/components/BlockedMessageGroups.tsxfluxer_app/src/features/channel/components/ChannelMessage.tsxfluxer_app/src/features/channel/components/ChannelMessages.tsxfluxer_app/src/features/channel/components/LegacyTypingUsers.tsxfluxer_app/src/features/channel/components/LexicalChannelTextareaContent.tsxfluxer_app/src/features/channel/components/MessageActionBar.module.cssfluxer_app/src/features/channel/components/MessageActionBar.tsxfluxer_app/src/features/channel/components/MessageAttachments.module.cssfluxer_app/src/features/channel/components/MessageAttachments.test.tsxfluxer_app/src/features/channel/components/MessageAttachments.tsxfluxer_app/src/features/channel/components/MessageFocusRingContract.test.tsfluxer_app/src/features/channel/components/MessageHoverState.tsfluxer_app/src/features/channel/components/MessageHoverStyleContract.test.tsfluxer_app/src/features/channel/components/MessageReactions.test.tsxfluxer_app/src/features/channel/components/MessageReactions.tsxfluxer_app/src/features/channel/components/ReplyPreview.tsxfluxer_app/src/features/channel/components/RollingTypingUsers.module.cssfluxer_app/src/features/channel/components/RollingTypingUsers.test.tsxfluxer_app/src/features/channel/components/RollingTypingUsers.tsxfluxer_app/src/features/channel/components/TypingUsers.module.cssfluxer_app/src/features/channel/components/TypingUsers.test.tsxfluxer_app/src/features/channel/components/TypingUsers.tsxfluxer_app/src/features/channel/components/direct_message/DMListItem.tsxfluxer_app/src/features/channel/state/BlockedMessageGroupsRollout.test.tsfluxer_app/src/features/channel/state/BlockedMessageGroupsRollout.tsfeat(experiments): ship seven treatments to everyone
fluxer_admin/openapi-admin.jsonfluxer_admin/src/api/types/instance_config.rsfluxer_admin/src/routes/system_actions.rsfluxer_admin/src/templates/pages/instance_config.rsfluxer_admin/tests/api_deserialization.rsfluxer_admin/tests/htmx_acceptance.rsfluxer_api/src/api/admin/controllers/InstanceConfigAdminController.tsfluxer_api/src/api/experiment/ExperimentController.tsfluxer_api/src/api/experiment/tests/ExperimentController.test.tsfluxer_api/src/api/instance/InstanceConfigRepository.test.tsfluxer_api/src/api/instance/InstanceConfigRepository.tsfluxer_api/src/api/openapi/openapi.jsonfluxer_app/src/app/App.tsxfluxer_app/src/features/app/components/layout/GuildHeader.test.tsxfluxer_app/src/features/app/components/layout/GuildHeader.tsxfluxer_app/src/features/app/components/layout/KeyboardModeListener.tsfluxer_app/src/features/app/components/shared/custom_status_display/CustomStatusDisplay.module.cssfluxer_app/src/features/app/components/shared/custom_status_display/CustomStatusDisplay.test.tsxfluxer_app/src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsxfluxer_app/src/features/app/config/AuditLogConstants.tsfluxer_app/src/features/app/hooks/useGuildBannerPresentation.tsfluxer_app/src/features/app/state/GuildHeaderCollapseRollout.test.tsfluxer_app/src/features/app/state/GuildHeaderCollapseRollout.tsfluxer_app/src/features/channel/components/BlockedMessageGroups.module.cssfluxer_app/src/features/channel/components/BlockedMessageGroups.test.tsxfluxer_app/src/features/channel/components/BlockedMessageGroups.tsxfluxer_app/src/features/channel/components/ChannelMessage.tsxfluxer_app/src/features/channel/components/ChannelMessages.tsxfluxer_app/src/features/channel/components/LegacyTypingUsers.tsxfluxer_app/src/features/channel/components/LexicalChannelTextareaContent.tsxfluxer_app/src/features/channel/components/MessageActionBar.module.cssfluxer_app/src/features/channel/components/MessageActionBar.tsxfluxer_app/src/features/channel/components/MessageAttachments.module.cssfluxer_app/src/features/channel/components/MessageAttachments.test.tsxfluxer_app/src/features/channel/components/MessageAttachments.tsxfluxer_app/src/features/channel/components/MessageFocusRingContract.test.tsfluxer_app/src/features/channel/components/MessageHoverState.tsfluxer_app/src/features/channel/components/MessageHoverStyleContract.test.tsfluxer_app/src/features/channel/components/MessageReactions.test.tsxfluxer_app/src/features/channel/components/MessageReactions.tsxfluxer_app/src/features/channel/components/ReplyPreview.tsxfluxer_app/src/features/channel/components/RollingTypingUsers.module.cssfluxer_app/src/features/channel/components/RollingTypingUsers.test.tsxfluxer_app/src/features/channel/components/RollingTypingUsers.tsxfluxer_app/src/features/channel/components/TypingUsers.module.cssfluxer_app/src/features/channel/components/TypingUsers.test.tsxfluxer_app/src/features/channel/components/TypingUsers.tsxfluxer_app/src/features/channel/components/direct_message/DMListItem.tsxfluxer_app/src/features/channel/state/BlockedMessageGroupsRollout.test.tsfluxer_app/src/features/channel/state/BlockedMessageGroupsRollout.tsfix(api): stop exporting the change feed stats type (#2797)
fluxer_api/src/api/infrastructure/StorageChangeFeed.ts