fix(push): keep notification images within the web push budget (#3043)
fix(push): keep notification images within the web push budget (#3043)
Inspect stored evidence paths
fluxer_push/src/payload.rs
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(push): keep notification images within the web push budget (#3043)
fluxer_push/src/payload.rsfix(push): prompt on shell mount, unregister without consent Signed-off-by: Hampus Kraft <hampus@fluxer.com>
lib/core/push/apns/apns_mobile_device_registration.dartlib/core/push/apns/apns_voip_mobile_device_registration.dartlib/core/push/fcm/fcm_mobile_device_registration.dartlib/features/shell/presentation/shell_route_listeners.darttest/core/push/push_relay_consent_unregister_test.darttest/features/shell/presentation/shell_route_listeners_test.dartfix(push): run the stale DM read check on presence nodes (#3042)
fluxer_gateway/src/presence/presence_update.erlfluxer_gateway/src/push/push.erlfluxer_gateway/test/push_read_dm_tests.erlfix(push): run the stale DM read check on presence nodes
fluxer_gateway/src/presence/presence_update.erlfluxer_gateway/src/push/push.erlfluxer_gateway/test/push_read_dm_tests.erlfeat(self-host): add an overlay that turns off bundled seaweedfs (#3041)
deploy/self-hosting/.env.exampledeploy/self-hosting/external-object-store.compose.ymlfluxer_docs/src/content/docs/operator/configuration.mdxfluxer_docs/src/content/docs/operator/get-started.mdxfluxer_docs/src/content/docs/operator/upgrading.mdxfluxer_docs/src/installer/install.ps1fluxer_docs/src/installer/install.shchore: add in_app_purchase
android/app/src/main/AndroidManifest.xmlmacos/Flutter/GeneratedPluginRegistrant.swiftpubspec.lockpubspec.yamlfix(chat): froward messages missing sticker Fixes: #893
lib/features/chat/presentation/widgets/messages/forwarded_message_content.dartlib/features/chat/presentation/widgets/messages/message_item.dartlib/features/chat/presentation/widgets/messages/message_sticker_image.darttest/features/chat/presentation/widgets/messages/forwarded_message_content_test.dartfix(fluxer_markdown): links not supporting strikethrough Fixes: #894
packages/fluxer_markdown/lib/src/renderers/fluxer_markdown_renderers.dartpackages/fluxer_markdown/test/message_text_flow_test.dartfix(iOS): add NSVoIP desc
ios/Runner.xcodeproj/project.pbxprojios/Runner/Info.plistfix(api): stop treating users without a birth date as minors (#3040)
fluxer_api/src/api/rpc/RpcService.tsfluxer_api/src/api/user/services/UserAccountSettingsService.tsfluxer_api/src/api/user/tests/UserSettingsSensitiveContentFilter.test.tsfix(voice): lower DeepFilterNet attenuation limit to 30 dB (#3039)
fluxer_app/src/features/voice/utils/DeepFilterNoiseProcessor.tsfix(UseForwardDestinations): hide system user (#3038)
fluxer_app/src/features/app/components/dialogs/shared/UseForwardDestinations.tsfix(UseForwardDestinations): hide system user
fluxer_app/src/features/app/components/dialogs/shared/UseForwardDestinations.tschore(sdk): regenerate from OpenAPI
lib/auth/auth_api.dartlib/channels/channels_api.dartlib/export.dartlib/models/altcha_captcha_assignment_response.dartlib/models/altcha_captcha_assignment_response.g.dartlib/models/experiment_assignments_response_assignments.dartlib/models/experiment_assignments_response_assignments.g.dartlib/models/instance_captcha_provider_schema.dartlib/models/instance_captcha_schema.dartlib/models/instance_captcha_schema.g.dartlib/o_auth2/o_auth2_api.dartlib/users/users_api.dartfeat(captcha): make ALTCHA the only captcha (#3035)
config/env/development.envdeploy/self-hosting/.env.exampledeploy/self-hosting/docker-compose.ymlfluxer_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_api/pkgs/captcha/src/CaptchaProviderFactory.tsfluxer_api/pkgs/captcha/src/ICaptchaProvider.tsfluxer_api/pkgs/captcha/src/providers/AltchaProvider.tsfluxer_api/pkgs/captcha/src/providers/HcaptchaProvider.tsfluxer_api/pkgs/captcha/src/providers/HttpCaptchaProvider.tsfluxer_api/pkgs/captcha/src/providers/RecaptchaProvider.tsfluxer_api/pkgs/captcha/src/providers/TestProvider.tsfluxer_api/pkgs/captcha/src/providers/TurnstileProvider.tsfluxer_api/pkgs/captcha/src/providers/UnavailableCaptchaProvider.tsfluxer_api/src/api/Config.tsfluxer_api/src/api/admin/controllers/InstanceConfigAdminController.tsfluxer_api/src/api/auth/AuthController.tsfluxer_api/src/api/auth/AuthPhone.tsfluxer_api/src/api/auth/PhoneVerificationClient.tsfluxer_api/src/api/auth/tests/AltchaCaptcha.test.tsfluxer_api/src/api/auth/tests/CaptchaBypassFlags.test.tsfluxer_api/src/api/auth/tests/CaptchaChallenge.test.tsfluxer_api/src/api/auth/tests/PhoneVerificationClient.test.tsfluxer_api/src/api/auth/tests/Registration.test.tsfluxer_api/src/api/channel/controllers/ChannelController.tsfluxer_api/src/api/channel/tests/GroupDmCaptchaRateLimit.test.tsfluxer_api/src/api/config/APIConfig.tsfluxer_api/src/api/experiment/ExperimentController.tsfluxer_api/src/api/experiment/ExperimentTargeting.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/instance/InstanceController.test.tsfluxer_api/src/api/instance/InstanceController.tsfluxer_api/src/api/middleware/CaptchaMiddleware.tsfluxer_api/src/api/middleware/tests/CaptchaMiddleware.test.tsfluxer_api/src/api/middleware/tests/CaptchaProviderHeader.test.tsfluxer_api/src/api/oauth/OAuth2ApplicationsController.tsfluxer_api/src/api/oauth/tests/OAuth2ApplicationCreate.test.tsfluxer_api/src/api/openapi/openapi.jsonfluxer_api/src/api/stripe/tests/GiftCodeRedeemCaptcha.test.tsfluxer_api/src/api/test/CaptchaTestUtils.tsfluxer_api/src/api/test/Setup.tsfluxer_api/src/api/user/controllers/UserAuthController.tsfluxer_api/src/api/user/controllers/UserChannelController.tsfluxer_api/src/api/user/services/UserAuthRequestService.tsfluxer_app/package.jsonfeat(captcha): make ALTCHA the only captcha
config/env/development.envdeploy/self-hosting/.env.exampledeploy/self-hosting/docker-compose.ymlfluxer_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_api/pkgs/captcha/src/CaptchaProviderFactory.tsfluxer_api/pkgs/captcha/src/ICaptchaProvider.tsfluxer_api/pkgs/captcha/src/providers/AltchaProvider.tsfluxer_api/pkgs/captcha/src/providers/HcaptchaProvider.tsfluxer_api/pkgs/captcha/src/providers/HttpCaptchaProvider.tsfluxer_api/pkgs/captcha/src/providers/RecaptchaProvider.tsfluxer_api/pkgs/captcha/src/providers/TestProvider.tsfluxer_api/pkgs/captcha/src/providers/TurnstileProvider.tsfluxer_api/pkgs/captcha/src/providers/UnavailableCaptchaProvider.tsfluxer_api/src/api/Config.tsfluxer_api/src/api/admin/controllers/InstanceConfigAdminController.tsfluxer_api/src/api/auth/AuthController.tsfluxer_api/src/api/auth/AuthPhone.tsfluxer_api/src/api/auth/PhoneVerificationClient.tsfluxer_api/src/api/auth/tests/AltchaCaptcha.test.tsfluxer_api/src/api/auth/tests/CaptchaBypassFlags.test.tsfluxer_api/src/api/auth/tests/CaptchaChallenge.test.tsfluxer_api/src/api/auth/tests/PhoneVerificationClient.test.tsfluxer_api/src/api/auth/tests/Registration.test.tsfluxer_api/src/api/channel/controllers/ChannelController.tsfluxer_api/src/api/channel/tests/GroupDmCaptchaRateLimit.test.tsfluxer_api/src/api/config/APIConfig.tsfluxer_api/src/api/experiment/ExperimentController.tsfluxer_api/src/api/experiment/ExperimentTargeting.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/instance/InstanceController.test.tsfluxer_api/src/api/instance/InstanceController.tsfluxer_api/src/api/middleware/CaptchaMiddleware.tsfluxer_api/src/api/middleware/tests/CaptchaMiddleware.test.tsfluxer_api/src/api/middleware/tests/CaptchaProviderHeader.test.tsfluxer_api/src/api/oauth/OAuth2ApplicationsController.tsfluxer_api/src/api/oauth/tests/OAuth2ApplicationCreate.test.tsfluxer_api/src/api/openapi/openapi.jsonfluxer_api/src/api/stripe/tests/GiftCodeRedeemCaptcha.test.tsfluxer_api/src/api/test/CaptchaTestUtils.tsfluxer_api/src/api/test/Setup.tsfluxer_api/src/api/user/controllers/UserAuthController.tsfluxer_api/src/api/user/controllers/UserChannelController.tsfluxer_api/src/api/user/services/UserAuthRequestService.tsfluxer_app/package.jsonchore(sdk): regenerate from OpenAPI
lib/export.dartlib/models/experiment_assignments_response_assignments.dartlib/models/experiment_assignments_response_assignments.g.dartlib/models/profile_timezone_assignment_response.dartlib/models/profile_timezone_assignment_response.g.dartlib/models/user_update_with_verification_request.dartfeat(profile): ship profile timezone to everyone (#3034)
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_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.tsfluxer_api/src/api/openapi/openapi.jsonfluxer_api/src/api/user/UserHelpers.tsfluxer_api/src/api/user/services/UserAccountLookupService.tsfluxer_api/src/api/user/services/UserAccountProfileService.tsfluxer_api/src/api/user/services/UserAccountRequestService.tsfluxer_api/src/api/user/tests/UserProfileTimezoneVisibility.test.tsfluxer_app/src/features/experiment/state/ExperimentAssignments.test.tsfluxer_app/src/features/user/components/modals/tabs/MyProfileTab.tsxfluxer_app/src/features/user/state/ProfileTimezoneRollout.tsfluxer_app/src/features/user/utils/ProfileUtils.tsfluxer_docs/src/content/docs/admin-api/instance.mdxfluxer_docs/src/content/docs/http-api/experiments.mdxfluxer_docs/src/content/docs/http-api/users.mdxfluxer_docs/src/content/docs/http-api/users/current-user.mdxpackages/schema/src/domains/admin/AdminSchemas.tspackages/schema/src/domains/admin/ProfileTimezoneSchemas.test.tspackages/schema/src/domains/admin/ProfileTimezoneSchemas.tspackages/schema/src/domains/experiment/ExperimentSchemas.tspackages/schema/src/domains/user/UserRequestSchemas.tsfix(push): stop pushes for read, silent and muted messages (#3033)
fluxer_api/src/api/channel/services/CallService.tsfluxer_api/src/api/channel/services/message/MessagePersistenceService.tsfluxer_api/src/api/infrastructure/GatewayService.tsfluxer_api/src/api/read_state/IReadStateRepository.tsfluxer_api/src/api/read_state/PushClearOnReply.test.tsfluxer_api/src/api/read_state/ReadStateRepository.test.tsfluxer_api/src/api/read_state/ReadStateRepository.tsfluxer_api/src/api/read_state/ReadStateService.test.tsfluxer_api/src/api/read_state/ReadStateService.tsfluxer_api/src/api/rpc/RpcService.tsfluxer_api/src/api/user/services/UserAccountUpdatePropagator.tsfluxer_api/src/api/user/tests/PrivateChannelSettingsPushSync.test.tsfluxer_app/src/features/platform/service_worker/Worker.tsfluxer_app/src/features/platform/service_worker/WorkerPushPayload.tsfluxer_gateway/src/gateway/gateway_rpc_push.erlfluxer_gateway/src/gateway/metrics_handler.erlfluxer_gateway/src/gateway/rpc_client.erlfluxer_gateway/src/guild/guild.erlfluxer_gateway/src/guild/guild_dispatch_push.erlfluxer_gateway/src/guild/guild_sessions.erlfluxer_gateway/src/presence/presence.erlfluxer_gateway/src/presence/presence_update.erlfluxer_gateway/src/push/push.erlfluxer_gateway/src/push/push_eligibility.erlfluxer_gateway/src/push/push_job_publisher.erlfluxer_gateway/src/push/push_message_params.erlfluxer_gateway/src/push/push_outbox.erlfluxer_gateway/src/session/session_connection_guild.erlfluxer_gateway/src/session/session_lifecycle.erlfluxer_gateway/test/guild_push_engagement_tests.erlfluxer_gateway/test/guild_push_silent_tests.erlfluxer_gateway/test/push_outbox_read_tests.erlfluxer_gateway/test/push_read_dm_tests.erlfluxer_gateway/test/session_connection_guild_tests.erlfluxer_gateway/test/session_lifecycle_tests.erlfluxer_push/src/dedupe.rsfluxer_push/src/job.rsfluxer_push/src/metrics.rsfluxer_push/src/payload.rsfluxer_push/src/providers/mod.rsfluxer_push/src/providers/own_relay.rsfluxer_push/src/providers/web_push.rsfluxer_push/src/relay/mod.rsfluxer_push/src/relay/quota.rspackages/schema/src/domains/rpc/RpcSchemas.tsfeat(app): add quick reply and edit keybinds (#3032)
fluxer_app/src/features/app/keybindings/KeybindScopeUtils.tsfluxer_app/src/features/app/keybindings/keybind_manager/handlers/messageHandlers.tsfluxer_app/src/features/channel/components/ChannelMessages.tsxfluxer_app/src/features/channel/components/MessageActionUtils.tsxfluxer_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/input/state/InputKeybind.tsfluxer_app/src/features/input/state/input_keybind/shared.tsfluxer_app/src/features/platform/utils/ComponentBus.tsfluxer_app/src/features/user/components/modals/tabs/keybinds_tab/shared.ts