chore(chat): log per-phase marks in the switchChannel stopwatch
Detected heuristicchore(chat): log per-phase marks in the switchChannel stopwatch
Show stored evidence
lib/features/chat/providers/core/chat_view_model.dart
Reading the persisted public view.
Development / findings
Structured observations derived from public development activity. Interpretation is labelled separately from the source evidence.
chore(chat): log per-phase marks in the switchChannel stopwatch
lib/features/chat/providers/core/chat_view_model.dartperf(chat): skip re-sync scheduling on identity-preserving rebuilds
lib/features/chat/presentation/widgets/channel/channel_chat_content.darttest/features/chat/presentation/widgets/channel/mobile_channel_chat_surface_test.dartperf(gateway): parse READY guilds before opening the write transaction
lib/core/gateway/gateway_event_handler.dartperf(channels): drop channel re-emissions when no field changed
lib/features/channels/domain/channel.dartlib/features/channels/providers/channel_providers.darttest/features/channels/providers/channel_providers_test.dartfix(captcha): import foundation instead of material_ui in native controller
packages/fluxer_captcha/lib/src/controller/impl/captcha_controller_native.dartfeat(splash): keep the reveal logo solid as it starts growing and fade it out as it expands
lib/features/shell/presentation/splash_reveal_overlay.darttest/features/shell/presentation/splash_reveal_overlay_test.dartperf(gateway): skip eager friend/guild REST syncs on light RESUMED recovery
lib/core/providers/gateway_provider.dartlib/core/providers/gateway_session_recovery_provider.dartlib/features/friends/providers/friend_relationships_sync_provider.dartlib/features/guilds/providers/guild_list_sync_provider.darttest/features/friends/providers/friend_relationships_sync_provider_test.darttest/features/guilds/providers/guild_list_sync_provider_test.dartperf(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.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.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.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.dart