Trimmed monorepo checkout (fluxer_desktop + packages/voice_engine_v2 + tools/ci) with a "Connect to a Different Server" menu item and popout that lets the desktop app switch to any self-hosted Fluxer instance, plus fixes for well-known discovery on single-domain self-hosted deployments and a false-positive ERR_ABORTED on same-origin client redirects during the switch. Defaults to chat.fluxr.chat and uses an isolated userData directory from the official build.
150 lines
28 KiB
JSON
150 lines
28 KiB
JSON
{
|
||
"status": "fail",
|
||
"mode": "smoke",
|
||
"strict": false,
|
||
"platform": "darwin",
|
||
"arch": "arm64",
|
||
"hostname": "Hampuss-Mac-Studio.local",
|
||
"startedAt": "2026-06-06T22:10:30.484Z",
|
||
"endedAt": "2026-06-06T22:11:23.013Z",
|
||
"reportDir": "/Users/hampus/Development/fluxer/fluxer_desktop/native-media-reports/2026-06-06T22-10-30Z-codex-host-smoke",
|
||
"gates": [
|
||
{
|
||
"name": "mode-valid",
|
||
"status": "pass",
|
||
"mode": "smoke"
|
||
},
|
||
{
|
||
"name": "documentation-current",
|
||
"status": "pass",
|
||
"missing": []
|
||
},
|
||
{
|
||
"name": "strict-prerequisites",
|
||
"status": "skip",
|
||
"reason": "smoke mode"
|
||
},
|
||
{
|
||
"name": "strict-command-plan",
|
||
"status": "skip",
|
||
"reason": "smoke mode"
|
||
}
|
||
],
|
||
"plannedCommands": [
|
||
{
|
||
"name": "main-process-native-media-unit-tests",
|
||
"command": "node --test src/main/WebrtcScreenPublish.test.mjs src/main/NativeVoiceEngine.test.mjs src/main/NativeScreenCapture.test.mjs",
|
||
"category": "shared",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "desktop-typecheck",
|
||
"command": "pnpm typecheck",
|
||
"category": "shared",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "webrtc-sender-build",
|
||
"command": "pnpm --dir native/webrtc-sender build",
|
||
"category": "native-sender",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "webrtc-sender-tests",
|
||
"command": "pnpm --dir native/webrtc-sender test",
|
||
"category": "native-sender",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "webrtc-sender-livekit-harness",
|
||
"command": "pnpm --dir native/webrtc-sender test:livekit",
|
||
"category": "livekit",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "mac-screen-capture-build",
|
||
"command": "pnpm --dir native/mac-screen-capture build",
|
||
"category": "platform-native",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "mac-screen-capture-tests",
|
||
"command": "pnpm --dir native/mac-screen-capture test",
|
||
"category": "platform-native",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "mac-app-audio-build",
|
||
"command": "pnpm --dir native/mac-app-audio build",
|
||
"category": "platform-native",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "mac-app-audio-rust-tests",
|
||
"command": "pnpm --dir native/mac-app-audio test:cargo",
|
||
"category": "platform-native",
|
||
"cwd": "."
|
||
},
|
||
{
|
||
"name": "mac-app-audio-js-tests",
|
||
"command": "'/Users/hampus/Development/fluxer/node_modules/.pnpm/node_modules/.bin/vitest' run",
|
||
"category": "platform-native",
|
||
"cwd": "native/mac-app-audio"
|
||
}
|
||
],
|
||
"commands": [
|
||
{
|
||
"name": "main-process-native-media-unit-tests",
|
||
"command": "node --test src/main/WebrtcScreenPublish.test.mjs src/main/NativeVoiceEngine.test.mjs src/main/NativeScreenCapture.test.mjs",
|
||
"category": "shared",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:10:30.486Z",
|
||
"endedAt": "2026-06-06T22:10:30.704Z",
|
||
"durationMs": 218,
|
||
"stdoutTail": "▶ NativeScreenCapture DMA-BUF metadata validation\n ✔ accepts valid DMA-BUF metadata and pads native plane arrays (2.191542ms)\n ✔ keeps valid handles when optional device UUID metadata is absent or malformed (0.45425ms)\n ✔ rejects invalid plane counts, FDs, strides, and format metadata (0.478709ms)\n✔ NativeScreenCapture DMA-BUF metadata validation (3.578041ms)\n▶ NativeScreenCapture source identity and capability reporting\n ✔ normalizes display and window sources without changing source ids (0.671125ms)\n ✔ starts display and window captures with exact source id and kind and reports diagnostics (1.393083ms)\n ✔ forwards frames to renderer even when a native frame tap is installed (0.572875ms)\n ✔ reports macOS and Linux display/window capture capabilities from platform backends (1.508583ms)\n✔ NativeScreenCapture source identity and capability reporting (4.293125ms)\n▶ NativeVoiceEngine screen frame routing\n ✔ pushes the initial capture frame after publishing screen share (2.516958ms)\n ✔ prefers Windows shared texture handles over DMA-BUF and CPU frames (0.687709ms)\n ✔ uses Linux DMA-BUF handles before CPU conversion (0.544916ms)\n ✔ falls back to CPU frames when GPU paths are unavailable or rejected (0.468917ms)\n ✔ keeps screen-share audio published when screen video is unpublished (0.553791ms)\n ✔ replaces screen capture taps without releasing screen-share audio or duplicating priority (0.479167ms)\n ✔ forwards watch and unwatch operations with source, enablement, and quality intact (1.627166ms)\n ✔ reports VideoToolbox hardware capability from the native addon (0.5325ms)\n ✔ reports native voice engine capabilities from the native addon (0.4195ms)\n ✔ maps native addon microphone not-connected errors to the typed operation code (0.560208ms)\n✔ NativeVoiceEngine screen frame routing (9.007958ms)\n▶ WebrtcScreenPublish native frame routing\n ✔ prefers Windows shared texture handles over DMA-BUF and CPU buffers (2.107208ms)\n ✔ uses Linux DMA-BUF handles before CPU conversion (0.448834ms)\n ✔ falls back to CPU frames when GPU paths are unavailable or rejected (0.413166ms)\n ✔ replaces an existing publisher before routing frames for the same capture id (0.406ms)\n✔ WebrtcScreenPublish native frame routing (3.859209ms)\nℹ tests 21\nℹ suites 4\nℹ pass 21\nℹ fail 0\nℹ cancelled 0\nℹ skipped 0\nℹ todo 0\nℹ duration_ms 155.770792\n",
|
||
"stderrTail": ""
|
||
},
|
||
{
|
||
"name": "desktop-typecheck",
|
||
"command": "pnpm typecheck",
|
||
"category": "shared",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:10:30.705Z",
|
||
"endedAt": "2026-06-06T22:10:32.150Z",
|
||
"durationMs": 1445,
|
||
"stdoutTail": "native/linux-audio-capture | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/linux-evdev | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/linux-input-hook | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/linux-notifications | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/linux-portals | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/linux-screen-capture | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/system-hunspell | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/win-clipboard | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/win-game-capture | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/win-process-loopback | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/win-shell | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/win-toast | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\nnative/windows-input-hook | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n\n> fluxer_desktop@0.0.0 typecheck /Users/hampus/Development/fluxer/fluxer_desktop\n> tsgo --noEmit\n\n",
|
||
"stderrTail": ""
|
||
},
|
||
{
|
||
"name": "webrtc-sender-build",
|
||
"command": "pnpm --dir native/webrtc-sender build",
|
||
"category": "native-sender",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:10:32.150Z",
|
||
"endedAt": "2026-06-06T22:11:01.715Z",
|
||
"durationMs": 29565,
|
||
"stdoutTail": "../linux-audio-capture | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../linux-evdev | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../linux-input-hook | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../linux-notifications | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../linux-portals | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../linux-screen-capture | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../system-hunspell | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"linux\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../win-clipboard | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../win-game-capture | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../win-process-loopback | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../win-shell | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../win-toast | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n../windows-input-hook | WARN Unsupported platform: wanted: {\"cpu\":[\"x64\",\"arm64\"],\"os\":[\"win32\"],\"libc\":[\"any\"]} (current: {\"os\":\"darwin\",\"cpu\":\"arm64\",\"libc\":\"unknown\"})\n\n> @fluxer/webrtc-sender@0.0.0 build /Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender\n> cargo run --locked --quiet --manifest-path ../../../tools/ci/Cargo.toml -- build-desktop-native-addon\n\n[buildRustNodeAddon] cwd=/Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender\n+ /Users/hampus/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin/cargo build --release --target aarch64-apple-darwin --manifest-path Cargo.toml --features camera-native\n",
|
||
"stderrTail": "warning: unused import: `enum_dispatch`\n --> vendor/libwebrtc/src/audio_source.rs:15:13\n |\n15 | use crate::{enum_dispatch, imp::audio_source as imp_as};\n | ^^^^^^^^^^^^^\n |\n = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\nwarning: unnecessary `unsafe` block\n --> vendor/libwebrtc/src/native/apm.rs:32:25\n |\n32 | sys_handle: unsafe {\n | ^^^^^^ unnecessary `unsafe` block\n |\n = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default\n\nwarning: hiding a lifetime that's elided elsewhere is confusing\n --> vendor/libwebrtc/src/native/audio_mixer.rs:30:34\n |\n30 | fn get_audio_frame_with_info(&self, target_sample_rate: u32) -> Option<AudioFrame>;\n | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here\n |\n = help: the same lifetime is referred to in inconsistent ways, making the signature confusing\n = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default\nhelp: use `'_` for type paths\n |\n30 | fn get_audio_frame_with_info(&self, target_sample_rate: u32) -> Option<AudioFrame<'_>>;\n | ++++\n\nwarning: `libwebrtc` (lib) generated 3 warnings (run `cargo fix --lib -p libwebrtc` to apply 2 suggestions)\n Compiling fluxer_webrtc_sender v0.0.0 (/Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender)\n Finished `release` profile [optimized] target(s) in 9.86s\n"
|
||
},
|
||
{
|
||
"name": "webrtc-sender-tests",
|
||
"command": "pnpm --dir native/webrtc-sender test",
|
||
"category": "native-sender",
|
||
"status": "fail",
|
||
"code": 1,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:11:01.715Z",
|
||
"endedAt": "2026-06-06T22:11:23.013Z",
|
||
"durationMs": 21298,
|
||
"stdoutTail": "e_contract_range ... ok\ntest audio::tests::is_muted_only_at_zero ... ok\ntest audio::tests::processing_options_preserve_defaults_unless_overridden ... ok\ntest audio::tests::output_devices_json_array ... ok\ntest audio::tests::output_device_json_locks_the_contract_shape ... ok\ntest audio::tests::input_devices_json_array ... ok\ntest audio::tests::shape_input_marks_index_zero_default_and_drops_empty_ids ... ok\ntest audio::tests::shape_marks_index_zero_default_and_drops_empty_ids ... ok\ntest camera::live::tests::fallback_format_selection_uses_decoder_supported_non_mjpeg_modes ... ok\ntest camera::live::tests::fallback_format_selection_prefers_nearest_resolution_before_format_priority ... ok\ntest camera::tests::from_opts_applies_defaults ... ok\ntest camera::tests::from_opts_forces_even_dims_and_honours_overrides ... ok\ntest camera::tests::from_opts_parses_device_index ... ok\ntest camera::tests::from_opts_preserves_string_device_ids ... ok\ntest camera::tests::from_opts_rejects_degenerate_dims_and_fps ... ok\ntest config::tests::accepts_dimension_boundaries_and_rejects_zero_fps ... ok\ntest config::tests::canonical_codec_name_accepts_all_five_case_insensitively ... ok\ntest config::tests::canonical_codec_name_rejects_empty_and_unknown ... ok\ntest config::tests::rejects_bad_url ... ok\ntest config::tests::rejects_empty_token ... ok\ntest config::tests::rejects_odd_or_oob_dimensions ... ok\ntest config::tests::rejects_unknown_non_empty_codec_but_allows_empty_default ... ok\ntest config::tests::state_gates_frames_and_connect ... ok\ntest config::tests::valid_config_passes ... ok\ntest engine::tests::adaptive_video_sender_buffers_two_fresh_frames_without_coalescing ... ok\ntest engine::tests::adaptive_video_sender_coalesces_only_when_fresh_queue_overflows ... ok\ntest engine::tests::adaptive_video_sender_drops_stale_queued_frame_without_counting_coalescing ... ok\ntest engine::tests::adaptive_video_sender_stop_clears_pending_and_rejects_new_frames ... ok\ntest engine::tests::bgra_input_validation_requires_even_dims_stride_and_complete_buffer ... ok\ntest engine::tests::nv12_input_validation_requires_complete_luma_and_chroma_planes ... ok\ntest engine::tests::parse_codec_agrees_with_pure_canonicaliser ... ok\ntest engine::tests::parse_codec_maps_all_five_including_h265 ... ok\ntest engine::tests::parse_codec_rejects_empty_and_unknown ... ok\ntest engine::tests::parse_track_source_accepts_renderer_and_livekit_spellings ... ok\ntest engine::tests::parse_video_quality_accepts_subscription_quality_levels ... ok\ntest engine::tests::pcm16_audio_frame_rejects_malformed_buffers ... ok\ntest engine::tests::pcm16_audio_frame_shapes_interleaved_stereo_samples ... ok\ntest engine::tests::session_rtt_falls_back_to_subscriber_and_preserves_existing_rtt ... ok\ntest engine::tests::session_rtt_uses_peer_connection_candidate_pair_without_track_stats ... ok\ntest engine::tests::tight_i420_len_matches_plane_geometry ... ok\ntest engine::tests::video_frame_meta_json_matches_contract ... ok\ntest engine::tests::video_input_validation_rejects_degenerate_odd_and_oversized_frames ... ok\ntest engine::tests::video_timestamp_validation_rejects_values_that_cast_badly_at_napi_boundary ... ok\ntest events::tests::empty_object_and_array ... ok\ntest events::tests::escapes_quote_backslash_and_control_chars ... ok\ntest events::tests::json_object_preserves_order_and_mixes_str_and_raw ... ok\ntest events::tests::json_u8_array_serializes_bytes_as_numbers ... ok\ntest events::tests::leaves_plain_ascii_and_unicode_untouched ... ok\ntest events::tests::raw_array_preserves_prebuilt_json_objects ... ok\ntest hardware_encoder::tests::publish_codec_runtime_gate_accepts_h265_when_reported_available ... ok\ntest hardware_encoder::tests::publish_codec_runtime_gate_only_requires_hardware_for_h265 ... ok\ntest hardware_encoder::tests::reports_available_nvenc_when_compiled_and_runtime_ready ... ok\ntest hardware_encoder::tests::reports_available_videotoolbox_with_h264_and_h265 ... ok\ntest hardware_encoder::tests::reports_driver_sdk_incompatibility_before_encode_session ... ok\ntest hardware_encoder::tests::reports_h264_only_when_hevc_guid_is_absent ... ok\ntest hardware_encoder::tests::reports_missing_runtime_prerequisites_when_compiled ... ok\ntest hardware_encoder::tests::reports_missing_runtime_prerequisites_when_probe_is_absent ... ok\ntest hardware_encoder::tests::reports_no_cuda_devices_using_obs_style_reason ... ok\ntest hardware_encoder::tests::reports_no_supported_codecs_when_guid_query_finds_no_fluxer_codecs ... ok\ntest hardware_encoder::tests::reports_not_compiled_before_runtime_missing ... ok\ntest hardware_encoder::tests::reports_unsupported_platforms_clearly ... ok\ntest hardware_encoder::tests::reports_videotoolbox_h264_only_when_hevc_session_is_unavailable ... ok\ntest hardware_encoder::tests::reports_videotoolbox_unavailable_with_status_details ... ok\ntest hardware_encoder::tests::reports_windows_nvenc_publish_backend_not_compiled ... ok\ntest hardware_encoder::tests::reports_windows_nvenc_runtime_dll_names_when_missing ... ok\ntest hardware_encoder::tests::reports_windows_nvenc_without_linux_zero_copy_inputs ... ok\ntest publisher::tests::parse_codec_maps_known_names ... ok\ntest publisher::tests::i420_plane_copy_fills_libwebrtc_buffer ... ok\ntest send_control::tests::audio_buffer_growth_caps_at_configured_max_and_reset_clears_pressure ... ok\ntest send_control::tests::audio_buffer_expands_on_gaps_and_shrinks_after_stability ... ok\ntest send_control::tests::audio_buffer_ignores_clock_regression_without_false_rebuffer ... ok\ntest send_control::tests::audio_buffer_max_is_clamped_to_real_time_bounds ... ok\ntest send_control::tests::idle_snapshot_reflects_audio_pressure_without_video_state ... ok\ntest send_control::tests::video_controller_continues_degrading_to_minimum_under_sustained_pressure ... ok\ntest send_control::tests::video_controller_counts_coalesced_replacements_once_for_pressure ... ok\ntest send_control::tests::audio_buffer_ignores_concurrent_stale_pushes_without_moving_last_push_backwards ... ok\ntest send_control::tests::video_controller_degrades_on_encoder_egress_pressure ... ok\ntest send_control::tests::audio_buffer_stress_stays_within_realtime_bounds_under_jitter ... ok\ntest send_control::tests::video_controller_degrades_on_latency_pressure_without_coalescing ... ok\ntest send_control::tests::video_controller_degrades_on_repeated_coalescing_pressure ... ok\ntest send_control::tests::video_controller_degrades_when_disrupted_frame_ratio_exceeds_threshold ... ok\ntest send_control::tests::video_controller_ignores_bounded_one_frame_coalescing_pressure ... ok\ntest send_control::tests::video_controller_ignores_single_encoder_egress_sample ... ok\ntest send_control::tests::video_controller_keeps_requested_fps_when_adaptive_send_is_disabled ... ok\ntest send_control::tests::video_controller_preserves_pressure_reason_while_degraded_but_stable ... ok\ntest send_control::tests::video_controller_recovers_after_stable_windows ... ok\ntest send_control::tests::video_controller_recovers_from_minimum_in_two_stable_steps ... ok\ntest send_control::tests::video_controller_requires_a_full_stable_recovery_window ... ok\ntest send_control::tests::video_controller_waits_until_pressure_window_boundary ... ok\ntest send_control::tests::video_stats_effective_fps_uses_capture_time_bounds_for_out_of_order_records ... ok\ntest send_control::tests::video_stats_snapshot_counts_coalescing_drops_failures_and_effective_fps ... ok\ntest stats::tests::bitrate_computes_kbps_from_byte_delta ... ok\ntest stats::tests::bitrate_first_sample_is_zero ... ok\ntest stats::tests::bitrate_half_second_doubles_rate ... ok\ntest send_control::tests::video_controller_stress_keeps_target_inside_configured_bounds ... ok\ntest stats::tests::bitrate_rejects_backwards_time_and_bytes ... ok\ntest stats::tests::empty_stats_serialise_to_null_rtt_and_empty_arrays ... ok\ntest stats::tests::sanitize_audio_level_clamps ... ok\ntest stats::tests::full_stats_serialise_to_exact_contract_shape ... ok\ntest stats::tests::sanitize_kbps_drops_nan_inf_negative_and_rounds ... ok\ntest stats::tests::send_health_serialises_to_exact_contract_shape ... ok\ntest stats::tests::unit_conversions_seconds_to_ms ... ok\ntest stats::tests::video_inbound_omits_audio_level_audio_omits_fps ... ok\ntest texture_source::tests::dmabuf_desc_from_parts_populates_all_plane_arrays ... ok\ntest texture_source::tests::dmabuf_desc_from_parts_rejects_incomplete_native_inputs ... ok\ntest texture_source::tests::dmabuf_desc_from_parts_rejects_negative_fds ... ok\ntest texture_source::tests::drm_format_gate_accepts_obs_vkcapture_texture_formats ... ok\ntest texture_source::tests::dxgi_format_gate_accepts_8bit_rgba_bgra_only ... ok\ntest send_control::tests::video_stats_handles_concurrent_recording_without_lost_counts ... ok\ntest texture_source::tests::error_strings_are_stable ... ok\ntest texture_source::tests::probe_is_available_only_for_explicit_hardware_codecs ... ok\ntest texture_source::tests::should_attempt_dmabuf_is_sdk_gated_after_validation_capability ... ok\ntest texture_source::tests::should_attempt_falls_back_when_capability_unavailable ... ok\ntest texture_source::tests::should_attempt_validates_frame_when_capability_available ... ok\ntest texture_source::tests::validate_accepts_a_clean_bgra_texture ... ok\ntest texture_source::tests::validate_dmabuf_accepts_supported_formats_with_optional_uuid ... ok\ntest texture_source::tests::validate_dmabuf_rejects_invalid_planes ... ok\ntest texture_source::tests::validate_precedence_handle_before_dims_before_format ... ok\ntest texture_source::tests::validate_rejects_odd_zero_and_oversized_dims ... ok\ntest texture_source::tests::validate_rejects_unsupported_format ... ok\ntest texture_source::tests::validate_rejects_zero_handle_as_no_texture ... ok\ntest yuv::tests::bgra_black_white_grey_levels ... ok\ntest yuv::tests::bgra_golden_2x2_solid_colour_exact_bytes ... ok\ntest yuv::tests::bgra_golden_strided_2x2_skips_row_padding ... ok\ntest yuv::tests::bgra_plane_sizes ... ok\ntest yuv::tests::bgra_primaries_have_expected_chroma_signs ... ok\ntest yuv::tests::copy_nv12_planes_preserves_nv12_layout ... ok\ntest yuv::tests::copy_nv12_planes_rejects_short_buffers ... ok\ntest yuv::tests::copy_nv12_planes_respects_destination_stride ... ok\ntest yuv::tests::nv12_4x4_deinterleaves_two_chroma_columns ... ok\ntest yuv::tests::nv12_golden_4x2_packed_to_i420 ... ok\ntest yuv::tests::nv12_packed_2x2_deinterleaves ... ok\ntest yuv::tests::nv12_respects_row_padding ... ok\ntest yuv::tests::nv12_short_buffer_is_rejected ... ok\ntest yuv::tests::rejects_odd_or_tiny_dimensions ... ok\ntest yuv::tests::rgb_golden_2x2_solid_colour_matches_bgra_path ... ok\ntest yuv::tests::rgb_plane_sizes_and_levels ... ok\ntest yuv::tests::rgb_rejects_odd_dims_and_short_buffer ... ok\ntest engine::tests::pcm16_audio_frame_rejects_implausible_format_and_overlong_chunks ... ok\n\ntest result: ok. 140 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s\n\n\nrunning 6 tests\ntest outbound_fixtures_match_contract ... ok\ntest video_frame_meta_matches_contract ... ok\ntest inbound_covers_subscribe_and_lifecycle ... ok\ntest outbound_covers_the_single_identity_publish_path ... ok\ntest e2ee_state_is_ok_on_the_wire ... ok\ntest inbound_fixtures_match_contract ... ok\n\ntest result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n✖ index.test.mjs (65.935708ms)\n✖ scripts/livekit-harness.test.mjs (68.75525ms)\nℹ tests 2\nℹ suites 0\nℹ pass 0\nℹ fail 2\nℹ cancelled 0\nℹ skipped 0\nℹ todo 0\nℹ duration_ms 75.266917\n\n✖ failing tests:\n\ntest at index.test.mjs:1:1\n✖ index.test.mjs (65.935708ms)\n 'test failed'\n\ntest at scripts/livekit-harness.test.mjs:1:1\n✖ scripts/livekit-harness.test.mjs (68.75525ms)\n 'test failed'\n ELIFECYCLE Test failed. See above for more details.\n WARN Local package.json exists, but node_modules missing, did you mean to install?\n",
|
||
"stderrTail": " Compiling ring v0.17.14\n Compiling fluxer_webrtc_sender v0.0.0 (/Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender)\n Compiling fluxer_voice_core v0.1.0 (/Users/hampus/Development/fluxer/fluxer_voice_core)\n Compiling rustls v0.23.40\n Compiling rustls-webpki v0.103.13\n Compiling tokio-rustls v0.26.4\n Compiling tungstenite v0.29.0\n Compiling hyper-rustls v0.27.9\n Compiling reqwest v0.12.28\n Compiling tokio-tungstenite v0.29.0\n Compiling livekit-api v0.5.0\n Compiling webrtc-sys-build v0.3.18\n Compiling webrtc-sys v0.3.33 (/Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender/vendor/webrtc-sys)\n Compiling libwebrtc v0.3.35 (/Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender/vendor/libwebrtc)\nwarning: unused import: `enum_dispatch`\n --> vendor/libwebrtc/src/audio_source.rs:15:13\n |\n15 | use crate::{enum_dispatch, imp::audio_source as imp_as};\n | ^^^^^^^^^^^^^\n |\n = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\nwarning: unnecessary `unsafe` block\n --> vendor/libwebrtc/src/native/apm.rs:32:25\n |\n32 | sys_handle: unsafe {\n | ^^^^^^ unnecessary `unsafe` block\n |\n = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default\n\nwarning: hiding a lifetime that's elided elsewhere is confusing\n --> vendor/libwebrtc/src/native/audio_mixer.rs:30:34\n |\n30 | fn get_audio_frame_with_info(&self, target_sample_rate: u32) -> Option<AudioFrame>;\n | ^^^^^ the lifetime is elided here ^^^^^^^^^^ the same lifetime is hidden here\n |\n = help: the same lifetime is referred to in inconsistent ways, making the signature confusing\n = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default\nhelp: use `'_` for type paths\n |\n30 | fn get_audio_frame_with_info(&self, target_sample_rate: u32) -> Option<AudioFrame<'_>>;\n | ++++\n\n Compiling livekit v0.7.43\nwarning: `libwebrtc` (lib) generated 3 warnings (run `cargo fix --lib -p libwebrtc` to apply 2 suggestions)\n Finished `test` profile [unoptimized + debuginfo] target(s) in 17.99s\n Running unittests src/lib.rs (target/debug/deps/fluxer_webrtc_sender-4fb413a724225319)\n Running tests/event_contract.rs (target/debug/deps/event_contract-dc15840aabc01f6c)\n Doc-tests fluxer_webrtc_sender\n"
|
||
}
|
||
]
|
||
}
|