perf(startup): render first frame before session validation completes
Detected heuristicperf(startup): render first frame before session validation completes
Show stored evidence
lib/main.dart
Reading the persisted public view.
Development / findings
Structured observations derived from public development activity. Interpretation is labelled separately from the source evidence.
perf(startup): render first frame before session validation completes
lib/main.dartperf(startup): overlap gateway handshake with pref loads, drop fixed resume delay, parallelize bootstrap
lib/core/providers/app_startup_provider.dartlib/core/providers/gateway_reconnect_provider.dartlib/main.darttest/core/providers/gateway_reconnect_provider_test.dartperf(splash): quantize starfield repaints and take emoji decode off the startup critical path
lib/core/providers/app_runtime_info_provider.dartlib/core/providers/app_startup_provider.dartlib/features/shell/presentation/splash_screen.dartlib/features/ui/background/starfield_background.dartlib/shared/utils/emoji_registry.dartMerge branch 'canary' into beta
lib/app.dartlib/core/observability/error_log_rate_limiter.dartlib/core/observability/fluxer_observability.dartlib/core/platform/fluxer_platform.dartlib/core/providers/gateway_provider.dartlib/core/providers/splash_exit_allowed_provider.dartlib/core/router/shell_transition_page.dartlib/core/widgets/fluxer_widget_preview.dartlib/features/chat/presentation/sheets/channel_details_sheet.dartlib/features/chat/utils/composer_scroll.dartlib/features/guilds/presentation/widgets/guild_navbar.dartlib/features/shell/presentation/splash_reveal_overlay.dartlib/features/shell/presentation/splash_screen.dartlib/features/shell/presentation/splash_shell_settle.dartlib/features/ui/background/starfield_background.dartlib/features/ui/page_sheet/fluxer_page_sheet.dartlib/features/ui/refresh/fluxer_refresh_scroll_view.dartpubspec.lockpubspec.yamlchore: dart format
lib/core/observability/error_log_rate_limiter.darttest/core/observability/error_log_rate_limiter_test.dartchore(sdk): regenerate from OpenAPI
lib/search/search_api.dartfeat(observability): add error logs rate limits
lib/core/observability/error_log_rate_limiter.dartlib/core/observability/fluxer_observability.darttest/core/observability/error_log_rate_limiter_test.dartfix(core): localizations import
lib/app.dartlib/core/widgets/fluxer_widget_preview.dartperf(splash): improve perf on low end devices
lib/core/providers/gateway_provider.dartlib/core/providers/splash_exit_allowed_provider.dartlib/features/shell/presentation/splash_reveal_overlay.dartlib/features/shell/presentation/splash_screen.dartlib/features/shell/presentation/splash_shell_settle.dartlib/features/ui/background/starfield_background.darttest/core/providers/splash_exit_allowed_provider_test.darttest/features/shell/presentation/splash_reveal_overlay_test.dartchore: flutter upgrade migration
lib/app.dartlib/core/platform/fluxer_platform.dartlib/core/router/shell_transition_page.dartlib/core/widgets/fluxer_widget_preview.dartlib/features/chat/presentation/sheets/channel_details_sheet.dartlib/features/chat/utils/composer_scroll.dartlib/features/ui/page_sheet/fluxer_page_sheet.dartlib/features/ui/refresh/fluxer_refresh_scroll_view.dartpubspec.lockpubspec.yamlfix(guild_sidebar): correct ping location
lib/features/guilds/presentation/widgets/guild_navbar.dartchore(sdk): regenerate from OpenAPI
lib/models/email_change_request_new_request.dartlib/models/email_change_request_new_request.g.dartfix(observability): log errors in talker
lib/core/observability/fluxer_observability.darttest/core/observability/fluxer_observability_talker_test.dartMerge branch 'canary' into beta
android/app/src/main/AndroidManifest.xmlassets/haptics/message_send.ahapdart_sdkios/Podfile.lockios/Runner/Base.lproj/Main.storyboardios/Runner/Info.plistlib/app.dartlib/core/api/captcha_dialog.dartlib/core/api/sudo_dialog.dartlib/core/bootstrap/flutter_error_ui.dartlib/core/database/daos/message_dao.dartlib/core/database/fluxer_database.dartlib/core/database/tables/messages.dartlib/core/database/tables/user_preferences.dartlib/core/deep_links/deep_link_handler.dartlib/core/media/fluxer_media_url.dartlib/core/providers/app_ui_lifecycle_provider.dartlib/core/push/unified_push/unified_push_distributor_ui.dartlib/core/router/channel_persistence_observer.dartlib/core/router/fluxer_router.dartlib/core/router/shell_navigator_keys.dartlib/core/router/shell_popup_overlay_sync.dartfix(external_links): android lifecycle manager Fixes: #638
lib/core/providers/app_ui_lifecycle_provider.dartlib/shared/external_links/external_url_launcher.darttest/shared/external_links/external_url_launcher_lifecycle_test.dartfix(composer): correct neko location
lib/features/chat/presentation/widgets/channel/channel_chat_panel.dartlib/features/settings/presentation/widgets/user_settings_search_field.dartlib/features/settings/utils/user_settings_search_index.darttest/features/settings/user_settings_search_test.dartfeat(settings): search for settings
lib/features/chat/presentation/widgets/messages/message_mention.dartlib/features/settings/presentation/user_settings_modal.dartlib/features/settings/presentation/user_settings_nav.dartlib/features/settings/presentation/user_settings_search_query.dartlib/features/settings/presentation/widgets/settings_sidebar.dartlib/features/settings/presentation/widgets/user_settings_search_field.dartlib/features/settings/utils/open_user_settings_deep_link.dartlib/features/settings/utils/user_settings_field_registry.dartlib/features/settings/utils/user_settings_search.dartlib/features/settings/utils/user_settings_search_index.dartlib/features/ui/settings/fluxer_settings_nav_list.dartlib/l10n/fluxer_en.arblib/l10n/generated/fluxer_localizations.dartlib/l10n/generated/fluxer_localizations_ar.dartlib/l10n/generated/fluxer_localizations_cs.dartlib/l10n/generated/fluxer_localizations_da.dartfeat(iOS): default p3
ios/Runner/Base.lproj/Main.storyboardios/Runner/Info.plistfeat(media): support HDR for video and photos
android/app/src/main/AndroidManifest.xmllib/core/database/fluxer_database.dartlib/core/database/tables/user_preferences.dartlib/core/synced_preferences/fields/accessibility_synced_field.dartlib/features/chat/presentation/widgets/attachments/attachment_image.dartlib/features/chat/presentation/widgets/attachments/attachment_media_grid.dartlib/features/chat/presentation/widgets/embeds/embed_image.dartlib/features/chat/presentation/widgets/media/chat_inline_video_player.dartlib/features/chat/presentation/widgets/media/chat_mobile_fullscreen_video.dartlib/features/chat/utils/chat_video_hdr_native_set_property_io.dartlib/features/chat/utils/chat_video_hdr_native_set_property_stub.dartlib/features/chat/utils/chat_video_hdr_player_config.dartlib/features/chat/utils/embed_media_viewer_utils.dartlib/features/chat/utils/hdr_aware_image_url.dartlib/features/chat/utils/media_proxy_url.dartfix(test): failing test
test/features/chat/presentation/widgets/composer/slowmode_indicator_test.darttest/features/chat/presentation/widgets/composer/typing_indicator_bar_test.darttest/features/chat/presentation/widgets/message_list_scroll_test.darttest/core/observability/error_log_rate_limiter_test.darttest/core/observability/fluxer_observability_talker_test.darttest/core/providers/splash_exit_allowed_provider_test.darttest/features/shell/presentation/splash_reveal_overlay_test.dartlib/core/router/shell_popup_route_observer.dartlib/core/synced_preferences/fields/accessibility_synced_field.dartlib/core/synced_preferences/generated/fluxer/user/preferences/v1/accessibility.pb.dartlib/core/synced_preferences/generated/fluxer/user/preferences/v1/accessibility.pbenum.dartlib/core/synced_preferences/generated/fluxer/user/preferences/v1/accessibility.pbjson.dartlib/core/synced_preferences/proto/fluxer/user/preferences/v1/accessibility.protolib/core/synced_preferences/synced_theme_hydration.dartlib/core/system_permissions/system_permission_service.dartlib/core/talker.dartlib/core/theme/css_color_parser.dartlib/core/theme/custom_theme_css.dartlib/core/theme/fluxer_color_theme.dartlib/core/theme/fluxer_layout_theme.dartlib/core/theme/fluxer_motion_theme.dartlib/core/theme/fluxer_text_theme.dartlib/core/theme/fluxer_theme.dartlib/core/theme/fluxer_theme_extension.dartlib/core/theme/providers/theme_preference_provider.dartlib/core/theme/theme_token_aliases.dartlib/core/theme/theme_variable_mapping.dartlib/core/theme/themes/coal.dartlib/core/theme/themes/dark.dartlib/core/theme/themes/light.dartlib/core/widgets/fluxer_render_error_placeholder.dartlib/core/widgets/fluxer_widget_preview.dartlib/features/accessibility/message_group_spacing.dartlib/features/accessibility/text_scale.dartlib/features/auth/presentation/add_account_screen.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_hu.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_pl.dartlib/l10n/generated/fluxer_localizations_pt.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_zh.darttest/features/settings/user_settings_search_test.dartlib/features/settings/presentation/widgets/user_look_and_feel.dartlib/features/settings/providers/appearance_preferences_provider.dartlib/features/settings/utils/user_settings_field_registry.dartlib/features/ui/media_viewer/attachment_media_viewer.dartlib/l10n/fluxer_en.arblib/l10n/generated/fluxer_localizations.dartlib/l10n/generated/fluxer_localizations_ar.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_hu.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_pl.dartlib/l10n/generated/fluxer_localizations_pt.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_zh.darttest/core/database/fluxer_database_migration_test.darttest/core/synced_preferences/accessibility_synced_field_test.darttest/features/chat/utils/chat_video_hdr_player_config_test.darttest/features/chat/utils/hdr_aware_image_url_test.darttest/features/chat/utils/media_proxy_url_test.darttest/features/settings/user_look_and_feel_test.dart