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.
228 lines
55 KiB
JSON
228 lines
55 KiB
JSON
{
|
||
"status": "pass",
|
||
"mode": "smoke",
|
||
"strict": false,
|
||
"platform": "darwin",
|
||
"arch": "arm64",
|
||
"hostname": "Hampuss-Mac-Studio.local",
|
||
"startedAt": "2026-06-06T22:17:25.424Z",
|
||
"endedAt": "2026-06-06T22:17:42.978Z",
|
||
"reportDir": "/Users/hampus/Development/fluxer/fluxer_desktop/native-media-reports/2026-06-06T22-17-25Z-codex-host-smoke-proxy",
|
||
"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:17:25.425Z",
|
||
"endedAt": "2026-06-06T22:17:25.608Z",
|
||
"durationMs": 183,
|
||
"stdoutTail": "▶ NativeScreenCapture DMA-BUF metadata validation\n ✔ accepts valid DMA-BUF metadata and pads native plane arrays (2.167459ms)\n ✔ keeps valid handles when optional device UUID metadata is absent or malformed (0.439666ms)\n ✔ rejects invalid plane counts, FDs, strides, and format metadata (0.458916ms)\n✔ NativeScreenCapture DMA-BUF metadata validation (3.515292ms)\n▶ NativeScreenCapture source identity and capability reporting\n ✔ normalizes display and window sources without changing source ids (0.661875ms)\n ✔ starts display and window captures with exact source id and kind and reports diagnostics (1.226708ms)\n ✔ forwards frames to renderer even when a native frame tap is installed (0.477666ms)\n ✔ reports macOS and Linux display/window capture capabilities from platform backends (1.341208ms)\n✔ NativeScreenCapture source identity and capability reporting (3.829875ms)\n▶ NativeVoiceEngine screen frame routing\n ✔ pushes the initial capture frame after publishing screen share (2.384041ms)\n ✔ prefers Windows shared texture handles over DMA-BUF and CPU frames (0.56125ms)\n ✔ uses Linux DMA-BUF handles before CPU conversion (0.49475ms)\n ✔ falls back to CPU frames when GPU paths are unavailable or rejected (0.461792ms)\n ✔ keeps screen-share audio published when screen video is unpublished (0.516583ms)\n ✔ replaces screen capture taps without releasing screen-share audio or duplicating priority (1.04175ms)\n ✔ forwards watch and unwatch operations with source, enablement, and quality intact (0.860792ms)\n ✔ reports VideoToolbox hardware capability from the native addon (0.46825ms)\n ✔ reports native voice engine capabilities from the native addon (0.402ms)\n ✔ maps native addon microphone not-connected errors to the typed operation code (0.542958ms)\n✔ NativeVoiceEngine screen frame routing (8.310334ms)\n▶ WebrtcScreenPublish native frame routing\n ✔ prefers Windows shared texture handles over DMA-BUF and CPU buffers (2.040083ms)\n ✔ uses Linux DMA-BUF handles before CPU conversion (0.431291ms)\n ✔ falls back to CPU frames when GPU paths are unavailable or rejected (0.405292ms)\n ✔ replaces an existing publisher before routing frames for the same capture id (0.398542ms)\n✔ WebrtcScreenPublish native frame routing (3.742875ms)\nℹ tests 21\nℹ suites 4\nℹ pass 21\nℹ fail 0\nℹ cancelled 0\nℹ skipped 0\nℹ todo 0\nℹ duration_ms 120.183542\n",
|
||
"stderrTail": ""
|
||
},
|
||
{
|
||
"name": "desktop-typecheck",
|
||
"command": "pnpm typecheck",
|
||
"category": "shared",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:17:25.609Z",
|
||
"endedAt": "2026-06-06T22:17:26.719Z",
|
||
"durationMs": 1110,
|
||
"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:17:26.719Z",
|
||
"endedAt": "2026-06-06T22:17:28.890Z",
|
||
"durationMs": 2171,
|
||
"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+ codesign --force --sign - /Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender/webrtc-sender.darwin-arm64.node\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 Finished `release` profile [optimized] target(s) in 0.16s\n/Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender/webrtc-sender.darwin-arm64.node: replacing existing signature\n"
|
||
},
|
||
{
|
||
"name": "webrtc-sender-tests",
|
||
"command": "pnpm --dir native/webrtc-sender test",
|
||
"category": "native-sender",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:17:28.890Z",
|
||
"endedAt": "2026-06-06T22:17:31.695Z",
|
||
"durationMs": 2805,
|
||
"stdoutTail": "eported_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::i420_plane_copy_fills_libwebrtc_buffer ... ok\ntest publisher::tests::parse_codec_maps_known_names ... ok\ntest send_control::tests::audio_buffer_growth_caps_at_configured_max_and_reset_clears_pressure ... ok\ntest send_control::tests::audio_buffer_ignores_clock_regression_without_false_rebuffer ... ok\ntest send_control::tests::audio_buffer_expands_on_gaps_and_shrinks_after_stability ... ok\ntest send_control::tests::audio_buffer_max_is_clamped_to_real_time_bounds ... ok\ntest send_control::tests::video_controller_continues_degrading_to_minimum_under_sustained_pressure ... ok\ntest send_control::tests::idle_snapshot_reflects_audio_pressure_without_video_state ... ok\ntest send_control::tests::video_controller_counts_coalesced_replacements_once_for_pressure ... ok\ntest send_control::tests::audio_buffer_stress_stays_within_realtime_bounds_under_jitter ... 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::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 send_control::tests::video_controller_stress_keeps_target_inside_configured_bounds ... ok\ntest stats::tests::bitrate_half_second_doubles_rate ... 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::sanitize_kbps_drops_nan_inf_negative_and_rounds ... ok\ntest stats::tests::full_stats_serialise_to_exact_contract_shape ... ok\ntest stats::tests::send_health_serialises_to_exact_contract_shape ... ok\ntest stats::tests::unit_conversions_seconds_to_ms ... ok\ntest send_control::tests::video_stats_handles_concurrent_recording_without_lost_counts ... 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 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.00s\n\n\nrunning 6 tests\ntest video_frame_meta_matches_contract ... ok\ntest inbound_covers_subscribe_and_lifecycle ... ok\ntest outbound_covers_the_single_identity_publish_path ... ok\ntest outbound_fixtures_match_contract ... ok\ntest inbound_fixtures_match_contract ... ok\ntest e2ee_state_is_ok_on_the_wire ... 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▶ webrtc-sender loader wrapper\n ✔ resolves the native addon filename for every desktop OS/arch target (0.937291ms)\n ✔ rejects unsupported platform/architecture pairs explicitly (0.3075ms)\n ✔ returns a native hardware encoder capability when the binding exports one (0.9935ms)\n ✔ delegates dropped video callback metrics through the VoiceEngine wrapper (0.163167ms)\n ✔ reports VoiceEngine feature capabilities from the wrapped native prototype (0.5065ms)\n ✔ delegates device microphone publish through the VoiceEngine wrapper (0.174917ms)\n ✔ delegates native camera devices and publish options through the VoiceEngine wrapper (0.172875ms)\n ✔ delegates screen-share simulcast selection through the VoiceEngine wrapper (0.163833ms)\n ✔ delegates connect options through the VoiceEngine wrapper (0.211375ms)\n ✔ delegates shared texture handles through the WebrtcPublisher wrapper (0.22075ms)\n ✔ treats shared texture publishing as unavailable for older publisher bindings (0.095625ms)\n ✔ delegates dma-buf frames through the WebrtcPublisher wrapper (0.276959ms)\n ✔ delegates shared texture handles through the VoiceEngine wrapper (0.132ms)\n ✔ treats shared texture publishing as unavailable for older voice bindings (0.073083ms)\n ✔ treats dma-buf publishing as unavailable for older native bindings (0.110125ms)\n ✔ defaults dropped video callback metrics to zero for older native bindings (0.0585ms)\n ✔ delegates remote track subscription updates through the VoiceEngine wrapper (0.136583ms)\n ✔ ignores remote track subscription updates for older native bindings (0.088709ms)\n ✔ delegates data packets through the VoiceEngine wrapper (0.179834ms)\n ✔ rejects invalid data packet payloads in the wrapper (0.238083ms)\n ✔ returns an unavailable hardware encoder capability without a binding (0.072ms)\n✔ webrtc-sender loader wrapper (7.268042ms)\n▶ livekit harness setup matrix\n ✔ maps all supported codec spellings to expected mime types (1.146667ms)\n ✔ parses codec lists with fallback and rejects empty effective lists (1.1805ms)\n ✔ default non-strict config keeps the fast local live setup small (1.487ms)\n ✔ strict config expands to multi-codec secondary-publisher scenarios (1.038875ms)\n ✔ stress knobs parse packet loss, resolution stability, audio gap, and video pattern (0.635208ms)\n ✔ stress knobs reject impossible send pacing configurations (3.125583ms)\n ✔ explicit secondary codec expectations override rotating defaults (0.484584ms)\n ✔ secondary screen codec aliases are accepted and conflicting aliases are rejected (0.924208ms)\n ✔ external token setup derives identities, requires matching tokens, and redacts reports (1.383958ms)\n ✔ report sanitization strips URL credentials, query strings, and fragments (0.6515ms)\n ✔ jwt subject and TCP target parsing catch malformed live setups early (0.336458ms)\n ✔ admin token has the room-scoped grant needed for server publishing validation (0.468333ms)\n ✔ scenario room names are stable and bounded for generated-token suites (0.1065ms)\n ✔ strict report checks fail when the strict window has too few samples to measure gaps (89.199292ms)\n ✔ strict report checks use only samples inside the measured window (5.439292ms)\n ✔ strict packet loss gate uses loss deltas inside the strict window (10.6855ms)\n ✔ server publishing checks cover primary and secondary screen, audio, and camera tracks (0.5675ms)\n ✔ server publishing checks fail closed on missing server tracks (0.275125ms)\n ✔ server publishing checks reject wrong participant identity (0.2045ms)\n ✔ server publishing checks reject wrong kind, source, and screen mime (0.258042ms)\n ✔ server publishing checks reject muted or missing mute state on expected tracks (0.200416ms)\n ✔ server publishing checks handle protobuf numeric enums without accepting data tracks as video (0.194ms)\n ✔ server publishing checks fail closed on missing secondary, audio, camera, and screen-audio tracks (0.203708ms)\n ✔ strict server publishing validation does not pass open on Twirp errors (0.207541ms)\n✔ livekit harness setup matrix (121.754875ms)\nℹ tests 45\nℹ suites 2\nℹ pass 45\nℹ fail 0\nℹ cancelled 0\nℹ skipped 0\nℹ todo 0\nℹ duration_ms 510.566208\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 Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s\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"
|
||
},
|
||
{
|
||
"name": "webrtc-sender-livekit-harness",
|
||
"command": "pnpm --dir native/webrtc-sender test:livekit",
|
||
"category": "livekit",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:17:31.695Z",
|
||
"endedAt": "2026-06-06T22:17:34.808Z",
|
||
"durationMs": 3113,
|
||
"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 test:livekit /Users/hampus/Development/fluxer/fluxer_desktop/native/webrtc-sender\n> node scripts/livekit-harness.mjs\n\n[livekit-harness] connecting to ws://127.0.0.1:8088/livekit room=fluxer-webrtc-harness-84848-43854e34-d3a9-4e33-bf45-b7ef3611083a\n[livekit-harness] PASS: 19 checks, inboundAudioFrames=72, inboundVideoFrames=13, videoCallbacks=13, receivedFps=0, producedFps=15.78, maxVideoFrameGapMs=0, maxAudioFrameGapMs=0, maxObservedPacketLoss=3, maxObservedPacketLossDelta=0, resolutionMismatches=0, droppedVideoFrameCallbacks=0\n",
|
||
"stderrTail": ""
|
||
},
|
||
{
|
||
"name": "mac-screen-capture-build",
|
||
"command": "pnpm --dir native/mac-screen-capture build",
|
||
"category": "platform-native",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:17:34.808Z",
|
||
"endedAt": "2026-06-06T22:17:36.805Z",
|
||
"durationMs": 1997,
|
||
"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/mac-screen-capture@0.0.0 build /Users/hampus/Development/fluxer/fluxer_desktop/native/mac-screen-capture\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/mac-screen-capture\n+ /Users/hampus/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin/cargo build --release --target aarch64-apple-darwin --manifest-path Cargo.toml\n+ codesign --force --sign - /Users/hampus/Development/fluxer/fluxer_desktop/native/mac-screen-capture/mac-screen-capture.darwin-arm64.node\n",
|
||
"stderrTail": " Finished `release` profile [optimized] target(s) in 0.04s\n/Users/hampus/Development/fluxer/fluxer_desktop/native/mac-screen-capture/mac-screen-capture.darwin-arm64.node: replacing existing signature\n"
|
||
},
|
||
{
|
||
"name": "mac-screen-capture-tests",
|
||
"command": "pnpm --dir native/mac-screen-capture test",
|
||
"category": "platform-native",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:17:36.805Z",
|
||
"endedAt": "2026-06-06T22:17:39.173Z",
|
||
"durationMs": 2368,
|
||
"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/mac-screen-capture@0.0.0 test /Users/hampus/Development/fluxer/fluxer_desktop/native/mac-screen-capture\n> pnpm test:cargo && node --test index.test.mjs\n\n../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/mac-screen-capture@0.0.0 test:cargo /Users/hampus/Development/fluxer/fluxer_desktop/native/mac-screen-capture\n> cargo test --manifest-path Cargo.toml\n\n\nrunning 15 tests\ntest nv12_packing::tests::pack_nv12_rejects_short_source ... ok\ntest nv12_packing::tests::pack_nv12_rejects_undersized_stride ... ok\ntest nv12_packing::tests::pack_nv12_strips_row_padding ... ok\ntest nv12_packing::tests::pack_nv12_zero_padding_is_identity ... ok\ntest nv12_packing::tests::pack_nv12_rejects_wrong_dst_size ... ok\ntest nv12_packing::tests::packed_size_matches_yuv420_layout ... ok\ntest nv12_packing::tests::packed_size_rejects_zero_dims ... ok\ntest nv12_packing::tests::packed_size_rejects_odd_height ... ok\ntest os_version::tests::classify_macos_11_is_unsupported ... ok\ntest os_version::tests::classify_macos_12_3_is_supported ... ok\ntest os_version::tests::classify_unknown_version_is_unsupported ... ok\ntest os_version::tests::format_version_trims_zero_patch ... ok\ntest os_version::tests::meets_floor_exact_match ... ok\ntest os_version::tests::meets_floor_higher_major ... ok\ntest os_version::tests::rejects_below_floor ... ok\n\ntest result: ok. 15 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▶ mac-screen-capture loader wrapper\n ✔ forwards source id, kind, and dimensions to native binding (2.259875ms)\n ✔ defaults sourceKind to screen and frameRate to 30 (0.213958ms)\n ✔ forwards display and window sources from native binding without rewriting ids (0.2195ms)\n ✔ reports ScreenCaptureKit support and permission from native binding (0.7435ms)\n ✔ re-emits native frame events to listeners (0.327166ms)\n ✔ emits closed once when native lifecycle closes and stop is called later (0.299333ms)\n ✔ lifecycle error emits Error event (0.176125ms)\n✔ mac-screen-capture loader wrapper (5.402834ms)\nℹ tests 7\nℹ suites 1\nℹ pass 7\nℹ fail 0\nℹ cancelled 0\nℹ skipped 0\nℹ todo 0\nℹ duration_ms 353.937417\n",
|
||
"stderrTail": " Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s\n Running unittests src/lib.rs (target/debug/deps/fluxer_mac_screen_capture-41d64e8eafcd58d2)\n Doc-tests fluxer_mac_screen_capture\n"
|
||
},
|
||
{
|
||
"name": "mac-app-audio-build",
|
||
"command": "pnpm --dir native/mac-app-audio build",
|
||
"category": "platform-native",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:17:39.173Z",
|
||
"endedAt": "2026-06-06T22:17:41.191Z",
|
||
"durationMs": 2018,
|
||
"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/mac-app-audio@0.0.0 build /Users/hampus/Development/fluxer/fluxer_desktop/native/mac-app-audio\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/mac-app-audio\n+ /Users/hampus/.rustup/toolchains/1.93.0-aarch64-apple-darwin/bin/cargo build --release --target aarch64-apple-darwin --manifest-path Cargo.toml\n+ codesign --force --sign - /Users/hampus/Development/fluxer/fluxer_desktop/native/mac-app-audio/mac-app-audio.darwin-arm64.node\n",
|
||
"stderrTail": " Finished `release` profile [optimized] target(s) in 0.04s\n/Users/hampus/Development/fluxer/fluxer_desktop/native/mac-app-audio/mac-app-audio.darwin-arm64.node: replacing existing signature\n"
|
||
},
|
||
{
|
||
"name": "mac-app-audio-rust-tests",
|
||
"command": "pnpm --dir native/mac-app-audio test:cargo",
|
||
"category": "platform-native",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:17:41.191Z",
|
||
"endedAt": "2026-06-06T22:17:42.306Z",
|
||
"durationMs": 1115,
|
||
"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/mac-app-audio@0.0.0 test:cargo /Users/hampus/Development/fluxer/fluxer_desktop/native/mac-app-audio\n> cargo test --manifest-path Cargo.toml\n\n\nrunning 49 tests\ntest audio_converter::tests::build_input_non_interleaved ... ok\ntest audio_converter::tests::build_input_interleaved ... ok\ntest audio_converter::tests::build_output_mono_44_1k ... ok\ntest audio_converter::tests::build_output_stereo_48k ... ok\ntest audio_converter::tests::converted_frame_count_exact ... ok\ntest audio_converter::tests::lpcm_fourcc ... ok\ntest audio_converter::tests::input_frame_count_interleaved_and_planar ... ok\ntest audio_converter::tests::normalize_signed_int16 ... ok\ntest audio_converter::tests::interleave_planar_stereo ... ok\ntest audio_converter::tests::duplicate_mono_to_stereo ... ok\ntest audio_converter::tests::linear_resample_to_target_rate ... ok\ntest audio_converter::tests::handle_float64_input ... ok\ntest audio_converter::tests::output_frame_capacity_rounds_up ... ok\ntest foundation::tests::mutable_array_initial_count_is_zero ... ok\ntest foundation::tests::mutable_dictionary_initial_count_is_zero ... ok\ntest foundation::tests::nsstring_to_string_handles_none ... ok\ntest foundation::tests::nsstring_round_trip ... ok\ntest os_version::tests::classify_macos_10_15_is_unsupported_and_mentions_min_version ... ok\ntest os_version::tests::classify_macos_12_3_is_sck_only ... ok\ntest os_version::tests::classify_macos_14_2_has_both_backends ... ok\ntest os_version::tests::classify_macos_15_is_supported ... ok\ntest os_version::tests::classify_unknown_version_is_unsupported ... ok\ntest os_version::tests::coreaudio_floor_14_2 ... ok\ntest os_version::tests::format_version_trims_zero_patch ... ok\ntest os_version::tests::meets_floor_exact_match ... ok\ntest os_version::tests::meets_floor_higher_major ... ok\ntest os_version::tests::meets_floor_higher_minor ... ok\ntest os_version::tests::rejects_below_floor_major ... ok\ntest os_version::tests::rejects_below_floor_minor ... ok\ntest os_version::tests::rejects_macos_10_15_for_sck ... ok\ntest process_tree::tests::collect_related_returns_tree ... ok\ntest process_tree::tests::same_launch_tree_excludes_unrelated ... ok\ntest process_tree::tests::same_launch_tree_includes_direct_child ... ok\ntest process_tree::tests::same_launch_tree_includes_pgrp_peer ... ok\ntest related_app::tests::helper_bundle_strips_suffix ... ok\ntest related_app::tests::helper_name_strips_helper_suffix ... ok\ntest related_app::tests::related_by_dot_prefix ... ok\ntest related_app::tests::related_via_bundle_helper_base ... ok\ntest related_app::tests::related_via_name_helper_base ... ok\ntest related_app::tests::unrelated_returns_false ... ok\ntest sck::tests::cgrect_intersection_handles_negative_and_disjoint ... ok\ntest source_state::tests::cancel_idle_short_circuits ... ok\ntest source_state::tests::double_start_rejected ... ok\ntest source_state::tests::happy_path ... ok\ntest source_state::tests::is_allowed_exhaustive ... ok\ntest source_state::tests::mark_fatal_forces_stopped ... ok\ntest source_state::tests::mark_fatal_idempotent ... ok\ntest source_state::tests::start_while_stopping_rejected ... ok\ntest source_state::tests::stop_before_start_rejected ... ok\n\ntest result: ok. 49 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",
|
||
"stderrTail": " Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s\n Running unittests src/lib.rs (target/debug/deps/fluxer_mac_app_audio-b86bec7aea37ec64)\n Doc-tests fluxer_mac_app_audio\n"
|
||
},
|
||
{
|
||
"name": "mac-app-audio-js-tests",
|
||
"command": "'/Users/hampus/Development/fluxer/node_modules/.pnpm/node_modules/.bin/vitest' run",
|
||
"category": "platform-native",
|
||
"status": "pass",
|
||
"code": 0,
|
||
"signal": null,
|
||
"startedAt": "2026-06-06T22:17:42.306Z",
|
||
"endedAt": "2026-06-06T22:17:42.978Z",
|
||
"durationMs": 672,
|
||
"stdoutTail": "\n RUN v4.0.18 /Users/hampus/Development/fluxer/fluxer_desktop/native/mac-app-audio\n\n ✓ index.test.mjs (5 tests) 4ms\n\n Test Files 1 passed (1)\n Tests 5 passed (5)\n Start at 00:17:42\n Duration 399ms (transform 13ms, setup 0ms, import 285ms, tests 4ms, environment 0ms)\n\n",
|
||
"stderrTail": ""
|
||
}
|
||
]
|
||
}
|