fix(shell): guild switch drawer open
fix(shell): guild switch drawer open
Inspect stored evidence paths
lib/features/shell/providers/reveal_side_provider.darttest/features/shell/presentation/app_layout_drawer_sync_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(shell): guild switch drawer open
lib/features/shell/providers/reveal_side_provider.darttest/features/shell/presentation/app_layout_drawer_sync_test.dartfeat(fluxer_markdown): support KaTeX
packages/fluxer_markdown/lib/src/renderers/fluxer_markdown_renderers.dartpackages/fluxer_markdown/pubspec.lockpackages/fluxer_markdown/pubspec.yamlpackages/fluxer_markdown/test/latex_code_block_test.dartpubspec.lockfix(composer): improvements to keyboard refocus
lib/core/api/sudo_dialog.dartlib/features/auth/presentation/mfa_screen.dartlib/features/auth/presentation/widgets/login_form.dartlib/features/chat/presentation/widgets/composer/channel_textarea.dartlib/features/chat/presentation/widgets/composer/slash_command_composer.dartlib/features/chat/presentation/widgets/pickers/chat_bottom_input_slot.dartlib/features/chat/presentation/widgets/pickers/chat_expression_expandable_sheet.dartlib/features/chat/providers/pickers/bottom_input_slot_provider.dartlib/features/chat/providers/pickers/expression_panel_provider.dartlib/features/chat/providers/pickers/mobile_keyboard_metrics_provider.dartlib/features/chat/utils/composer/bottom_input_slot_layout.dartlib/features/input/providers/composer_focus_coordinator_provider.dartlib/features/shell/providers/reveal_side_provider.dartlib/shared/utils/keyboard_focus_restore.darttest/features/chat/presentation/widgets/composer/slash_command_composer_focus_test.darttest/features/chat/providers/pickers/mobile_keyboard_metrics_provider_test.darttest/features/chat/utils/composer/bottom_input_slot_layout_test.darttest/features/input/providers/composer_focus_coordinator_test.darttest/features/shell/presentation/app_layout_drawer_sync_test.darttest/shared/utils/keyboard_focus_restore_test.dartperf(media-proxy): gzip static assets on the fly (#3079)
Cargo.lockfluxer_media_proxy/Cargo.tomlfluxer_media_proxy/src/server/download_stream.rsfluxer_media_proxy/src/server/runtime.rsfix(auth): offer every transport for passkeys stored without any (#3077)
fluxer_api/src/api/auth/AuthMfa.tsfluxer_api/src/api/auth/tests/WebAuthnMfaLogin.test.tsfluxer_api/src/api/auth/tests/WebAuthnTestUtils.tsfix(self-hosting): grow seaweedfs one volume at a time (#3076)
deploy/self-hosting/.env.exampledeploy/self-hosting/docker-compose.ymlfluxer_docs/src/content/docs/operator/configuration.mdxpackages/config/src/__tests__/SelfHostingComposeEnvironment.test.tsfix(api): report final system DM progress (#3074)
fluxer_api/src/api/worker/tasks/SendSystemDm.tsfluxer_api/src/api/worker/tests/SendSystemDmCancel.test.tsfeat(admin): allow system DMs to all users (#3073)
fluxer_admin/openapi-admin.jsonfluxer_admin/src/api/system_dm.rsfluxer_admin/src/api/types/system_dm.rsfluxer_admin/src/routes/message_actions.rsfluxer_admin/src/templates/pages/system_dm.rsfluxer_api/src/api/admin/AdminService.tsfluxer_api/src/api/admin/controllers/SystemDmAdminController.tsfluxer_api/src/api/worker/tasks/SendSystemDm.tsfluxer_api/src/api/worker/tests/SendSystemDmCancel.test.tsfluxer_docs/src/content/docs/admin-api/system-dms.mdxpackages/schema/src/domains/admin/AdminSchemas.tsperf(gateway): speed up presence and harden guild queries (#3072)
fluxer_api/src/api/infrastructure/GatewayRpcError.tsfluxer_api/src/api/infrastructure/GatewayService.tsfluxer_api/src/api/infrastructure/tests/GatewayServiceErrorMapping.test.tsfluxer_app/src/features/gateway/events/EventRouter.tsfluxer_app/src/features/gateway/types/GatewayGuildTypes.tsfluxer_app/src/features/guild/events/GuildCreate.tsfluxer_app/src/features/guild/events/GuildDelete.tsfluxer_app/src/features/guild/events/GuildHealthUpdate.tsfluxer_app/src/features/guild/state/GuildAvailability.tsfluxer_gateway/src/gateway/fluxer_gateway_sup.erlfluxer_gateway/src/gateway/gateway_clock_offset.erlfluxer_gateway/src/gateway/gateway_rpc_guild_infra.erlfluxer_gateway/src/gateway/gateway_rpc_guild_lifecycle.erlfluxer_gateway/src/gateway/gateway_rpc_guild_members.erlfluxer_gateway/src/guild/guild.erlfluxer_gateway/src/guild/guild_data.erlfluxer_gateway/src/guild/guild_data_index.erlfluxer_gateway/src/guild/guild_data_index_members.erlfluxer_gateway/src/guild/guild_data_wire.erlfluxer_gateway/src/guild/guild_dispatch_push.erlfluxer_gateway/src/guild/guild_ets_owner.erlfluxer_gateway/src/guild/guild_health.erlfluxer_gateway/src/guild/guild_member_list_engine.erlfluxer_gateway/src/guild/guild_member_list_read.erlfluxer_gateway/src/guild/guild_member_list_subscribe.erlfluxer_gateway/src/guild/guild_member_list_sync_batch.erlfluxer_gateway/src/guild/guild_member_list_write.erlfluxer_gateway/src/guild/guild_presence.erlfluxer_gateway/src/guild/guild_query_handler.erlfluxer_gateway/src/guild/guild_read_model.erlfluxer_gateway/src/guild/guild_request_counts.erlfluxer_gateway/src/guild/guild_sessions_connect.erlfluxer_gateway/src/guild/guild_sessions_presence.erlfluxer_gateway/src/session/session.erlfluxer_gateway/src/session/session_connection_guild.erlfluxer_gateway/src/session/session_guild_health.erlfluxer_gateway/src/session/session_guilds.erlfluxer_gateway/src/session/session_init.erlfluxer_gateway/src/session/session_lifecycle.erlfluxer_gateway/src/session/session_ready_dispatch.erlfluxer_gateway/src/utils/event_atoms.erlfluxer_gateway/test/fluxer_gateway_sup_tests.erlfluxer_gateway/test/guild_data_tests.erlfluxer_gateway/test/guild_member_list_engine_tests.erlperf(gateway): speed up presence and harden guild queries
fluxer_api/src/api/infrastructure/GatewayRpcError.tsfluxer_api/src/api/infrastructure/GatewayService.tsfluxer_api/src/api/infrastructure/tests/GatewayServiceErrorMapping.test.tsfluxer_app/src/features/gateway/events/EventRouter.tsfluxer_app/src/features/gateway/types/GatewayGuildTypes.tsfluxer_app/src/features/guild/events/GuildCreate.tsfluxer_app/src/features/guild/events/GuildDelete.tsfluxer_app/src/features/guild/events/GuildHealthUpdate.tsfluxer_app/src/features/guild/state/GuildAvailability.tsfluxer_gateway/src/gateway/fluxer_gateway_sup.erlfluxer_gateway/src/gateway/gateway_clock_offset.erlfluxer_gateway/src/gateway/gateway_rpc_guild_infra.erlfluxer_gateway/src/gateway/gateway_rpc_guild_lifecycle.erlfluxer_gateway/src/gateway/gateway_rpc_guild_members.erlfluxer_gateway/src/guild/guild.erlfluxer_gateway/src/guild/guild_data.erlfluxer_gateway/src/guild/guild_data_index.erlfluxer_gateway/src/guild/guild_data_index_members.erlfluxer_gateway/src/guild/guild_data_wire.erlfluxer_gateway/src/guild/guild_dispatch_push.erlfluxer_gateway/src/guild/guild_ets_owner.erlfluxer_gateway/src/guild/guild_health.erlfluxer_gateway/src/guild/guild_member_list_engine.erlfluxer_gateway/src/guild/guild_member_list_read.erlfluxer_gateway/src/guild/guild_member_list_subscribe.erlfluxer_gateway/src/guild/guild_member_list_sync_batch.erlfluxer_gateway/src/guild/guild_member_list_write.erlfluxer_gateway/src/guild/guild_presence.erlfluxer_gateway/src/guild/guild_query_handler.erlfluxer_gateway/src/guild/guild_read_model.erlfluxer_gateway/src/guild/guild_request_counts.erlfluxer_gateway/src/guild/guild_sessions_connect.erlfluxer_gateway/src/guild/guild_sessions_presence.erlfluxer_gateway/src/session/session.erlfluxer_gateway/src/session/session_connection_guild.erlfluxer_gateway/src/session/session_guild_health.erlfluxer_gateway/src/session/session_guilds.erlfluxer_gateway/src/session/session_init.erlfluxer_gateway/src/session/session_lifecycle.erlfluxer_gateway/src/session/session_ready_dispatch.erlfluxer_gateway/src/utils/event_atoms.erlfluxer_gateway/test/fluxer_gateway_sup_tests.erlfluxer_gateway/test/guild_data_tests.erlfluxer_gateway/test/guild_member_list_engine_tests.erlfix(premium): drop the grace period after a voluntary cancel (#3071)
fluxer_api/src/api/stripe/services/StripeSubscriptionWebhookHandler.tsfluxer_api/src/api/stripe/tests/StripeWebhookSubscription.test.tsfluxer_app/src/features/app/components/dialogs/components/PlutoniumContent.tsxfluxer_app/src/features/i18n/locales/ar/messages.pofluxer_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_docs/src/content/docs/http-api/premium.mdxfix(voice): preserve microphone channels during screen sharing (#3070)
fluxer_app/pkgs/livekit-client/src/room/PCTransport.test.tsfluxer_app/pkgs/livekit-client/src/room/PCTransport.tsfluxer_app/pkgs/livekit-client/src/room/participant/LocalParticipant.test.tsfluxer_app/pkgs/livekit-client/src/room/participant/LocalParticipant.tsfluxer_app/pkgs/livekit-client/src/room/track/LocalTrackPublication.tsfluxer_app/src/features/user/components/modals/tabs/UserVoiceTab.tsxfluxer_app/src/features/voice/utils/noise_suppression/NoiseSuppressionChoices.test.tsfluxer_app/src/features/voice/utils/noise_suppression/NoiseSuppressionChoices.tsfix(voice): preserve microphone channels during screen sharing
fluxer_app/pkgs/livekit-client/src/room/PCTransport.test.tsfluxer_app/pkgs/livekit-client/src/room/PCTransport.tsfluxer_app/pkgs/livekit-client/src/room/participant/LocalParticipant.test.tsfluxer_app/pkgs/livekit-client/src/room/participant/LocalParticipant.tsfluxer_app/pkgs/livekit-client/src/room/track/LocalTrackPublication.tsfluxer_app/src/features/user/components/modals/tabs/UserVoiceTab.tsxfluxer_app/src/features/voice/utils/noise_suppression/NoiseSuppressionChoices.test.tsfluxer_app/src/features/voice/utils/noise_suppression/NoiseSuppressionChoices.tschore(sdk): regenerate from OpenAPI
lib/models/user_private_response.dartfeat(premium): give failed renewals a billing-cycle grace period (#3066)
fluxer_api/src/api/openapi/openapi.jsonfluxer_api/src/api/stripe/services/StripeSubscriptionWebhookHandler.tsfluxer_api/src/api/stripe/tests/StripeWebhookInvoice.test.tsfluxer_api/src/api/stripe/tests/StripeWebhookSubscription.test.tsfluxer_api/src/api/test/msw/handlers/StripeApiHandlers.tsfluxer_api/src/api/user/UserHelpers.test.tsfluxer_api/src/api/user/UserHelpers.tsfluxer_api/src/api/worker/tasks/ProcessPremiumStateReconciliationQueue.tsfluxer_api/src/api/worker/tests/ProcessPremiumStateReconciliationQueue.test.tsfluxer_app/src/features/app/components/dialogs/components/plutonium/SubscriptionCard.tsxfluxer_app/src/features/app/components/dialogs/components/plutonium/hooks/useSubscriptionStatus.tsfluxer_app/src/features/app/components/layout/app_layout/AppLayoutHooks.tsfluxer_app/src/features/app/components/layout/app_layout/nagbars/PremiumGracePeriodNagbar.tsxfluxer_app/src/features/i18n/locales/ar/messages.pofluxer_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/premium/utils/PremiumGrace.tsfluxer_app/src/features/user/models/User.tsfluxer_docs/src/content/docs/http-api/premium.mdxfeat(premium): give failed renewals a billing-cycle grace period
fluxer_api/src/api/openapi/openapi.jsonfluxer_api/src/api/stripe/services/StripeSubscriptionWebhookHandler.tsfluxer_api/src/api/stripe/tests/StripeWebhookInvoice.test.tsfluxer_api/src/api/stripe/tests/StripeWebhookSubscription.test.tsfluxer_api/src/api/test/msw/handlers/StripeApiHandlers.tsfluxer_api/src/api/user/UserHelpers.test.tsfluxer_api/src/api/user/UserHelpers.tsfluxer_api/src/api/worker/tasks/ProcessPremiumStateReconciliationQueue.tsfluxer_api/src/api/worker/tests/ProcessPremiumStateReconciliationQueue.test.tsfluxer_app/src/features/app/components/dialogs/components/plutonium/SubscriptionCard.tsxfluxer_app/src/features/app/components/dialogs/components/plutonium/hooks/useSubscriptionStatus.tsfluxer_app/src/features/app/components/layout/app_layout/AppLayoutHooks.tsfluxer_app/src/features/app/components/layout/app_layout/nagbars/PremiumGracePeriodNagbar.tsxfluxer_app/src/features/i18n/locales/ar/messages.pofluxer_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/premium/utils/PremiumGrace.tsfluxer_app/src/features/user/models/User.tsfluxer_docs/src/content/docs/http-api/premium.mdxfix(ci): correct TTL fixtures and unused dependencies (#3065)
fluxer_api/pkgs/geoip/package.jsonfluxer_api/src/api/database/PostgresKvDefaultTtl.test.tsknip.jsonpnpm-lock.yamlfix(ci): correct TTL fixtures and unused dependencies
fluxer_api/pkgs/geoip/package.jsonfluxer_api/src/api/database/PostgresKvDefaultTtl.test.tsknip.jsonpnpm-lock.yamlfix(deps): bump yanked yoke-derive to 0.8.4 (#3063)
Cargo.lockperf(media-proxy): gzip static assets on the fly
Cargo.lockfluxer_media_proxy/Cargo.tomlfluxer_media_proxy/src/server/download_stream.rsfluxer_media_proxy/src/server/runtime.rs