Add render-path soak telemetry - #74
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verification
=== run_repo_guards ===
SKIP test_01_entry_point_imports (requests not installed)
PASS test_01_entry_point_imports
PASS test_02_package_identity
PASS test_03_config_loads
PASS test_04_constants_present
PASS test_05_config_template_exists
PASS test_06_nip_file_exists
PASS test_07_empty_init_clean
PASS test_08_no_versioned_exe_literals
8 passed, 0 failed, 0 skipped out of 8 tests.
=== test_reliability ===
PASS test_active_transcode_count_ignores_stale_or_empty_streams
PASS test_apply_cache_budget_scales_readahead
PASS test_apply_cache_budget_shape
PASS test_attempt1_retries_direct
PASS test_attempt2_escalates_to_transcode
PASS test_attempt3_still_retries_transcode
PASS test_attempt_over_max_skips
PASS test_constants_defaults_load
PASS test_count_recent_window
PASS test_decoder_fault_falls_back_to_software_for_the_cell
PASS test_effective_budget_env_override_wins
PASS test_fault_classifier_separates_decoder_and_transport_failures
PASS test_fixed_16gb_macos_8_cell_wall_uses_stable_direct_profile
PASS test_floor_respected_when_budget_can_afford_it
PASS test_full_escalation_sequence
PASS test_gate_auto_transcode_caps_concurrency
PASS test_gate_auto_transcode_passthrough_and_disable
PASS test_jitter_bounds
PASS test_jitter_clamps_bad_rand
PASS test_jitter_desynchronizes
PASS test_large_grid_scaled_down
PASS test_link_mbps_constant_wired_into_effective_budget
PASS test_macos_16gb_uses_conservative_cache_defaults
PASS test_macos_8_cell_cache_is_256_mib_with_bounded_readahead
PASS test_malformed_stream_faults_skip_without_a_second_retry
PASS test_malformed_stream_signatures_are_decoder_faults
PASS test_max_concurrent_transcodes_constant
PASS test_min_cells_floor_on_small_majority
PASS test_no_outage_below_majority
PASS test_no_stall_within_threshold
PASS test_old_failures_age_out
PASS test_old_failures_age_out_of_window
PASS test_outage_constants_defaults
PASS test_outage_majority_of_wall
PASS test_outage_retry_budget_parks_after_maximum
PASS test_paused_never_stalls
PASS test_playback_token_rejects_stale_track_and_resource_callbacks
PASS test_prefetch_fault_policy_only_targets_malformed_pending_media
PASS test_prefetch_interval_constant_is_importable_and_bounded
PASS test_prefetch_slot_staggers_burst_starts
PASS test_prefetch_transcode_detection_requires_hls_playlist
PASS test_prefetch_transcode_is_not_counted_as_active_playback
PASS test_reason_as_dict_raising_falls_through
PASS test_reason_bytes_eof
PASS test_reason_bytes_error
PASS test_reason_bytes_stop
PASS test_reason_garbage_defaults_eof
PASS test_reason_int_enum
PASS test_reason_legacy_dict
PASS test_reason_unknown_int_defaults_eof
PASS test_repeat_failures_from_one_cell_dont_count_twice
PASS test_repeated_software_decoder_fault_recreates_then_skips
PASS test_scale_bitrate_budget_graduated
PASS test_scale_bitrate_budget_tracks_link_speed
PASS test_scale_readahead_shrinks_beyond_four_cells
PASS test_seeking_never_stalls
PASS test_should_not_park_below_threshold
PASS test_should_park_triggers_on_threshold
PASS test_single_cell_gets_full_per_cell
PASS test_small_grid_under_budget_unscaled
PASS test_small_walls_never_systemic
PASS test_stall_boundary_is_strict
PASS test_stall_fires_after_threshold
PASS test_starvation_events_threshold
PASS test_starvation_thresholds_are_configurable
PASS test_starvation_time_threshold
PASS test_tiny_budget_does_not_exceed_aggregate_ceiling
PASS test_transcode_load_count_includes_pending_hls_streams
PASS test_transcode_prefetch_counts_pending_transcodes_against_budget
PASS test_transcode_prefetch_is_disabled_when_server_budget_is_exhausted
PASS test_transcode_prefetch_retry_constant_defaults
PASS test_transport_fault_has_one_retry_then_quarantines_item
PASS test_unscoped_fault_uses_current_context_only
PASS test_zero_cells_is_safe
74 passed, 0 failed out of 74 tests.
=== test_playback_plan ===
PASS test_auto_transcode_disabled_forces_direct_without_changing_client_decoder
PASS test_client_decoder_fallback_updates_only_client_dimension
PASS test_direct_plan_keeps_server_and_client_modes_separate
PASS test_missing_source_metadata_is_explicitly_planned
PASS test_over_budget_plan_requires_server_transcode_lease
PASS test_plan_carries_budget_context_without_session_credentials
PASS test_plan_reports_both_over_budget_dimensions
PASS test_resource_governor_is_idempotent_and_direct_plans_need_no_lease
PASS test_resource_governor_limits_server_transcode_leases
PASS test_stable_direct_candidate_requires_complete_bounded_metadata
PASS test_stable_direct_pool_excludes_heavy_and_unmeasured_items
PASS test_url_builder_uses_server_mode_from_plan
PASS test_wall_controller_uses_explicit_plan_boundary
PASS test_wall_controller_wires_fixed_m5_direct_only_pool
14 passed, 0 failed
=== test_playback_state ===
PASS test_advance_enters_draining_before_next_load
PASS test_invalid_transition_is_rejected
PASS test_new_load_replaces_identity_and_enters_loading
PASS test_normal_load_and_buffer_lifecycle
PASS test_recovery_is_explicit_and_returns_to_playing
PASS test_shutdown_is_terminal_and_rejects_late_events
PASS test_shutdown_overrides_stale_identity
PASS test_stale_native_event_is_ignored_without_mutating_state
PASS test_video_cell_carries_explicit_playback_plan
PASS test_video_cell_has_compatibility_state_hook
PASS test_wall_stats_export_plan_state_and_broker_pressure
11 passed, 0 failed out of 11 tests.
=== test_session_broker ===
PASS test_executor_submission_failure_is_retained_for_retry
PASS test_failed_stop_remains_registered_for_retry
PASS test_outage_defers_stop_without_submitting_work
PASS test_register_owns_session_record_and_admission
PASS test_registry_eviction_returns_record_for_cleanup
PASS test_stop_requests_are_idempotent_while_in_flight
PASS test_successful_stop_removes_record_and_releases_lease
7 passed, 0 failed out of 7 tests.
=== test_urls ===
PASS test_1080p_source_does_not_exceed
PASS test_4k_source_exceeds
PASS test_60fps_within_budget
PASS test_bitrate_falls_back_to_source_container
PASS test_budget_disabled_by_default
PASS test_budget_missing_fields_safe
PASS test_direct_url_has_static_true
PASS test_direct_url_static_false_omits_param
PASS test_height_just_over_exceeds
PASS test_high_bitrate_exceeds_budget
PASS test_high_fps_exceeds_budget
PASS test_missing_dimensions_safe
PASS test_needs_transcode_false_for_1080p
PASS test_needs_transcode_false_for_4k
PASS test_needs_transcode_false_when_disabled
PASS test_needs_transcode_includes_budget
PASS test_needs_transcode_true_for_4k_over_budget
PASS test_no_streams_safe
PASS test_none_dimensions_safe
PASS test_portrait_1080x1920_does_not_exceed
PASS test_portrait_4k_exceeds
PASS test_portrait_wide_short_edge_exceeds
PASS test_tag_names_empty_and_missing_safe
PASS test_tag_names_falls_back_to_dict_list_tags
PASS test_tag_names_falls_back_to_string_list
PASS test_tag_names_reads_tagitems_when_tags_null
PASS test_tag_names_tagitems_takes_precedence_over_tags
PASS test_tag_names_untagged_item_not_checked
PASS test_top_level_mediastreams_shape
PASS test_transcode_url_is_hls_master
PASS test_urls_carry_item_and_key
PASS test_width_just_over_exceeds
32 passed, 0 failed out of 32 tests.
=== test_config ===
PASS test_config_is_frozen
PASS test_defaults_applied_for_absent_settings
PASS test_display_layouts_reject_malformed_entries
PASS test_display_layouts_round_trip
PASS test_missing_config_creates_template_and_raises
PASS test_save_then_load_round_trips
PASS test_scenes_round_trip
PASS test_stable_display_settings_round_trip_preserves_selection_and_layout
PASS test_stable_display_settings_round_trip_preserves_selection_set
PASS test_typed_fields_are_correct_types
10 passed, 0 failed out of 10 tests.
=== test_preview_displays ===
PASS test_last_selected_grid_becomes_default_for_that_role
PASS test_invalid_last_selected_grid_does_not_replace_default
PASS test_grid_index_matches_qt_sequence_shape
PASS test_current_monitor_selection_restores_by_stable_identity
PASS test_current_monitor_selection_falls_back_to_first_selected_identity
PASS test_wizard_wires_grid_changes_to_last_selected_defaults
PASS test_wizard_uses_qt_safe_grid_index_lookup
PASS test_wizard_uses_qt_item_view_selection_enum
PASS test_display_role_values
PASS test_config_preview_fields_round_trip
PASS test_config_malformed_display_roles_returns_empty
PASS test_display_layout_defaults_and_rotation_values
PASS test_config_save_load_preview_fields
PASS test_wizard_uses_per_monitor_role_and_grid_as_preview_source
PASS test_wizard_settings_persist_preview_role_and_grid_for_all_monitors
PASS test_wizard_role_change_reloads_that_monitor_grid_preview
PASS test_wizard_live_preview_follows_selected_monitor_and_grid
PASS test_wizard_persists_roles_for_unselected_monitors
PASS test_wizard_uses_stable_identity_for_selection_and_settings_restore
PASS test_wizard_restores_and_persists_current_monitor_selection
PASS test_config_can_store_stable_display_settings
PASS test_config_preserves_current_monitor_selection
PASS test_config_invalid_stable_display_settings_use_defaults
SKIP test_wizard_restores_each_monitor_grid_between_sessions
SKIP test_wall_controller_builds_wall_and_preview_windows
SKIP test_solo_mode_round_trip
PASS test_role_switch_inherits_session_grid_not_stale_default
PASS test_role_switch_keeps_monitors_own_saved_layout
PASS test_role_switch_validates_and_falls_back
PASS test_resolve_saved_grid_identity_wins
PASS test_resolve_saved_grid_identity_miss_falls_back_to_name_keyed
PASS test_resolve_saved_grid_all_miss_returns_role_default
PASS test_resolve_saved_grid_rejects_invalid_values
PASS test_resolve_saved_grid_invalid_role_default_falls_to_2x2
0 failed out of 34 tests.
=== test_display_identity ===
PASS test_serial_identity_survives_display_reordering_and_name_changes
PASS test_name_fallback_is_deterministic_without_serial_metadata
PASS test_serialless_identical_models_can_use_connector_identity
PASS test_identity_does_not_depend_on_display_list_position
PASS test_identity_is_used_as_the_persisted_monitor_settings_key
PASS test_missing_or_reordered_monitor_uses_identity_and_safe_defaults
PASS test_connector_metadata_fallback_is_stable
7 passed, 0 failed out of 7 tests.
=== test_diagnostics ===
PASS test_analyze_run_accepts_matching_expected_cell_count
PASS test_analyze_run_blocks_on_unacceptable_media_and_memory_results
PASS test_analyze_run_blocks_when_active_duration_is_short
PASS test_analyze_run_blocks_when_expected_cell_count_mismatches
PASS test_analyze_run_keeps_missing_manifest_metrics_as_warning
PASS test_duplicate_lifecycle_events_block_complete_run
PASS test_emby_source_health_uses_public_info_without_unrelated_health_probe
PASS test_empty_log_and_missing_stats_block_complete_run
PASS test_failure_classes_are_gated
PASS test_macos_private_var_alias_is_allowed_but_other_symlinks_are_not
PASS test_malformed_invariant_value_blocks
PASS test_malformed_log_numbers_block_complete_run
PASS test_malformed_log_numbers_do_not_raise_or_create_failures
PASS test_malformed_manifest_is_blocked_and_bad_shapes_do_not_raise
PASS test_missing_run_log_is_warning_not_false_pass
PASS test_non_object_jsonl_record_is_malformed
PASS test_parse_app_log_counts_direct_and_transcode_plan_decisions
PASS test_parse_app_log_counts_independent_failure_classes_and_stats
PASS test_parse_soak_jsonl_tracks_baseline_samples_and_finish
PASS test_peak_rss_growth_is_investigation_warning_not_leak_proof
PASS test_permission_enforcement_raises_on_chmod_failure
PASS test_phase_analysis_is_written_before_redaction
PASS test_process_group_cleanup_falls_back_after_permission_denied
PASS test_redacted_json_is_recursive
PASS test_redacted_tree_excludes_unexpected_binary_artifacts
PASS test_redacted_tree_masks_values_in_copied_text
PASS test_redacted_tree_refuses_source_or_nested_destination
PASS test_redacted_tree_rejects_destination_symlinks
PASS test_redacted_tree_skips_symlinked_files
PASS test_redaction_masks_access_tokens_and_home_paths_in_json
PASS test_redaction_masks_authorization_equals_and_basic
PASS test_redaction_masks_embedded_sensitive_fields_and_headers
PASS test_redaction_masks_endpoint_query_credentials
PASS test_redaction_masks_home_paths
PASS test_redaction_masks_jsonl_records
PASS test_redaction_masks_malformed_jsonl_credential_line
PASS test_redaction_masks_named_sensitive_json_keys
PASS test_redaction_masks_real_authorization_value
PASS test_redaction_masks_stream_credentials_and_host_identifiers
PASS test_redaction_rejects_all_malformed_sensitive_json_keys
PASS test_redaction_rejects_malformed_jsonl_authorization_key
PASS test_redaction_rejects_symlinked_parent_components
PASS test_redaction_rejects_symlinked_source_root
PASS test_repo_tests_do_not_inherit_soak_overrides
PASS test_runner_aggregates_warning_without_promoting_it_to_block
PASS test_runner_can_import_without_optional_gui_dependencies
PASS test_runner_disables_image_capture_and_has_no_capture_commands
PASS test_runner_does_not_dump_config_or_full_environment
PASS test_runner_does_not_silently_ignore_permission_failures
PASS test_runner_has_safe_preflight_and_manual_wizard_notice
PASS test_runner_keeps_live_artifact_directories_private
PASS test_runner_metadata_records_auto_transcode_mode
PASS test_runner_metadata_records_effective_phase_environment
PASS test_runner_metadata_records_expected_cell_count
PASS test_runner_passes_expected_duration_to_analysis
PASS test_runner_records_only_safe_environment_fields
PASS test_runner_refuses_startup_cleanup_mode
PASS test_runner_skip_live_is_incomplete_not_pass
PASS test_runner_uses_no_image_capture_tools
PASS test_runner_validates_endpoint_before_network_work
PASS test_runner_writes_preflight_and_health_artifacts_privately
PASS test_sample_resource_values_are_strictly_validated
PASS test_sample_without_required_shape_blocks_complete_run
PASS test_shutdown_stall_is_not_used_as_playback_responsiveness_failure
PASS test_source_health_records_backend_without_credentials
PASS test_source_health_records_latency_without_response_body
PASS test_stats_schema_rejects_boolean_negative_and_missing_cell_fields
PASS test_stats_schema_requires_cells
PASS test_windows_private_permissions_uses_owner_acl
PASS test_zero_invariant_finish_is_clean_when_required_evidence_exists
70 passed, 0 failed out of 70 tests.
=== test_sync ===
PASS test_sync_msg_constants
PASS test_sync_peer_framing
PASS test_sync_peer_recv
PASS test_sync_server_hello_replies_with_full_state
PASS test_sync_server_broadcasts_state_change
PASS test_sync_server_routes_remote_solo_to_other_peers
PASS test_sync_server_applies_local_and_broadcasts_filter
PASS test_relay_controller_tracks_state
PASS test_relay_controller_exit_solo_clears_state
0 failed out of 9 tests.
=== test_playlist ===
PASS test_clear_group_preserves_pool
PASS test_empty_pool_returns_none
PASS test_global_dedup_no_repeat_until_exhausted
PASS test_groups_are_independent
PASS test_next_skip_ids_all_skipped_fails_open
PASS test_next_skip_ids_persists_across_refill
PASS test_next_skip_ids_still_serves_everything_else_once
PASS test_next_skips_quarantined_ids
PASS test_peek_returns_front_without_consuming
PASS test_pool_size_and_groups
PASS test_push_front_returns_reserved_item_without_dropping_it
PASS test_refills_after_exhaustion
PASS test_set_source_replaces_pool
PASS test_shuffle_is_invoked
PASS test_unknown_group_returns_none
15 passed, 0 failed out of 15 tests.
=== test_scenes ===
PASS test_invalid_filter_falls_back_to_all
PASS test_malformed_json_yields_default_scene
PASS test_mapping_round_trip
PASS test_non_dict_json_yields_default
PASS test_normalize_applies_defaults
PASS test_round_trip_preserves_fields
PASS test_serialized_is_compact_json
PASS test_types_are_coerced
8 passed, 0 failed out of 8 tests.
=== test_backends ===
PASS test_auth_string_shape
PASS test_config_backend_round_trips
PASS test_config_default_backend_is_emby
PASS test_emby_auth_headers_unchanged
PASS test_emby_direct_url_has_static_true
PASS test_emby_is_verified_live
PASS test_emby_token_header_unchanged
PASS test_jellyfin_not_verified_live
PASS test_jellyfin_still_uses_static_true
PASS test_jellyfin_uses_authorization_header
PASS test_resolve_default_is_emby
PASS test_resolve_is_case_insensitive
PASS test_unknown_falls_back_to_emby
13 passed, 0 failed out of 13 tests.
=== test_theme ===
PASS test_accent_is_brand_blue
PASS test_dialog_qss_is_populated_and_themed
PASS test_palette_constants_are_hex
PASS test_rgba_basic
PASS test_rgba_handles_no_hash
5 passed, 0 failed out of 5 tests.
=== test_instrumentation ===
SKIP PyQt6/Windows unavailable — instrumentation tests run on the windows-build job.
=== test_mute_volume ===
SKIP PyQt6/Windows unavailable — mute/volume tests run on the windows-build job.
=== test_audit_regressions ===
SKIP PyQt6/Windows unavailable — audit regressions run on the windows-build job.
=== test_freeze_visibility ===
SKIP PyQt6/Windows unavailable — freeze tests run on the windows-build job.
=== test_platform ===
PASS test_01_macos_opts_use_render_api
PASS test_02_windows_opts_unchanged
PASS test_03_linux_opts_are_sane
PASS test_04_native_wid_masking
PASS test_05_env_overrides_still_win_on_macos
PASS test_06_macos_render_api_prefers_display_resample_sync
PASS test_07_small_macos_host_defaults_to_software_decode
7 passed, 0 failed out of 7 tests.
=== test_soak_telemetry ===
PASS test_macos_soak_launcher_collects_system_telemetry
PASS test_macos_soak_prevents_idle_sleep_during_measurement
PASS test_normal_launcher_clears_stale_soak_environment
PASS test_pre_mpv_paint_is_not_recorded_as_render_error
PASS test_render_telemetry_is_exported_with_audio_state_and_interval_samples
PASS test_render_telemetry_reports_interval_and_cumulative_values
PASS test_soak_emits_machine_readable_manifest
PASS test_soak_launcher_honors_runner_report_directory
PASS test_soak_launcher_marks_explicit_soak_mode
PASS test_soak_resource_metric_identifies_posix_peak_rss
PASS test_soak_supports_audio_focused_profile
PASS test_stats_summary_projects_render_telemetry_and_audio_state
12 passed, 0 failed out of 12 tests.
=== test_macos_playback_performance ===
PASS test_all_gui_native_controls_use_shared_call_ownership
PASS test_async_prefetch_transition_blocks_stale_recovery_paths
PASS test_audio_arm_is_deferred_out_of_gui_handler
PASS test_audio_arm_transition_serializes_replacement
PASS test_audio_relock_uses_observed_position_cache
PASS test_audio_workers_reject_shutdown_before_touching_native_state
PASS test_callback_activation_is_bound_to_current_mpv_generation
PASS test_cleanup_capacity_does_not_evict_unresolved_records
PASS test_decoder_fallback_state_is_considered_before_hwdec_option
PASS test_decoder_faults_have_per_cell_software_fallback_path
PASS test_decoder_handler_passes_malformed_stream_state_to_plan
PASS test_deferred_play_supersession_notifies_replaced_callback
PASS test_deferred_session_cleanup_retries_after_outage
PASS test_delayed_native_retries_are_playback_token_bound
PASS test_delayed_recovery_and_backoff_callbacks_are_token_bound
PASS test_end_file_errors_reach_bound_recovery_handlers
PASS test_fault_callbacks_are_track_scoped_and_duplicate_safe
PASS test_global_shutdown_retains_all_finalizer_types
PASS test_gui_seek_serializes_and_cancels_audio_relock
PASS test_handoff_stops_old_session_only_after_play_admission
PASS test_late_malformed_prefetch_log_tail_is_suppressed
PASS test_macos_mute_native_write_is_deferred_from_gui_handler
PASS test_macos_normal_load_is_deferred_off_gui_thread
PASS test_macos_prefetched_advance_is_queued_off_gui_thread
PASS test_macos_render_teardown_keeps_ctypes_callback_alive_until_free
PASS test_malformed_prefetch_logs_quarantine_queued_resource
PASS test_native_call_revalidates_under_lock
PASS test_native_callbacks_bind_active_event_track_context
PASS test_native_context_session_identity_is_validated
PASS test_native_control_retries_preserve_latest_control_token
PASS test_native_retry_paths_have_deadlines
PASS test_native_signals_carry_immutable_resource_context
PASS test_non_macos_audio_arm_preserves_sync_path
PASS test_playback_plan_owns_server_capacity_accounting
PASS test_prefetch_admission_does_not_demote_heavy_candidate_to_direct
PASS test_prefetch_decline_requeues_reserved_item
PASS test_prefetch_drop_retains_metadata_until_native_removal
PASS test_prefetch_is_deferred_after_transition
PASS test_prefetch_is_suspended_during_systemic_outage
PASS test_prefetch_starts_are_globally_slot_paced
PASS test_prefetched_handoff_stops_previous_session
PASS test_prefetched_metadata_survives_failed_playlist_advance
PASS test_recreated_mpv_defers_audio_until_after_load
PASS test_render_release_stops_vo_before_context_free
PASS test_reused_item_resets_fault_state_when_session_url_changes
PASS test_same_platform_memory_probe_honors_explicit_budget
PASS test_session_registry_is_bounded_and_evictions_cleanup
PASS test_session_stop_retries_and_keeps_registry_until_success
PASS test_shutdown_drains_audio_before_gui_render_release
PASS test_shutdown_stops_qt_timers_on_gui_thread_before_pool_release
PASS test_shutdown_tracks_native_release_failures_on_every_platform
PASS test_start_file_binds_native_playlist_entry_identity
PASS test_stats_dump_reports_budgeted_mpv_options
PASS test_stopped_session_tombstones_are_bounded
PASS test_systemic_outage_recovery_honors_retry_budget
PASS test_transport_faults_quarantine_failed_resource_after_bounded_retry
PASS test_unscoped_mpv_logs_use_active_resource_context
PASS test_wall_does_not_rearm_prefetch_before_async_advance_finishes
PASS test_wall_shutdown_stops_vo_before_gl_release
PASS test_windows_callback_contracts_are_generation_aware
60 passed, 0 failed out of 60 tests.
=== test_endpoint_override ===
PASS test_blank_override_keeps_configured_endpoint
PASS test_endpoint_override_wins_without_mutating_default
2 passed, 0 failed out of 2 tests.
================================================
OVERALL: PASS (all suites green) (all suites green; platform-dependent suites skipped as expected on Linux)
This adds the telemetry needed to distinguish visual render pressure from audio/cache failures; it does not claim to eliminate the already-observed frame drops without a new macOS soak.