fix(app-proxy): collapse the discovery cold-start retry condition (#1716)
Detected heuristicfix(app-proxy): collapse the discovery cold-start retry condition (#1716)
Show stored evidence
fluxer_app_proxy/src/discovery_cache.rs
Reading the persisted public view.
Development / findings
Structured observations derived from public development activity. Interpretation is labelled separately from the source evidence.
fix(app-proxy): collapse the discovery cold-start retry condition (#1716)
fluxer_app_proxy/src/discovery_cache.rsfix(gateway): register the session process with presence on resume (#1715)
fluxer_gateway/src/presence/presence.erlfluxer_gateway/src/session/session_lifecycle.erlfluxer_gateway/test/session_lifecycle_tests.erlfix(app): allow the inbox shortcut while the composer is empty (#1714)
fluxer_app/src/features/channel/components/EditingMessageInput.tsxfluxer_app/src/features/channel/components/LexicalChannelTextareaContent.tsxfluxer_app/src/features/input/state/InputKeybind.tsfluxer_app/src/features/messaging/hooks/useMarkdownKeybinds.tsfix(app-proxy): serve the SPA from cached discovery instead of blocking on refresh (#1713)
fluxer_app_proxy/src/discovery_cache.rsfluxer_app_proxy/src/routes/spa_index.rsfix(admin): show the deferred phone gate controls on hosted instances (#1712)
fluxer_admin/src/templates/pages/instance_config.rsfix(media-proxy): stop sending X-Robots-Tag in static mode (#1710)
fluxer_media_proxy/src/server.rsfeat(api): defer registration phone verification to community joins (#1709)
fluxer_admin/openapi-admin.jsonfluxer_admin/src/api/generated.rsfluxer_admin/src/api/types/common.rsfluxer_admin/src/api/types/instance_config.rsfluxer_admin/src/routes/system_actions.rsfluxer_admin/src/templates/pages/instance_config.rsfluxer_admin/src/templates/pages/user_detail_tabs/overview.rsfluxer_admin/tests/htmx_acceptance.rsfluxer_admin/tests/parity/fixtures/api/admin_user_me.jsonfluxer_admin/tests/parity/fixtures/api/lookup_user.jsonfluxer_admin/tests/parity/fixtures/api/search_users.jsonfluxer_api/src/api/admin/controllers/InstanceConfigAdminController.tsfluxer_api/src/api/admin/models/UserTypes.tsfluxer_api/src/api/admin/services/AdminUserSecurityService.tsfluxer_api/src/api/admin/services/guild/AdminGuildMembershipService.tsfluxer_api/src/api/auth/AuthRegistration.tsfluxer_api/src/api/auth/tests/DeferredPhoneGate.test.tsfix(api): mirror Stripe billing data using the shapes the pinned API version sends (#1708)
fluxer_api/src/api/admin/controllers/BillingAdminController.tsfluxer_api/src/api/admin/tests/AdminBillingOverview.test.tsfluxer_api/src/api/billing/mappers/StripeToBillingMapper.test.tsfluxer_api/src/api/billing/mappers/StripeToBillingMapper.tsfluxer_api/src/api/billing/repositories/BillingCheckoutSessionRepository.tsfluxer_api/src/api/billing/repositories/BillingRefundRepository.tsfluxer_api/src/api/stripe/StripeSubscriptionPeriod.tsfluxer_api/src/api/stripe/services/StripeRefundService.tsfluxer_api/src/api/stripe/services/StripeSubscriptionReconciler.tsfluxer_api/src/api/stripe/services/StripeWebhookService.tsfluxer_api/src/api/stripe/tests/StripeRefundService.test.tsfluxer_api/src/api/stripe/tests/StripeWebhookInvoice.test.tsfluxer_api/src/api/test/msw/handlers/StripeApiHandlers.tsfeat(app): restyle the inbox and message preview surfaces (#1706)
fluxer_app/src/app/globals.cssfluxer_app/src/features/app/components/floating/UnreadChannelOrder.test.tsfluxer_app/src/features/app/components/floating/UnreadChannelOrder.tsfluxer_app/src/features/app/components/floating/UnreadChannelsContent.module.cssfluxer_app/src/features/app/components/floating/UnreadChannelsContent.tsxfluxer_app/src/features/app/components/shared/MessagePreview.module.cssfluxer_app/src/features/channel/components/ChannelMessage.tsxfluxer_app/src/features/channel/components/ChannelMessageStream.tsxfluxer_app/src/features/channel/components/MessageAttachments.tsxfluxer_app/src/features/channel/components/MessageGroup.tsxfluxer_app/src/features/channel/components/MessageViewContext.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.pofeat(api): redirect artifact downloads to presigned storage URLs (#1703)
fluxer_api/src/api/Config.tsfluxer_api/src/api/config/APIConfig.tsfluxer_api/src/api/download/DownloadController.tsfluxer_api/src/api/download/DownloadService.tsfluxer_api/src/api/download/tests/DownloadPresign.test.tsfluxer_api/src/api/infrastructure/IStorageService.tsfluxer_api/src/api/infrastructure/StorageService.tsfluxer_api/src/api/test/mocks/MockStorageService.tspackages/config/src/ConfigLoader.tspackages/config/src/MasterConfig.tspackages/config/src/config_loader/EnvironmentOverrides.tsfix(app): resolve the unread anchor where channel message loads originate (#1701)
fluxer_app/src/features/app/hooks/useChannelHoverPreload.tsfluxer_app/src/features/gateway/events/GatewayReady.tsfluxer_app/src/features/messaging/state/MessagingMessages.tsfix(app): open channels at the unread boundary when the backlog exceeds one page (#1698)
fluxer_app/src/features/messaging/state/MessagingMessages.tsfluxer_app/src/features/navigation/state/NavigationSideEffects.tsfluxer_app/src/features/read_state/state/ReadStates.tsfluxer_app/src/features/read_state/state/read_states/ReadStateUnreadAnchor.test.tsfluxer_app/src/features/read_state/state/read_states/ReadStateUnreadAnchor.tsfix(app): apply streamer mode to member nicknames and stop guild scope leaking into global surfaces (#1697)
fluxer_app/src/features/app/components/dialogs/shared/RecipientList.tsxfluxer_app/src/features/app/components/floating/UserAreaPopout.tsxfluxer_app/src/features/app/components/layout/UserArea.tsxfluxer_app/src/features/app/components/shared/FriendSelector.tsxfluxer_app/src/features/channel/components/ChannelMembers.tsxfluxer_app/src/features/channel/components/bottomsheets/ChannelDetailsBottomSheet.tsxfluxer_app/src/features/channel/components/bottomsheets/ChannelDetailsBottomSheetMemberList.tsxfluxer_app/src/features/channel/components/channel_view/DMChannelView.tsxfluxer_app/src/features/channel/components/channel_view/dm_channel_view/CallParticipantsRow.tsxfluxer_app/src/features/channel/components/direct_message/useDMListItemHandlers.tsxfluxer_app/src/features/channel/components/friends/FriendListItem.tsxfluxer_app/src/features/channel/components/friends/MobileFriendRequestItem.tsxfix(app): show the full user tag beside display names instead of a bare discriminator (#1696)
fluxer_app/src/features/app/components/dialogs/shared/UseForwardChannelObservations.tsfluxer_app/src/features/app/components/floating/UserAreaPopout.module.cssfluxer_app/src/features/app/components/floating/UserAreaPopout.tsxfluxer_app/src/features/app/components/layout/GroupedVoiceParticipant.tsxfluxer_app/src/features/app/components/layout/sidebar_nav/GuildListDMItem.tsxfluxer_app/src/features/auth/components/accounts/AccountRow.module.cssfluxer_app/src/features/auth/components/accounts/AccountRow.tsxfluxer_app/src/features/channel/components/AutocompleteMention.tsxfluxer_app/src/features/channel/components/TypingUsers.tsxfluxer_app/src/features/channel/components/bottomsheets/ChannelDetailsBottomSheet.module.cssfluxer_app/src/features/channel/components/bottomsheets/channel_details_bottom_sheet/ChannelInfoHeader.tsxfluxer_app/src/features/channel/components/bottomsheets/channel_details_bottom_sheet/DMMembersList.tsxci: publish releases with the Fluxer CI app instead of the Actions token (#1695)
.github/workflows/_build-image.yaml.github/workflows/build-admin.yaml.github/workflows/build-api.yaml.github/workflows/build-app-proxy-self-hosted.yaml.github/workflows/build-app-proxy.yaml.github/workflows/build-desktop.yaml.github/workflows/build-docs.yaml.github/workflows/build-gateway.yaml.github/workflows/build-gifs.yaml.github/workflows/build-media-proxy.yaml.github/workflows/build-messages.yaml.github/workflows/build-snowflakes.yaml.github/workflows/build-static.yaml.github/workflows/build-unfurl.yaml.github/workflows/build-users.yaml.github/workflows/dispatch-private-marketing-build.yamlfix(app): resend a stalled member list subscription before replacing the session (#1694)
fluxer_app/src/features/member/hooks/useMemberListSubscription.tsci: stop fork clones running repository-scoped workflows (#1693)
.github/workflows/dispatch-dart-sdk-regeneration.yaml.github/workflows/dispatch-private-marketing-build.yaml.github/workflows/labeller.yaml.github/workflows/lock-closed-conversations.yamlfix(app): show friend nicknames on forward targets (#1692)
fluxer_app/src/features/app/components/dialogs/shared/UseForwardChannelObservations.tsfix(app): search forward targets by username and every known nickname (#1691)
fluxer_app/src/features/app/components/dialogs/shared/ForwardChannelIndex.tsfluxer_app/src/features/app/components/dialogs/shared/ForwardChannelSearch.test.tsfluxer_app/src/features/app/components/dialogs/shared/ForwardChannelSearchMatch.tsfluxer_app/src/features/app/components/dialogs/shared/UseForwardChannelObservations.tsfluxer_app/src/features/lexical/composer/LexicalRichInput.tsxfluxer_app/src/features/messaging/components/modals/ForwardModal.tsxfix(api): let SSO accounts without a password satisfy sudo verification (#1690)
fluxer_api/src/api/auth/services/SudoVerificationService.tsfluxer_api/src/api/auth/tests/SudoVerificationCredentials.test.tsfluxer_api/src/api/guild/controllers/GuildDiscoveryController.tsfluxer_api/src/api/guild/services/GuildMemberService.tsfluxer_api/src/api/guild/services/member/GuildMemberOperationsService.tsfluxer_api/src/api/instance/InstanceConfigRepository.tsfluxer_api/src/api/instance/SingleCommunityService.tsfluxer_api/src/api/limits/LimitConfigService.tsfluxer_api/src/api/oauth/OAuth2RequestService.tsfluxer_api/src/api/risk/DeferredPhoneGate.test.tsfluxer_api/src/api/risk/DeferredPhoneGate.tsfluxer_api/src/api/risk/DeferredPhoneGateCache.tsfluxer_api/src/api/rpc/RpcSessionStartService.tsfluxer_api/src/api/stripe/services/StripePremiumService.tsfluxer_api/src/api/user/UserHelpers.test.tsfluxer_api/src/api/user/UserHelpers.tsfluxer_api/src/api/user/services/UserAccountRequestService.tsfluxer_api/src/api/worker/tasks/admin_bulk/BulkAddGuildMembers.tsfluxer_api/src/api/worker/tasks/admin_bulk/BulkUpdateSuspiciousActivityFlags.tsfluxer_app/src/features/discovery/commands/DiscoveryJoinCommands.tsxfluxer_app/src/features/invite/commands/InviteCommands.tsxpackages/constants/src/UserConstants.tspackages/schema/src/domains/admin/AdminSchemas.tspackages/schema/src/domains/admin/AdminUserSchemas.tsfluxer_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/messaging/components/popouts/InboxMessageHeader.module.cssfluxer_app/src/features/messaging/components/popouts/RecentMentionsContent.module.cssfluxer_app/src/features/messaging/components/popouts/RecentMentionsContent.tsxfluxer_app/src/features/messaging/components/popouts/SavedMessagesContent.tsxfluxer_app/src/features/channel/components/friends/views/FriendsList.tsxfluxer_app/src/features/channel/components/friends/views/PendingFriendsView.tsxfluxer_app/src/features/channel/components/guild_members_page/MemberTableRow.tsxfluxer_app/src/features/channel/components/guild_members_page/SearchApi.tsfluxer_app/src/features/relationship/utils/FriendsListUtils.tsxfluxer_app/src/features/relationship/utils/RelationshipActionUtils.tsxfluxer_app/src/features/search/state/QuickSwitcherCandidateBuilder.tsfluxer_app/src/features/search/state/QuickSwitcherResultGenerators.tsfluxer_app/src/features/ui/action_menu/UserContextMenu.tsxfluxer_app/src/features/ui/action_menu/items/DMMenuData.tsxfluxer_app/src/features/ui/avatars/AvatarStack.tsxfluxer_app/src/features/ui/components/Avatar.tsxfluxer_app/src/features/user/components/popouts/UserProfilePopout.tsxfluxer_app/src/features/user/components/profile/VoiceActivityCard.tsxfluxer_app/src/features/user/utils/NicknameUtils.tsfluxer_app/src/features/voice/components/VoiceParticipantAvatarList.tsxfluxer_app/src/features/voice/components/VoiceParticipantSortUtils.tsfluxer_app/src/features/voice/components/pip_overlay/PiPOverlayInner.tsxfluxer_app/src/features/voice/utils/TtsTextFormatter.tsfluxer_app/src/features/voice/utils/VoiceTtsUtils.tsxfluxer_app/src/features/channel/components/channel_header/useChannelHeaderData.tsfluxer_app/src/features/channel/components/direct_message/DMListItem.tsxfluxer_app/src/features/channel/utils/ChannelUtils.tsxfluxer_app/src/features/messaging/components/markdown/renderers/MentionRenderer.tsxfluxer_app/src/features/messaging/hooks/use_textarea_autocomplete/builders.tsfluxer_app/src/features/messaging/utils/AutocompleteOptionBuilders.tsfluxer_app/src/features/messaging/utils/markdown/Plaintext.tsfluxer_app/src/features/moderation/components/report_modal/IARModalPreview.tsxfluxer_app/src/features/user/components/modals/MutualItemsSheet.tsxfluxer_app/src/features/user/components/modals/tabs/BlockedUsersTab.module.cssfluxer_app/src/features/user/components/modals/tabs/BlockedUsersTab.tsxfluxer_app/src/features/user/components/modals/user_profile_modal/MutualFriendItem.tsx