success Pipeline #27

62d98a9fcaldavtriggered by manual (Konata)11m 41s

Steps

successpipeline setup3s
successsetup7s
( 1/41) Upgrading libcrypto3 (3.5.8-r0 -> 3.5.9-r0)
( 2/41) Upgrading libssl3 (3.5.8-r0 -> 3.5.9-r0)
( 3/41) Installing binaryen (129-r0)
( 4/41) Installing brotli-libs (1.2.0-r1)
( 5/41) Installing c-ares (1.34.8-r0)
( 6/41) Installing libunistring (1.4.2-r0)
( 7/41) Installing libidn2 (2.3.8-r0)
( 8/41) Installing nghttp2-libs (1.70.0-r0)
( 9/41) Installing libpsl (0.21.5-r3)
(10/41) Installing libcurl (8.22.0-r0)
(11/41) Installing curl (8.22.0-r0)
(12/41) Installing just (1.48.1-r0)
(13/41) Installing make (4.4.1-r4)
(14/41) Installing pkgconf (2.5.1-r0)
(15/41) Installing openssl-dev (3.5.9-r0)
(16/41) Installing openssl-libs-static (3.5.9-r0)
(17/41) Installing libffi (3.5.2-r1)
(18/41) Installing libintl (1.0-r0)
(19/41) Installing libeconf (0.8.3-r0)
(20/41) Installing libblkid (2.42.3-r1)
(21/41) Installing libmount (2.42.3-r1)
(22/41) Installing pcre2 (10.49-r0)
(23/41) Installing glib (2.88.1-r1)
(24/41) Installing conmon (2.2.1-r0)
(25/41) Installing libcap2 (2.78-r0)
(26/41) Installing json-c (0.18-r1)
(27/41) Installing libseccomp (2.6.0-r2)
(28/41) Installing crun (1.30.1-r0)
(29/41) Installing passt (2026.05.26-r0)
(30/41) Installing libmd (1.2.0-r0)
(31/41) Installing libbsd (0.12.2-r0)
(32/41) Installing skalibs-libs (2.15.0.0-r0)
(33/41) Installing utmps-libs (0.1.3.3-r0)
(34/41) Installing linux-pam (1.7.1-r2)
(35/41) Installing shadow-libs (4.18.0-r1)
(36/41) Installing shadow-subids (4.18.0-r1)
(37/41) Installing containers-common (0.64.2-r0)
(38/41) Installing netavark (1.17.2-r0)
(39/41) Installing aardvark-dns (1.17.1-r0)
(40/41) Installing catatonit (0.2.1-r0)
(41/41) Installing podman-remote (5.8.8-r0)
Executing busybox-1.37.0-r31.trigger
Executing ca-certificates-20260909-r0.trigger
Executing glib-2.88.1-r1.trigger
OK: 317.2 MiB in 70 packages
info: downloading 2 components
info: downloading component rust-std
/tmp/trunk.tar.gz: OK
just 1.48.1
1.4.2
trunk 0.21.14
rustfmt 1.9.0-stable (48a229ceae 2026-09-01)
clippy 0.1.98 (48a229ceae 2026-09-01)
successlint8s
cargo fmt --check
cargo clippy --workspace --all-targets -- -D warnings
    Checking pimdav v0.1.0 (/ci/build/project/pimdav)
    Checking api-types v0.1.0 (/ci/build/project/api-types)
    Checking server v0.1.0 (/ci/build/project/server)
    Checking web v0.1.0 (/ci/build/project/web)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.32s
warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
successtest2m 40s
cargo test -p server -p api-types -p pimdav
   Compiling pimdav v0.1.0 (/ci/build/project/pimdav)
   Compiling api-types v0.1.0 (/ci/build/project/api-types)
   Compiling server v0.1.0 (/ci/build/project/server)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 17.14s
     Running unittests src/lib.rs (/ci/cache/target/debug/deps/api_types-71e0533a99d0805e)

running 7 tests
test tests::me_round_trip ... ok
test tests::mode_wire_format_is_rw_ro ... ok
test tests::mutation_defaults_missing_fields ... ok
test tests::mutation_round_trip_skips_absent_fields ... ok
test tests::op_wire_format ... ok
test tests::pim_share_mode_wire_format ... ok
test tests::root_defaults_mode_to_rw ... ok

test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running unittests src/lib.rs (/ci/cache/target/debug/deps/pimdav-766fe2f3df20896c)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/bundle.rs (/ci/cache/target/debug/deps/bundle-7866b14f2e29373e)

running 19 tests
test feeds_skip_a_component_cut_off_before_its_end ... ok
test byte_order_mark_is_ignored ... ok
test import_splits_cards ... ok
test escaped_tzid_finds_its_zone ... ok
test calendar_names_itself ... ok
test a_free_this_and_future_override_frees_the_later_instances ... ok
test a_busy_range_override_of_a_free_series_stays_busy ... ok
test quoted_tzid_keeps_its_zone ... ok
test a_second_master_of_a_uid_gets_an_object_of_its_own ... ok
test busy_time_hides_what_blocks_nothing ... ok
test busy_time_writes_exdates_once_and_import_drops_cut_parts ... ok
test override_placement_reads_the_masters_own_time_zones ... ok
test public_feeds_reduce_private_objects ... ok
test an_override_follows_the_master_that_has_its_instance ... ok
test shared_uid_across_types_splits_and_empty_uid_is_missing ... ok
test feed_merges_objects_and_deduplicates_zones ... ok
test import_splits_by_uid_with_overrides_and_zones ... ok
test overrides_of_several_masters_are_placed_quickly ... ok
test many_masters_of_one_uid_are_placed_quickly ... ok

test result: ok. 19 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s

     Running tests/contact.rs (/ci/cache/target/debug/deps/contact-3b93cce06e662d73)

running 9 tests
test photo_forms ... ok
test anniversaries ... ok
test vcard_2_1_bare_types_label_values ... ok
test the_card_view_reads_apple_dates ... ok
test non_ascii_dates_are_ignored ... ok
test leap_day_birthday ... ok
test birthday_forms ... ok
test many_apple_dates_stay_linear ... ok
test many_labelled_emails_stay_linear ... ok

test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.22s

     Running tests/corpus.rs (/ci/cache/target/debug/deps/corpus-ffec3c6420dbf87b)

running 1 test
test corpus_matches_oracle ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.72s

     Running tests/expand.rs (/ci/cache/target/debug/deps/expand-e682c50bd6e292a0)

running 27 tests
test dtstart_is_the_first_of_count ... ok
test instance_for_finds_instances_moved_by_this_and_future ... ok
test dst_gap_and_fold ... ok
test instance_for_finds_an_instance_moved_across_dst ... ok
test rdate_period_on_dtstart_keeps_its_length ... ok
test a_this_and_future_move_across_dst_keeps_the_local_time ... ok
test exdate_forms ... ok
test old_biweekly_rule_keeps_its_grid ... ok
test mixed_numbered_and_plain_weekdays ... ok
test duration_days_are_nominal_and_dtend_is_exact ... ok
test rdate_is_deduplicated_and_excluded ... ok
test instances_longer_than_a_year_are_found_inside ... ok
test todo_uses_due ... ok
test this_and_future_moves_later_instances ... ok
test utc_until_on_an_all_day_series_keeps_its_day ... ok
test window_overlap ... ok
test utc_until_east_of_utc_keeps_last_instance ... ok
test unsupported_rules_leave_dtstart_only ... ok
test old_sub_daily_rule_skips_ahead ... ok
test a_huge_duration_does_not_expand_an_endless_rule_to_the_cap ... ok
test sub_daily_rule_keeps_its_grid_across_hour_limits ... ok
test unused_time_zones_cost_nothing ... ok
test bysetpos_gives_the_same_instances_in_any_window ... ok
test a_rule_that_never_matches_stops_early ... ok
test custom_vtimezone_rules ... ok
test runaway_rule_is_truncated ... ok
test the_rules_of_one_series_share_one_budget ... ok

test result: ok. 27 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.93s

     Running tests/itip.rs (/ci/cache/target/debug/deps/itip-e2d3465b9332c385)

running 58 tests
test a_cancelled_range_cancels_the_later_instances ... ok
test a_client_scheduled_attendee_gets_no_cancel ... ok
test a_reply_status_keeps_only_its_code ... ok
test a_new_override_takes_the_others_state_from_its_range ... ok
test an_attendee_may_complete_one_instance ... ok
test a_changed_exrule_is_a_reschedule ... ok
test a_stale_range_past_the_series_cuts_nothing ... ok
test a_copy_without_its_master_keeps_the_shift ... ok
test a_huge_duration_does_not_panic ... ok
test a_date_until_on_the_same_day_extends_the_series ... ok
test a_range_an_attendee_is_left_out_of_ends_their_series ... ok
test a_new_override_that_changes_the_length_is_a_reschedule ... ok
test an_attendee_dropped_from_the_master_gets_a_cancel_despite_a_client_override ... ok
test accept_and_apply_reply ... ok
test a_new_override_at_the_shifted_time_is_no_move ... ok
test a_reordered_save_sends_nothing ... ok
test a_room_declines_one_instance_a_this_and_future_override_moves ... ok
test a_range_from_the_first_instance_cancels_the_whole_series ... ok
test attendee_delete_declines ... ok
test answering_an_instance_the_series_lacks_changes_nothing ... ok
test attendees_may_not_drop_a_cancelled_instance ... ok
test a_new_override_that_moves_bumps_the_sequence ... ok
test a_room_declines_a_series_with_many_conflicts_as_a_whole ... ok
test a_rule_in_another_form_is_the_same_rule ... ok
test attendees_may_not_move_the_meeting ... ok
test an_override_without_end_has_the_default_length ... ok
test attendees_may_delete_an_instance_or_drop_one_of_their_instances ... ok
test dropping_a_declined_instance_replies_with_the_series_answer ... ok
test forget_a_deleted_principal ... ok
test attendees_may_not_change_an_instance_through_its_override ... ok
test a_room_declines_only_the_first_instance_of_a_this_and_future_override ... ok
test attendees_keep_the_organizers_status_of_an_instance ... ok
test a_sequence_bump_reaches_the_copies_quietly ... ok
test an_attendee_may_write_the_same_end_in_another_form ... ok
test invite ... ok
test instances_only_reach_their_attendees ... ok
test roles ... ok
test clients_may_name_the_week_start_or_confirm_their_instance ... ok
test reply_for_a_missing_instance_adds_nothing ... ok
test declining_one_instance ... ok
test sender_is_named_for_the_owner ... ok
test removed_attendee_and_delete_cancel ... ok
test the_highest_sequence_does_not_overflow ... ok
test rooms_answer_from_their_bookings ... ok
test unchanged_or_forced ... ok
test updates_keep_what_the_attendee_owns ... ok
test reschedule_resets_participation ... ok
test an_attendee_may_write_the_same_rule_in_another_form ... ok
test count_and_until_compare_by_the_last_instance ... ok
test moving_a_far_until_costs_only_the_gap ... ok
test an_attendee_may_delete_many_instances_but_not_without_end ... ok
test an_override_of_no_instance_is_refused_and_many_overrides_stay_fast ... ok
test a_reply_never_grows_the_object_past_the_limit ... ok
test many_attendees_share_one_message_body ... ok
test narrowing_a_range_never_grows_the_object_past_the_limit ... ok
test many_attendees_and_ranges_stay_fast ... ok
test a_copy_with_many_overrides_is_answered_fast ... ok
test far_apart_replies_on_a_dense_series_all_land ... ok

test result: ok. 58 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 6.03s

     Running tests/principal.rs (/ci/cache/target/debug/deps/principal-b822ed415110825a)

running 4 tests
test directory_card_escapes_text ... ok
test list_all_and_stray_properties ... ok
test zero_nresults_means_no_limit ... ok
test property_search_and_calendarserver_search ... ok

test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/protocol.rs (/ci/cache/target/debug/deps/protocol-831b0a8de3c7591c)

running 12 tests
test a_cut_or_nested_object_is_refused ... ok
test missing_dtstamp_is_inserted ... ok
test vcards ... ok
test one_master_per_object_and_no_blank_uid ... ok
test a_rule_with_a_huge_count_is_refused ... ok
test multistatus_round_trips ... ok
test propfind_bodies ... ok
test calendar_objects ... ok
test update_bodies ... ok
test deep_bodies_and_control_characters ... ok
test too_many_rules_are_refused ... ok
test huge_objects_are_refused ... ok

test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s

     Running tests/report.rs (/ci/cache/target/debug/deps/report-53e1547226f78a6f)

running 30 tests
test an_instance_moved_by_a_range_takes_the_overrides_component ... ok
test address_data_converts_versions ... ok
test expand_keeps_a_task_without_start ... ok
test busy_time ... ok
test a_photo_data_uri_survives_the_conversion_to_4_0 ... ok
test expand_puts_a_kept_task_in_utc ... ok
test busy_time_follows_own_answer ... ok
test expand_puts_every_zoned_time_of_an_instance_in_utc ... ok
test limit_recurrence_keeps_an_override_moved_out_of_the_range ... ok
test unicode_casemap_folds_after_nfkd ... ok
test vcard_three_is_the_default ... ok
test limit_recurrence_keeps_an_override_whose_original_overlaps_the_range ... ok
test outbox_free_busy_request ... ok
test bad_filters_are_valid_filter_conditions ... ok
test floating_times_use_the_query_zone ... ok
test vcard_three_gets_plain_numbers_and_apple_birthdays ... ok
test an_empty_comp_selects_the_whole_component ... ok
test a_photo_without_type_gets_its_media_type_in_4_0 ... ok
test text_match_ignores_pretty_printing ... ok
test expand_keeps_dates_and_limit_keeps_used_overrides ... ok
test an_open_range_on_an_endless_rule_needs_no_expansion ... ok
test a_task_alarm_without_start_fires_from_due ... ok
test groups_and_companies_in_apple_forms ... ok
test card_filters ... ok
test report_bodies ... ok
test alarms_fire_per_instance ... ok
test freebusy_components_and_properties ... ok
test todo_time_ranges ... ok
test many_overrides_expand_once_per_query ... ok
test expand_refuses_an_answer_too_big_to_build ... ok

test result: ok. 30 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s

     Running unittests src/lib.rs (/ci/cache/target/debug/deps/server-6ad7fdf059ac6f6f)

running 105 tests
test api::search::tests::name_match_ignores_the_parent_path ... ok
test api::search::tests::excludes_cover_descendants_but_not_name_siblings ... ok
test api::search::tests::join_rel_lifts_a_path_to_the_server_root ... ok
test api::search::tests::name_match_needs_every_word ... ok
test api::common::tests::share_query_field_is_p_share ... ok
test api::files::tests::query_fields_are_the_shared_constants ... ok
test api::search::tests::query_fields_are_the_shared_constants ... ok
test api::search::tests::truncation_caps_length ... ok
test api::search::tests::truncation_strips_terminator ... ok
test api::search::tests::truncation_keeps_utf8_boundary ... ok
test archive::tests::format_metadata ... ok
test archive::tests::format_parsing ... ok
test api::files::tests::publish_refuses_an_existing_target_without_overwrite ... ok
test archive::tests::build_fails_on_missing_dir ... ok
test api::pim_schedule::tests::a_rule_running_on_has_not_ended_and_costs_nothing ... ok
test assets::tests::asset_paths_outside_dist_are_rejected ... ok
test auth::tests::login_delay_grows_after_free_tries ... ok
test auth::tests::parse_session_cookie_variants ... ok
test auth::tests::session_cookie_shape ... ok
test auth::tests::share_cookie_is_per_share_and_session_scoped ... ok
test auth::tests::verify_rejects_garbage_hashes ... ok
test archive::tests::walk_is_sorted_case_insensitively ... ok
test cli::tests::defaults_applied ... ok
test cli::tests::flags_override_defaults ... ok
test db::tests::share_expiry_logic ... ok
test cli::tests::required_args_enforced ... ok
test archive::tests::tar_round_trip ... ok
test auth::tests::token_shapes_and_uniqueness ... ok
test error::tests::io_error_maps_to_500 ... ok
test error::tests::non_object_extra_is_ignored ... ok
test error::tests::extra_object_is_merged_into_body ... ok
test archive::tests::tar_gz_round_trip ... ok
test archive::tests::tar_zst_round_trip ... ok
test error::tests::plain_error_body ... ok
test archive::tests::zip_round_trip ... ok
test fs::tests::copy_recursive_missing_source ... ok
test fs::tests::is_within_or_eq_matrix ... ok
test fs::tests::list_dir_error_cases ... ok
test fs::tests::detect_kind_reads_from_disk ... ok
test fs::tests::copy_refuses_into_self_and_handles_conflict ... ok
test fs::tests::magic_numbers_classify_by_content ... ok
test fs::tests::copy_file_and_dir_preserves_mtime ... ok
test fs::tests::list_dir_reports_broken_symlink_as_empty_file ... ok
test fs::tests::list_dir_reports_kinds ... ok
test fs::tests::mkdir_rejects_conflict_and_bad_names ... ok
test fs::tests::mkdir_creates_nested_dirs ... ok
test fs::tests::list_dir_sorts_folders_first_then_case_insensitive ... ok
test fs::tests::move_file_and_dir_across_dirs ... ok
test fs::tests::remove_file_and_dir ... ok
test fs::tests::list_dir_pages_the_sorted_listing ... ok
test fs::tests::rename_conflicts_and_overwrite ... ok
test fs::tests::rename_moves_file_and_dir ... ok
test fs::tests::rename_validates_new_name ... ok
test fs::tests::resolve_dir_requires_existing_directory ... ok
test fs::tests::move_refuses_into_self_and_conflicts ... ok
test fs::tests::resolve_file_targets_files ... ok
test fs::tests::resolve_path_missing_is_not_found ... ok
test fs::tests::resolve_path_rejects_parent_traversal ... ok
test fs::tests::resolve_path_traverses_inside_root ... ok
test fs::tests::resolve_path_rejects_symlink_escape ... ok
test fs::tests::resolve_root_rejects_escape_and_missing ... ok
test fs::tests::resolve_root_rejects_symlink_escape ... ok
test fs::tests::resolve_root_whole_root_and_subdir ... ok
test fs::tests::sort_keeps_folders_first_in_every_order ... ok
test fs::tests::sort_orders_by_the_chosen_key ... ok
test fs::tests::save_file_error_cases ... ok
test fs::tests::svg_is_offered_as_an_image ... ok
test fs::tests::truncated_utf8_at_the_read_boundary_is_still_text ... ok
test fs::tests::unsigned_files_fall_back_to_the_text_heuristic ... ok
test fs::tests::validate_name_accepts_simple_names ... ok
test fs::tests::validate_name_rejects_traversal_and_paths ... ok
test tests::build_app_missing_root_fails ... ok
test fs::tests::parallel_rows_match_serial ... ok
test fs::tests::sniff_permit_never_exceeds_the_budget ... ok
test tests::build_app_root_must_be_directory ... ok
test thumb::tests::a_hit_refreshes_a_stale_entry_only ... ok
test thumb::tests::an_edit_changes_the_cache_key ... ok
test thumb::tests::the_key_fans_out_into_a_bucket ... ok
test thumb::tests::two_writes_of_one_entry_use_different_scratch_names ... ok
test webauthn::tests::a_browser_on_another_origin_is_refused ... ok
test thumb::tests::the_sweeper_drops_only_cold_entries ... ok
test webauthn::tests::a_handle_answers_once ... ok
test db::tests::fresh_db_state ... ok
test tests::build_app_ok ... ok
test tests::build_app_custom_port_bind ... ok
test db::tests::v1_db_migrates_to_v2 ... ok
test db::tests::sessions_lifecycle ... ok
test db::tests::settings_round_trip ... ok
test db::tests::setup_is_won_by_exactly_one_caller ... ok
test db::tests::share_unlocks_are_bound_to_one_share ... ok
test db::tests::pim_patch_keeps_concurrent_changes ... ok
test db::tests::app_passwords_open_one_account_and_stamp_their_use ... ok
test db::tests::revoking_a_path_takes_its_descendants_only ... ok
test db::tests::the_sweep_drops_expired_shares_and_stale_unlocks ... ok
test db::tests::deleted_defaults_come_back ... ok
test webauthn::tests::a_flood_of_strangers_stays_bounded_and_spares_a_sign_in ... ok
test db::tests::shares_crud ... ok
test db::tests::an_admin_password_reset_revokes_the_app_passwords ... ok
test fs::tests::save_file_conflict_on_stale_mtime ... ok
test fs::tests::save_file_updates_content_and_returns_new_mtime ... ok
test db::tests::rooms_are_principals_not_accounts ... ok
test db::tests::changing_a_password_drops_that_users_sessions ... ok
test auth::tests::password_hash_round_trip ... ok
test db::tests::admin_user_and_passwords ... ok
test db::tests::user_crud_and_roots ... ok

test result: ok. 105 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.31s

     Running unittests src/main.rs (/ci/cache/target/debug/deps/dovenest-33748834cd02de8b)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/api/main.rs (/ci/cache/target/debug/deps/api-f70245dea2f90ebc)

running 273 tests
test auth::first_boot_me_reports_first_boot ... ok
test auth::setup_validates_input ... ok
test admin::update_unknown_user_is_404 ... ok
test app_passwords::the_routes_need_a_session ... ok
test auth::week_start_defaults_to_monday_and_is_validated ... ok
test app_passwords::the_list_never_shows_a_secret_and_the_count_is_capped ... ok
test auth::setup_creates_admin_and_sets_cookie ... ok
test auth::me_requires_valid_session ... ok
test auth::logout_invalidates_session ... ok
test admin::settings_round_trip_visible_in_me ... ok
test auth::public_url_reaches_client ... ok
test app_passwords::an_app_password_mounts_an_account_that_requires_a_passkey ... ok
test dav::a_browser_get_of_a_collection_returns_a_listing ... ok
test dav::a_listing_still_shows_a_symlink_as_its_target ... ok
test dav::a_lock_is_reported_and_its_timeout_is_capped ... ok
test admin::lockout_guards ... ok
test dav::a_copy_and_a_put_to_one_path_do_not_interleave ... ok
test dav::a_path_that_climbs_out_of_the_mount_is_not_a_server_error ... ok
test dav::a_dangling_symlink_is_not_a_writable_destination ... ok
test dav::a_listing_escapes_entry_names ... ok
test dav::a_dangling_symlink_is_still_listed ... ok
test auth::default_root_is_validated_and_dropped_with_its_root ... ok
test dav::a_listing_omits_dotfiles ... ok
test admin::admins_can_browse_the_server_root_read_only ... ok
test app_passwords::an_app_password_opens_webdav_and_nothing_else ... ok
test app_passwords::revoking_one_closes_the_mount_immediately ... ok
test dav::a_session_cookie_works_instead_of_basic ... ok
test admin::admin_routes_require_admin ... ok
test auth::root_name_is_configurable ... ok
test dav::a_share_mounts_at_its_own_root_without_a_login ... ok
test dav::a_writable_share_can_be_written_and_expiry_ends_it ... ok
test dav::an_encoded_slash_does_not_split_the_share_token ... ok
test auth::login_flows ... ok
test auth::disabled_user_loses_session_and_cannot_login ... ok
test dav::a_mount_cannot_leave_its_roots ... ok
test dav::a_scriptable_file_is_sandboxed_over_dav ... ok
test dav::deleting_a_shared_path_over_webdav_revokes_the_share ... ok
test dav::a_move_cannot_wipe_a_root_through_its_destination ... ok
test dav::get_and_put_round_trip_through_the_mount ... ok
test dav::an_exclusive_lock_blocks_everyone_without_the_token ... ok
test dav::locks_are_scoped_to_their_own_path ... ok
test dav::concurrent_writers_leave_a_whole_file ... ok
test dav::mkcol_move_copy_and_delete ... ok
test dav::copy_replaces_a_symlink_instead_of_writing_through_it ... ok
test dav::a_read_only_root_can_still_be_copied_out_of ... ok
test dav::a_read_only_root_refuses_every_write ... ok
test dav::deep_xml_bodies_are_refused ... ok
test dav::moving_a_symlinked_directory_moves_the_link ... ok
test dav::an_abandoned_lock_expires ... ok
test dav::propfind_lists_the_roots_then_their_contents ... ok
test dav::deleting_a_symlink_does_not_revoke_its_targets_share ... ok
test dav::deleting_a_symlink_removes_the_link_not_its_target ... ok
test dav::deleting_a_symlinked_directory_does_not_empty_its_target ... ok
test dav::deleting_the_mount_point_removes_nothing ... ok
test dav::a_share_password_with_edge_spaces_opens_the_mount ... ok
test files::a_dangling_symlink_can_be_deleted ... ok
test dav::a_protected_share_asks_for_its_password_over_basic ... ok
test files::a_symlink_out_of_the_root_still_cannot_be_read_or_written ... ok
test files::an_interrupted_upload_leaves_no_scratch_file ... ok
test files::archive_does_not_follow_symlinks_out_of_the_root ... ok
test files::content_action_serves_raw_bytes_with_mtime ... ok
test files::content_is_capped_at_two_mibibytes ... ok
test files::copying_a_symlink_copies_what_it_points_at ... ok
test files::copying_onto_a_symlink_replaces_it ... ok
test files::delete_file_and_folder ... ok
test files::deleting_a_symlink_removes_the_link_not_its_target ... ok
test files::download_encodes_non_ascii_and_control_characters_in_filename ... ok
test files::download_folder_as_all_archive_formats ... ok
test dav::deleting_a_root_removes_nothing ... ok
test app_passwords::app_passwords_are_private_to_their_account ... ok
test files::download_folder_requires_valid_format ... ok
test dav::unauthenticated_requests_get_a_basic_challenge ... ok
test files::download_honours_single_byte_ranges ... ok
test dav::a_changed_password_locks_the_mount_out_at_once ... ok
test files::download_revalidates_with_last_modified ... ok
test files::editor_save_over_two_mibibytes_is_rejected_with_the_localized_error ... ok
test files::download_single_file ... ok
test files::editor_save_round_trip_and_conflict ... ok
test files::exists_check_does_not_follow_symlinked_directories_out_of_the_root ... ok
test files::file_dated_before_1970_is_served ... ok
test files::list_root_sorted_folders_first ... ok
test files::list_subdir_and_errors ... ok
test files::listing_is_paged_in_the_requested_order ... ok
test files::listing_reports_sniffed_kinds ... ok
test files::move_and_copy_across_dirs ... ok
test files::mkdir_and_rename ... ok
test files::moving_a_symlink_moves_the_link ... ok
test files::path_traversal_is_blocked ... ok
test files::preview_serves_inline_and_rejects_dirs ... ok
test files::renaming_a_symlink_renames_the_link ... ok
test files::revalidation_keeps_the_file_policy ... ok
test files::scriptable_files_are_served_sandboxed ... ok
test files::upload_creates_files_and_folders ... ok
test files::upload_does_not_clobber_a_file_created_during_the_transfer ... ok
test files::upload_does_not_follow_symlinked_directories_out_of_the_root ... ok
test passkeys::a_challenge_for_an_unknown_name_can_never_sign_anyone_in ... ok
test passkeys::a_conditional_challenge_asks_for_autofill_mediation ... ok
test admin::user_lifecycle ... ok
test passkeys::a_handle_cannot_be_answered_twice_or_invented ... ok
test passkeys::a_registration_handle_cannot_be_used_to_sign_in ... ok
test passkeys::a_second_spelling_of_a_name_gives_nothing_away ... ok
test passkeys::a_short_new_password_is_refused ... ok
test passkeys::an_account_cannot_hold_more_passkeys_than_a_challenge_lists ... ok
test passkeys::an_invented_login_handle_is_refused ... ok
test passkeys::decoy_credentials_stay_the_same_between_requests ... ok
test passkeys::every_credential_route_needs_a_session ... ok
test passkeys::one_of_several_passkeys_can_always_go ... ok
test passkeys::registration_asks_the_authenticator_to_store_the_credential ... ok
test passkeys::requiring_both_blocks_removing_either_half ... ok
test passkeys::requiring_both_needs_both_to_exist ... ok
test files::exists_check_reports_targets_without_creating_anything ... ok
test passkeys::the_last_passkey_cannot_go_while_there_is_no_password ... ok
test passkeys::a_wrong_password_reveals_nothing_about_the_second_factor ... ok
test passkeys::the_password_cannot_go_while_it_is_the_only_credential ... ok
test passkeys::beginning_a_passkey_sign_in_never_says_whether_a_name_exists ... ok
test files::read_only_root_blocks_writes_but_allows_reads ... ok
test passkeys::deleting_an_account_takes_its_passkeys_with_it ... ok
test files::user_cannot_touch_foreign_root ... ok
test passkeys::removing_the_password_leaves_a_passkey_only_account ... ok
test passkeys::signing_in_works_on_a_host_passkeys_cannot_use ... ok
test passkeys::a_passkey_only_account_can_set_a_password_again ... ok
test passkeys::the_password_alone_never_signs_in_an_account_that_requires_both ... ok
test passkeys::another_accounts_passkey_is_out_of_reach ... ok
test dav::two_users_with_same_named_roots_do_not_share_locks ... ok
test pim::a_taken_slug_leaves_the_first_collection_alone ... ok
test passkeys::the_passkey_first_order_signs_in_only_with_the_right_password ... ok
test passkeys::the_passkey_list_is_per_account_and_carries_no_key_material ... ok
test passkeys::an_admin_password_clears_the_passkeys_and_the_requirement ... ok
test passkeys::changing_the_password_ends_every_other_session ... ok
test passkeys::webdav_refuses_an_account_that_requires_a_passkey ... ok
test pim::a_cut_initial_sync_resumes_past_pruned_tombstones ... ok
test pim::a_cut_initial_sync_survives_writes_between_its_pages ... ok
test pim::deleting_a_missing_object_records_no_change ... ok
test pim::a_proppatch_whose_collection_goes_while_its_body_arrives_is_not_a_500 ... ok
test pim::a_put_racing_the_collection_delete_never_fails_with_500 ... ok
test pim::address_objects ... ok
test pim::addressbook_reports ... ok
test pim::bad_filters_are_refused_by_name ... ok
test pim::homes_list_the_default_collections ... ok
test pim::hrefs_follow_the_requested_spelling ... ok
test pim::calendar_objects ... ok
test pim::calendar_reports ... ok
test pim::dead_properties_are_capped_in_total ... ok
test pim::a_deleted_user_gets_the_login_challenge ... ok
test pim::deleting_a_user_deletes_their_collections ... ok
test pim::moving_an_object_onto_itself_changes_nothing ... ok
test pim::of_two_deletes_of_one_collection_only_one_succeeds ... ok
test pim::expand_answers_are_capped ... ok
test pim::long_names_and_405s ... ok
test pim::other_users_are_off_limits ... ok
test pim::make_and_patch_collections ... ok
test pim::missing_dtstamp_is_added ... ok
test pim::proppatch_follows_document_order ... ok
test pim::pruned_tombstones_invalidate_old_sync_tokens ... ok
test pim::sync_collection ... ok
test pim::mkcol_checks_target_and_values ... ok
test pim::move_objects ... ok
test pim::mkcol_refuses_long_slugs_and_the_101st_collection ... ok
test pim::the_default_calendar_stays ... ok
test pim::multiget_answers_each_href_once_and_caps_the_count ... ok
test pim::discovery ... ok
test pim::principal_search ... ok
test pim::system_address_book ... ok
test pim_clients::discovery_by_get_and_from_the_root ... ok
test pim::expand_answers_are_capped_in_bytes ... ok
test pim_clients::vcard_three_for_apple ... ok
test pim::other_accounts_get_no_client_properties_or_loans_of_disabled_owners ... ok
test pim::lent_collections ... ok
test pim_io::collection_names_and_descriptions_are_checked ... ok
test pim_derived::admin_sees_and_revokes_feeds ... ok
test pim_io::a_skipped_import_into_a_new_user_leaves_only_the_default_calendar ... ok
test pim_io::an_import_racing_the_collection_delete_never_fails_with_500 ... ok
test pim_clients::client_properties_are_stored ... ok
test pim_io::export_round_trip ... ok
test pim_derived::birthday_calendar ... ok
test pim_derived::own_shares_list_only_mine ... ok
test pim_io::feeds_of_a_disabled_owner_stop ... ok
test pim_derived::photos_without_a_cache ... ok
test pim_io::a_feed_password_matches_with_edge_spaces ... ok
test pim_io::a_loan_to_a_disabled_user_takes_a_new_mode ... ok
test pim_io::import_as_a_new_collection ... ok
test pim_io::import_splits_and_updates ... ok
test pim_derived::contact_photos ... ok
test pim::rooms_and_resources ... ok
test pim_io::an_import_of_meetings_long_over_sends_nothing ... ok
test pim_clients::addresses_and_logins_for_unusual_names ... ok
test pim_schedule::a_delete_that_matches_nothing_writes_nothing ... ok
test pim_io::the_web_api_keeps_the_dav_limits ... ok
test pim_io::import_schedules_like_a_put_and_keeps_uniqueness ... ok
test pim_schedule::find_uid_prefers_the_scheduling_copy ... ok
test pim_schedule::free_busy_answers_each_principal_once_and_caps_the_attendees ... ok
test pim_schedule::a_disabled_attendee_keeps_getting_updates_and_cancels ... ok
test pim_schedule::attendees_have_limits ... ok
test pim_schedule::deleting_a_calendar_cancels_its_meetings ... ok
test pim_schedule::a_plain_event_with_the_same_uid_does_not_block_a_meeting ... ok
test pim_io::share_candidates_leave_out_owner_borrowers_and_disabled ... ok
test pim_schedule::deleting_an_organizer_cancels_and_forgets_it ... ok
test pim_schedule::discovery_names_inbox_and_outbox ... ok
test pim_schedule::move_does_not_overwrite_a_meeting ... ok
test pim_schedule::one_resource_per_scheduled_uid ... ok
test pim_schedule::invitations_go_to_the_chosen_calendar ... ok
test pim_schedule::organizer_changes_reach_attendees ... ok
test pim_derived::deleted_principals_are_forgotten ... ok
test pim_schedule::deleting_a_user_forgets_an_address_split_by_a_fold ... ok
test pim_schedule::invite_and_answer ... ok
test pim_schedule::foreign_uids_are_not_overwritten ... ok
test pim_schedule::a_plain_loan_may_bump_the_sequence ... ok
test pim_schedule::imports_on_a_plain_loan_skip_meetings ... ok
test pim_schedule::a_quiet_import_keeps_the_attendees_answers ... ok
test pim_schedule::move_stays_with_one_owner ... ok
test pim_io::feeds ... ok
test search::backslash_paths_are_normalised_before_trimming ... ok
test search::both_scopes_stream_from_one_walk ... ok
test search::exclude_list_is_normalised ... ok
test search::excluded_folders_never_appear_in_results ... ok
test pim_schedule::outbox_answers_free_busy ... ok
test search::hidden_and_gitignored_entries_are_searched ... ok
test search::name_scope_ignores_the_parent_path ... ok
test search::path_narrows_the_walk_to_a_subfolder ... ok
test search::search_rejects_bad_input_and_anonymous_callers ... ok
test pim_schedule::replies_need_a_listed_attendee ... ok
test shares::a_root_can_be_shared_and_keeps_a_name ... ok
test shares::a_share_password_must_be_long_enough ... ok
test shares::a_share_token_cannot_read_the_admin_listing ... ok
test pim_schedule::rooms_answer_from_their_bookings ... ok
test shares::create_list_and_delete_shares ... ok
test pim_schedule::rooms_check_series_to_their_horizon ... ok
test shares::mutating_a_target_revokes_its_shares ... ok
test pim_schedule::rooms_receive_bookings ... ok
test shares::read_only_share_blocks_writes_writable_share_allows ... ok
test shares::share_expiry ... ok
test shares::share_expiry_must_be_rfc3339 ... ok
test shares::share_folder_browsing_and_download_anonymously ... ok
test shares::share_of_a_single_file ... ok
test shares::share_scopes_a_signed_in_user ... ok
test shares::share_target_validation ... ok
test thumbs::a_small_video_is_not_upscaled ... ok
test shares::share_token_is_not_the_creators_identity ... ok
test pim_schedule::sharees_schedule_only_when_allowed ... ok
test thumbs::a_video_gets_a_thumbnail_of_one_frame ... ok
test thumbs::a_video_without_ffmpeg_caches_nothing ... ok
test pim_ui::an_instance_a_range_moved_shows_the_ranges_text ... ok
test pim_ui::collections_can_be_created_changed_and_deleted ... ok
test pim_ui::feeds_are_capped_and_never_born_expired ... ok
test shares::unlocking_an_open_share_is_rejected ... ok
test shares::writable_shares_gated_by_setting ... ok
test thumbs::a_broken_image_fails_once_and_is_remembered ... ok
test shares::a_subfolder_share_by_empty_path_is_unaffected ... ok
test shares::an_admin_can_end_a_share_the_creator_can_no_longer_reach ... ok
test thumbs::a_folder_has_no_thumbnail ... ok
test thumbs::a_text_file_has_no_thumbnail ... ok
test thumbs::a_share_scopes_thumbnails_to_the_shared_folder ... ok
test thumbs::a_transparent_png_is_flattened_onto_white ... ok
test thumbs::an_image_smaller_than_the_cap_is_not_upscaled ... ok
test pim_schedule::deleting_a_disabled_user_retracts_its_meetings ... ok
test thumbs::an_image_gets_a_webp_thumbnail ... ok
test pim_ui::the_default_calendar_can_be_chosen ... ok
test pim_ui::contacts_are_searched_across_books ... ok
test shares::read_only_root_cannot_be_shared_writably ... ok
test pim_ui::instances_expand_readable_calendars ... ok
test thumbs::thumbnails_are_off_without_a_cache_folder ... ok
test thumbs::concurrent_requests_for_one_file_all_get_the_thumbnail ... ok
test thumbs::the_profile_setting_round_trips ... ok
test thumbs::the_response_is_immutable ... ok
test thumbs::the_second_request_is_served_from_the_cache ... ok
test pim_ui::invitations_are_listed_and_answered ... ok
test thumbs::editing_the_file_makes_a_new_cache_entry ... ok
test pim_ui::object_detail_for_events_and_contacts ... ok
test pim_ui::tasks_are_not_instances ... ok
test shares::a_password_locks_the_share_and_its_files ... ok
test shares::unlocking_a_file_share_returns_its_kind ... ok
test thumbs::another_users_root_is_still_out_of_reach ... ok
test shares::an_admin_sees_every_share_with_its_creator ... ok

test result: ok. 273 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 62.79s

     Running tests/api_spa.rs (/ci/cache/target/debug/deps/api_spa-ed6ca8c48db3751f)

running 1 test
test spa_fallback_and_api_guards ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s

   Doc-tests api_types

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests pimdav

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests server

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Compiling unicode-ident v1.0.26
   Compiling futures-io v0.3.34
   Compiling once_cell v1.21.4
   Compiling smallvec v1.16.2
   Compiling unicode-segmentation v1.13.3
   Compiling or_poisoned v0.1.0
   Compiling futures-channel v0.3.34
   Compiling hashbrown v0.17.1
   Compiling parking v2.2.1
   Compiling serde_core v1.0.229
   Compiling generic-array v0.14.7
   Compiling throw_error v0.3.1
   Compiling konst_macro_rules v0.2.19
   Compiling serde_json v1.0.151
   Compiling send_wrapper v0.6.0
   Compiling either v1.18.0
   Compiling slotmap v1.1.1
   Compiling rustc-hash v2.1.3
   Compiling xxhash-rust v0.8.18
   Compiling guardian v1.3.0
   Compiling libc v0.2.189
   Compiling yansi v1.0.1
   Compiling winnow v1.0.4
   Compiling html-escape v0.2.15
   Compiling getrandom v0.4.3
   Compiling proc-macro2 v1.0.107
   Compiling wasm-bindgen-shared v0.2.129
   Compiling event-listener v5.4.2
   Compiling camino v1.2.6
   Compiling form_urlencoded v1.2.2
   Compiling either_of v0.1.9
   Compiling aho-corasick v1.1.5
   Compiling drain_filter_polyfill v0.1.3
   Compiling erased v0.1.2
   Compiling konst v0.2.20
   Compiling const_str_slice_concat v0.1.0
   Compiling next_tuple v0.1.0
   Compiling const-str v1.1.0
   Compiling pathdiff v0.2.3
   Compiling async-once-cell v0.5.4
   Compiling itertools v0.14.0
   Compiling event-listener-strategy v0.5.4
   Compiling async-lock v3.4.2
   Compiling convert_case v0.11.0
   Compiling convert_case v0.6.0
   Compiling convert_case_extras v0.2.0
   Compiling quote v1.0.47
   Compiling indexmap v2.14.2
   Compiling crypto-common v0.1.7
   Compiling block-buffer v0.10.4
   Compiling syn v3.0.6
   Compiling syn v2.0.119
   Compiling proc-macro-utils v0.10.0
   Compiling digest v0.10.7
   Compiling proc-macro-error-attr2 v2.0.0
   Compiling const_format_proc_macros v0.2.34
   Compiling sha2 v0.10.9
   Compiling regex-automata v0.4.18
   Compiling toml_parser v1.1.3+spec-1.1.0
   Compiling manyhow-macros v0.11.4
   Compiling uuid v1.26.1
   Compiling const_format v0.2.36
   Compiling toml_datetime v1.1.1+spec-1.1.0
   Compiling serde_spanned v1.1.1
   Compiling toml v1.1.6+spec-1.1.0
   Compiling config v0.15.26
   Compiling regex v1.13.1
   Compiling proc-macro-error2 v2.0.1
   Compiling proc-macro2-diagnostics v0.10.1
   Compiling server_fn_macro v0.8.10
   Compiling manyhow v0.11.4
   Compiling prettyplease v0.2.37
   Compiling synstructure v0.14.0
   Compiling wasm-bindgen-macro-support v0.2.129
   Compiling thiserror-impl v1.0.69
   Compiling quote-use-macros v0.8.4
   Compiling pin-project-internal v1.1.13
   Compiling reactive_stores_macro v0.4.3
   Compiling syn_derive v0.2.0
   Compiling typed-builder-macro v0.23.2
   Compiling server_fn_macro_default v0.8.5
   Compiling wasm_split_macros v0.2.2
   Compiling serde_derive v1.0.229
   Compiling futures-macro v0.3.34
   Compiling zerofrom-derive v0.1.8
   Compiling thiserror-impl v2.0.21
   Compiling yoke-derive v0.8.3
   Compiling zerovec-derive v0.11.6
   Compiling displaydoc v0.2.7
   Compiling derive-where v1.7.0
   Compiling async-trait v0.1.92
   Compiling quote-use v0.8.4
   Compiling attribute-derive-macro v0.10.5
   Compiling wasm_split_helpers v0.2.3
   Compiling futures-util v0.3.34
   Compiling pin-project v1.1.13
   Compiling thiserror v1.0.69
   Compiling zerofrom v0.1.8
   Compiling thiserror v2.0.21
   Compiling yoke v0.8.3
   Compiling rstml v0.12.1
   Compiling typed-builder v0.23.2
   Compiling zerovec v0.11.8
   Compiling zerotrie v0.2.5
   Compiling attribute-derive v0.10.5
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling icu_collections v2.3.0
   Compiling icu_locale_core v2.3.0
   Compiling serde v1.0.229
   Compiling icu_provider v2.3.1
   Compiling wasm-bindgen-macro v0.2.129
   Compiling leptos_hot_reload v0.8.6
   Compiling oco_ref v0.2.1
   Compiling serde_qs v0.15.0
   Compiling codee v0.3.5
   Compiling leptos_config v0.8.10
   Compiling api-types v0.1.0 (/ci/build/project/api-types)
   Compiling icu_properties v2.3.0
   Compiling icu_normalizer v2.3.0
   Compiling futures-executor v0.3.34
   Compiling futures v0.3.34
   Compiling hydration_context v0.3.1
   Compiling wasm-bindgen v0.2.129
   Compiling leptos_macro v0.8.17
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling url v2.5.8
   Compiling js-sys v0.3.106
   Compiling console_error_panic_hook v0.1.7
   Compiling wasm-bindgen-futures v0.4.79
   Compiling web-sys v0.3.106
   Compiling gloo-timers v0.4.0
   Compiling any_spawner v0.3.0
   Compiling reactive_graph v0.2.14
   Compiling reactive_stores v0.4.3
   Compiling gloo-utils v0.2.0
   Compiling tachys v0.2.18
   Compiling gloo-net v0.6.0
   Compiling wasm-streams v0.5.0
   Compiling server_fn v0.8.13
   Compiling leptos_server v0.8.7
   Compiling leptos_dom v0.8.8
   Compiling leptos v0.8.20
   Compiling web v0.1.0 (/ci/build/project/web)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 58.70s
warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
     Running unittests src/main.rs (/ci/cache/target/debug/deps/web-76a42f2b22c18228)

running 35 tests
test i18n::tests::no_duplicate_keys ... ok
test router::tests::query_pairs_round_trip ... ok
test i18n::tests::tables_are_sorted ... ok
test util::tests::format_date_drops_seconds_and_zone ... ok
test util::tests::page_numbers_keep_the_ends_and_the_neighbours ... ok
test util::tests::sort_spec_round_trips_through_its_stored_form ... ok
test uploads::tests::chunk_respects_both_caps ... ok
test views::calendar::tests::a_bar_hidden_on_a_busy_day_splits ... ok
test views::calendar::tests::a_bar_pushed_below_the_lines_is_counted_where_it_hides ... ok
test views::calendar::tests::a_lone_item_on_a_low_line_gets_no_more ... ok
test views::calendar::tests::a_weekly_rule_names_its_start_day ... ok
test views::calendar::tests::bars_split_across_weeks ... ok
test views::calendar::tests::a_rule_reads_as_words ... ok
test views::calendar::tests::busy_days_share_the_last_line_with_more ... ok
test views::calendar::tests::civil_days_round_trip ... ok
test views::calendar::tests::grid_starts_on_the_week_start ... ok
test views::calendar::tests::links_are_found_in_text ... ok
test views::calendar::tests::links_need_a_host_and_keep_balanced_brackets ... ok
test views::calendar::tests::midnight_end_is_the_next_day ... ok
test views::calendar::tests::more_counts_the_hidden_items_of_a_column ... ok
test views::calendar::tests::opened_round_trips ... ok
test views::calendar::tests::times_on_each_day ... ok
test views::calendar::tests::url_years_are_clamped ... ok
test views::contacts::tests::vcard_dates ... ok
test views::pim::tests::a_new_collection_gets_an_unused_color ... ok
test views::pim::tests::solo_toggles_between_one_and_all ... ok
test views::search::tests::highlight_empty_words_is_plain ... ok
test views::search::tests::highlight_escapes_markup ... ok
test views::search::tests::highlight_handles_non_ascii ... ok
test views::search::tests::highlight_is_case_insensitive ... ok
test views::search::tests::highlight_marks_all_words ... ok
test views::search::tests::highlight_marks_hits ... ok
test views::search::tests::highlight_no_hit_is_plain ... ok
test views::shell::tests::default_root_rules ... ok
test i18n::tests::translations_cover_all_keys ... ok

test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

successbuild6m 39s
cd web && bun install --frozen-lockfile && bun run build
bun install v1.4.2 (744846f84)

+ @codemirror/lang-cpp@6.0.3
+ @codemirror/lang-css@6.3.1
+ @codemirror/lang-html@6.4.12
+ @codemirror/lang-java@6.0.2
+ @codemirror/lang-javascript@6.2.5
+ @codemirror/lang-json@6.0.2
+ @codemirror/lang-markdown@6.5.2
+ @codemirror/lang-php@6.0.2
+ @codemirror/lang-python@6.2.1
+ @codemirror/lang-rust@6.0.2
+ @codemirror/lang-sql@6.10.0
+ @codemirror/lang-xml@6.1.0
+ @codemirror/state@6.7.6
+ @codemirror/theme-one-dark@6.1.3
+ codemirror@6.0.2

39 packages installed [54.00ms]
$ bun build cm/wrapper.js --format iife --target browser --minify --outfile cm6.js
Bundled 40 modules in 17ms

  cm6.js  1.0 MB  (entry point)

cd web && trunk build --release
2026-10-02T14:36:17.301213Z  INFO Starting trunk 0.21.14
2026-10-02T14:36:17.537516Z  INFO starting build
   Compiling proc-macro2 v1.0.107
   Compiling quote v1.0.47
   Compiling unicode-ident v1.0.26
   Compiling version_check v0.9.5
   Compiling memchr v2.8.3
   Compiling pin-project-lite v0.2.17
   Compiling wasm-bindgen-shared v0.2.129
   Compiling serde_core v1.0.229
   Compiling semver v1.0.28
   Compiling rustversion v1.0.23
   Compiling thiserror v2.0.21
   Compiling futures-core v0.3.34
   Compiling futures-sink v0.3.34
   Compiling futures-io v0.3.34
   Compiling futures-task v0.3.34
   Compiling slab v0.4.12
   Compiling bumpalo v3.20.3
   Compiling serde v1.0.229
   Compiling once_cell v1.21.4
   Compiling cfg-if v1.0.5
   Compiling stable_deref_trait v1.2.1
   Compiling unicode-segmentation v1.13.3
   Compiling writeable v0.6.4
   Compiling litemap v0.8.3
   Compiling or_poisoned v0.1.0
   Compiling zmij v1.0.23
   Compiling unicode-xid v0.2.6
   Compiling icu_normalizer_data v2.3.0
   Compiling futures-channel v0.3.34
   Compiling paste v1.0.15
   Compiling utf8_iter v1.0.4
   Compiling smallvec v1.16.2
   Compiling icu_properties_data v2.3.0
   Compiling throw_error v0.3.1
   Compiling event-listener v5.4.2
   Compiling serde_json v1.0.151
   Compiling rustc_version v0.4.1
   Compiling equivalent v1.0.2
   Compiling proc-macro2-diagnostics v0.10.1
   Compiling generic-array v0.14.7
   Compiling slotmap v1.1.1
   Compiling konst_macro_rules v0.2.19
   Compiling anyhow v1.0.104
   Compiling hashbrown v0.17.1
   Compiling camino v1.2.6
   Compiling typenum v1.20.1
   Compiling itoa v1.0.18
   Compiling send_wrapper v0.6.0
   Compiling event-listener-strategy v0.5.4
   Compiling konst v0.2.20
   Compiling convert_case v0.11.0
   Compiling server_fn_macro v0.8.10
   Compiling reactive_graph v0.2.14
   Compiling percent-encoding v2.3.2
   Compiling rustc-hash v2.1.3
   Compiling async-lock v3.4.2
   Compiling thiserror v1.0.69
   Compiling xxhash-rust v0.8.18
   Compiling either v1.18.0
   Compiling libc v0.2.189
   Compiling guardian v1.3.0
   Compiling tachys v0.2.18
   Compiling winnow v1.0.4
   Compiling prettyplease v0.2.37
   Compiling bytes v1.12.1
   Compiling yansi v1.0.1
   Compiling getrandom v0.4.3
   Compiling form_urlencoded v1.2.2
   Compiling itertools v0.14.0
   Compiling server_fn v0.8.13
   Compiling aho-corasick v1.1.5
   Compiling either_of v0.1.9
   Compiling regex-syntax v0.8.11
   Compiling erased v0.1.2
   Compiling wasm-bindgen v0.2.129
   Compiling collection_literals v1.0.3
   Compiling cpufeatures v0.2.17
   Compiling next_tuple v0.1.0
   Compiling drain_filter_polyfill v0.1.3
   Compiling const_str_slice_concat v0.1.0
   Compiling same-file v1.0.6
   Compiling html-escape v0.2.15
   Compiling interpolator v0.5.0
   Compiling walkdir v2.5.0
   Compiling syn v3.0.6
   Compiling syn v2.0.119
   Compiling proc-macro-utils v0.10.0
   Compiling indexmap v2.14.2
   Compiling proc-macro-error-attr2 v2.0.0
   Compiling const_format_proc_macros v0.2.34
   Compiling http v1.5.0
   Compiling convert_case v0.6.0
   Compiling leptos_macro v0.8.17
   Compiling base16 v0.2.1
   Compiling manyhow-macros v0.11.4
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling base64 v0.22.1
   Compiling pathdiff v0.2.3
   Compiling const-str v1.1.0
   Compiling digest v0.10.7
   Compiling toml_parser v1.1.3+spec-1.1.0
   Compiling sha2 v0.10.9
   Compiling uuid v1.26.1
   Compiling const_format v0.2.36
   Compiling convert_case_extras v0.2.0
   Compiling leptos v0.8.20
   Compiling async-once-cell v0.5.4
   Compiling regex-automata v0.4.18
   Compiling serde_spanned v1.1.1
   Compiling toml_datetime v1.1.1+spec-1.1.0
   Compiling toml v1.1.6+spec-1.1.0
   Compiling config v0.15.26
   Compiling proc-macro-error2 v2.0.1
   Compiling manyhow v0.11.4
   Compiling synstructure v0.14.0
   Compiling wasm-bindgen-macro-support v0.2.129
   Compiling syn_derive v0.2.0
   Compiling thiserror-impl v1.0.69
   Compiling quote-use-macros v0.8.4
   Compiling pin-project-internal v1.1.13
   Compiling reactive_stores_macro v0.4.3
   Compiling typed-builder-macro v0.23.2
   Compiling server_fn_macro_default v0.8.5
   Compiling wasm_split_macros v0.2.2
   Compiling regex v1.13.1
   Compiling serde_derive v1.0.229
   Compiling thiserror-impl v2.0.21
   Compiling futures-macro v0.3.34
   Compiling zerofrom-derive v0.1.8
   Compiling yoke-derive v0.8.3
   Compiling zerovec-derive v0.11.6
   Compiling displaydoc v0.2.7
   Compiling derive-where v1.7.0
   Compiling async-trait v0.1.92
   Compiling quote-use v0.8.4
   Compiling attribute-derive-macro v0.10.5
   Compiling wasm_split_helpers v0.2.3
   Compiling pin-project v1.1.13
   Compiling futures-util v0.3.34
   Compiling zerofrom v0.1.8
   Compiling typed-builder v0.23.2
   Compiling yoke v0.8.3
   Compiling rstml v0.12.1
   Compiling attribute-derive v0.10.5
   Compiling zerovec v0.11.8
   Compiling zerotrie v0.2.5
   Compiling tinystr v0.8.4
   Compiling potential_utf v0.1.6
   Compiling icu_collections v2.3.0
   Compiling icu_locale_core v2.3.0
   Compiling wasm-bindgen-macro v0.2.129
   Compiling icu_provider v2.3.1
   Compiling leptos_hot_reload v0.8.6
   Compiling oco_ref v0.2.1
   Compiling serde_qs v0.15.0
   Compiling codee v0.3.5
   Compiling leptos_config v0.8.10
   Compiling api-types v0.1.0 (/ci/build/project/api-types)
   Compiling icu_normalizer v2.3.0
   Compiling icu_properties v2.3.0
   Compiling futures-executor v0.3.34
   Compiling futures v0.3.34
   Compiling hydration_context v0.3.1
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling url v2.5.8
   Compiling js-sys v0.3.106
   Compiling console_error_panic_hook v0.1.7
   Compiling wasm-bindgen-futures v0.4.79
   Compiling web-sys v0.3.106
   Compiling gloo-timers v0.4.0
   Compiling any_spawner v0.3.0
   Compiling gloo-utils v0.2.0
   Compiling gloo-net v0.6.0
   Compiling reactive_stores v0.4.3
   Compiling wasm-streams v0.5.0
   Compiling leptos_dom v0.8.8
   Compiling leptos_server v0.8.7
   Compiling web v0.1.0 (/ci/build/project/web)
    Finished `release` profile [optimized] target(s) in 2m 25s
warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
2026-10-02T14:38:43.682646Z  INFO downloading wasm-bindgen version="0.2.129"
2026-10-02T14:38:44.679850Z  INFO installing wasm-bindgen
2026-10-02T14:39:00.785972Z  INFO applying new distribution
2026-10-02T14:39:00.786448Z  INFO success
rm -rf server/dist
cp -r web/dist server/dist
cargo build --locked --release -p server --features embedded
   Compiling proc-macro2 v1.0.107
   Compiling libc v0.2.189
   Compiling cfg-if v1.0.5
   Compiling find-msvc-tools v0.1.13
   Compiling shlex v2.0.1
   Compiling memchr v2.8.3
   Compiling serde_core v1.0.229
   Compiling autocfg v1.5.1
   Compiling pkg-config v0.3.34
   Compiling itoa v1.0.18
   Compiling log v0.4.34
   Compiling typenum v1.20.1
   Compiling stable_deref_trait v1.2.1
   Compiling pin-project-lite v0.2.17
   Compiling zerocopy v0.8.58
   Compiling bytes v1.12.1
   Compiling regex-syntax v0.8.11
   Compiling vcpkg v0.2.15
   Compiling once_cell v1.21.4
   Compiling smallvec v1.16.2
   Compiling serde v1.0.229
   Compiling bitflags v2.13.2
   Compiling futures-core v0.3.34
   Compiling litemap v0.8.3
   Compiling writeable v0.6.4
   Compiling cmov v0.5.4
   Compiling utf8_iter v1.0.4
   Compiling getrandom v0.3.4
   Compiling simd-adler32 v0.3.10
   Compiling icu_normalizer_data v2.3.0
   Compiling icu_properties_data v2.3.0
   Compiling getrandom v0.4.3
   Compiling crc32fast v1.5.2
   Compiling unicase v2.9.0
   Compiling tracing-core v0.1.36
   Compiling percent-encoding v2.3.2
   Compiling adler2 v2.0.1
   Compiling zmij v1.0.23
   Compiling num-conv v0.2.2
   Compiling minimal-lexical v0.2.1
   Compiling ctutils v0.4.2
   Compiling time-core v0.1.9
   Compiling serde_json v1.0.151
   Compiling mime_guess v2.0.5
   Compiling thiserror v1.0.69
   Compiling num-traits v0.2.19
   Compiling form_urlencoded v1.2.2
   Compiling generic-array v0.14.7
   Compiling encoding_rs v0.8.42
   Compiling miniz_oxide v0.9.1
   Compiling powerfmt v0.2.0
   Compiling zlib-rs v0.6.8
   Compiling mime v0.3.17
   Compiling time-macros v0.2.32
   Compiling deranged v0.5.8
   Compiling aho-corasick v1.1.5
   Compiling nom v7.1.3
   Compiling const-oid v0.10.2
   Compiling futures-task v0.3.34
   Compiling slab v0.4.12
   Compiling http v1.5.0
   Compiling core_detect v1.0.0
   Compiling siphasher v1.0.4
   Compiling quote v1.0.47
   Compiling multiversion_no_op v1.0.0
   Compiling httparse v1.10.1
   Compiling simdutf8 v0.1.5
   Compiling iana-time-zone v0.1.65
   Compiling scopeguard v1.2.0
   Compiling httpdate v1.0.3
   Compiling weezl v0.1.12
   Compiling phf_shared v0.12.1
   Compiling chrono-tz v0.10.4
   Compiling syn v3.0.6
   Compiling syn v2.0.119
   Compiling hybrid-array v0.4.15
   Compiling pastey v0.1.1
   Compiling foreign-types-shared v0.1.1
   Compiling lazy_static v1.5.0
   Compiling cpufeatures v0.3.1
   Compiling quick-error v2.0.1
   Compiling crossbeam-utils v0.8.23
   Compiling openssl v0.10.81
   Compiling base64 v0.21.7
   Compiling oid-registry v0.7.1
   Compiling jobserver v0.1.35
   Compiling zune-core v0.5.3
   Compiling errno v0.3.14
   Compiling socket2 v0.6.5
   Compiling signal-hook-registry v1.4.8
   Compiling mio v1.2.3
   Compiling cc v1.4.7
   Compiling foldhash v0.2.0
   Compiling tower-service v0.3.3
   Compiling http-body v1.1.0
   Compiling block-buffer v0.12.1
   Compiling crypto-common v0.2.2
   Compiling num-integer v0.1.47
   Compiling zune-jpeg v0.5.15
   Compiling hashbrown v0.17.1
   Compiling http-body-util v0.1.5
   Compiling block-buffer v0.10.4
   Compiling crypto-common v0.1.7
   Compiling rand_core v0.9.5
   Compiling thiserror v2.0.21
   Compiling foreign-types v0.3.2
   Compiling phf v0.12.1
   Compiling time v0.3.55
   Compiling num-bigint v0.4.8
   Compiling grep-matcher v0.1.9
   Compiling miniz_oxide v0.8.9
   Compiling regex-automata v0.4.18
   Compiling fdeflate v0.3.7
   Compiling futures-channel v0.3.34
   Compiling ahash v0.8.12
   Compiling xml v1.4.0
   Compiling byteorder-lite v0.1.0
   Compiling same-file v1.0.6
   Compiling utf8parse v0.2.2
   Compiling glob v0.3.4
   Compiling pxfm v0.1.30
   Compiling color_quant v1.1.0
   Compiling rustix v1.1.5
   Compiling tower-layer v0.3.3
   Compiling fax v0.2.7
   Compiling crossbeam-epoch v0.9.21
   Compiling digest v0.11.3
   Compiling rusticata-macros v4.1.0
   Compiling flate2 v1.1.10
   Compiling webauthn-attestation-ca v0.5.5
   Compiling sha2 v0.11.0
   Compiling encoding_rs_io v0.1.8
   Compiling gif v0.14.2
   Compiling image-webp v0.2.4
   Compiling anstyle-parse v1.0.0
   Compiling walkdir v2.5.0
   Compiling digest v0.10.7
   Compiling memmap2 v0.9.11
   Compiling uuid v1.26.1
   Compiling png v0.18.1
   Compiling bytemuck v1.25.2
   Compiling openssl-sys v0.9.117
   Compiling zstd-sys v2.1.0+zstd.1.5.7
   Compiling libsqlite3-sys v0.38.2
   Compiling libwebp-sys v0.9.6
   Compiling tikv-jemalloc-sys v0.6.1+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7
   Compiling sync_wrapper v1.0.2
   Compiling base64ct v1.8.3
   Compiling webauthn-rs-core v0.5.5
   Compiling data-encoding v2.11.1
   Compiling is_terminal_polyfill v1.70.2
   Compiling anstyle-query v1.1.5
   Compiling colorchoice v1.0.5
   Compiling termcolor v1.4.1
   Compiling anstyle v1.0.14
   Compiling atomic-waker v1.1.2
   Compiling cpufeatures v0.2.17
   Compiling zstd-safe v8.0.0
   Compiling crossbeam-deque v0.8.8
   Compiling linux-raw-sys v0.12.1
   Compiling anstream v1.0.0
   Compiling phc v0.6.1
   Compiling sha1 v0.10.7
   Compiling rust-embed-utils v8.12.0
   Compiling xmltree v0.12.0
   Compiling headers-core v0.3.0
   Compiling multer v3.1.0
   Compiling litrs v1.0.0
   Compiling hex v0.4.3
   Compiling mail-builder v1.0.0
   Compiling futures-sink v0.3.34
   Compiling clap_lex v1.1.1
   Compiling equivalent v1.0.2
   Compiling base64 v0.22.1
   Compiling ryu v1.0.23
   Compiling strsim v0.11.1
   Compiling heck v0.5.0
   Compiling tinyvec v1.13.3
   Compiling synstructure v0.13.2
   Compiling indexmap v2.14.2
   Compiling anyhow v1.0.104
   Compiling synstructure v0.14.0
   Compiling document-features v0.2.12
   Compiling headers v0.4.2
   Compiling clap_builder v4.6.7
   Compiling moxcms v0.8.1
   Compiling password-hash v0.6.1
   Compiling serde_path_to_error v0.1.20
   Compiling unicode-normalization v0.1.25
   Compiling xml-rs v1.0.0
   Compiling blake2 v0.11.0
   Compiling hashlink v0.12.2
   Compiling filetime v0.2.29
   Compiling sharded-slab v0.1.7
   Compiling tracing-log v0.2.0
   Compiling thread_local v1.1.10
   Compiling http-range-header v0.4.2
   Compiling fallible-iterator v0.3.0
   Compiling fallible-streaming-iterator v0.1.9
   Compiling spin v0.9.9
   Compiling typed-path v0.12.3
   Compiling dyn-clone v1.0.20
   Compiling nu-ansi-term v0.50.3
   Compiling htmlescape v0.3.1
   Compiling matchit v0.8.4
   Compiling argon2 v0.6.0
   Compiling infer v0.22.0
   Compiling bstr v1.13.1
   Compiling regex v1.13.1
   Compiling matchers v0.2.0
   Compiling serde_derive v1.0.229
   Compiling zerofrom-derive v0.1.8
   Compiling displaydoc v0.2.7
   Compiling yoke-derive v0.8.3
   Compiling zerocopy-derive v0.8.58
   Compiling zerovec-derive v0.11.6
   Compiling tracing-attributes v0.1.31
   Compiling tokio-macros v2.7.2
   Compiling thiserror-impl v1.0.69
   Compiling asn1-rs-impl v0.2.0
   Compiling asn1-rs-derive v0.5.1
   Compiling futures-macro v0.3.34
   Compiling openssl-macros v0.1.1
   Compiling thiserror-impl v2.0.21
   Compiling globset v0.4.20
   Compiling hashify v0.2.9
   Compiling tokio v1.53.1
   Compiling grep-searcher v0.1.17
   Compiling zerofrom v0.1.8
   Compiling xattr v1.6.1
   Compiling grep-cli v0.1.12
   Compiling yoke v0.8.3
   Compiling futures-util v0.3.34
   Compiling grep-regex v0.1.14
   Compiling zerovec v0.11.8
   Compiling zerotrie v0.2.5
   Compiling rust-embed-impl v8.12.0
   Compiling clap_derive v4.6.7
   Compiling asn1-rs v0.6.2
   Compiling tracing v0.1.44
   Compiling derive-where v1.7.0
   Compiling mail-parser v0.11.9
   Compiling axum-core v0.5.6
   Compiling tracing-subscriber v0.3.23
   Compiling tar v0.4.46
   Compiling tinystr v0.8.4
   Compiling icu_locale_core v2.3.0
   Compiling potential_utf v0.1.6
   Compiling rust-embed v8.12.0
   Compiling ignore v0.4.33
   Compiling icu_collections v2.3.0
   Compiling zip v9.0.0-pre3
   Compiling der-parser v9.0.0
   Compiling icu_provider v2.3.1
   Compiling icu_properties v2.3.0
   Compiling icu_normalizer v2.3.0
   Compiling x509-parser v0.16.0
   Compiling clap v4.6.7
   Compiling chrono v0.4.45
   Compiling base64urlsafedata v0.5.5
   Compiling serde_urlencoded v0.7.1
   Compiling grep-printer v0.3.1
   Compiling api-types v0.1.0 (/ci/build/project/api-types)
   Compiling grep v0.4.1
   Compiling idna_adapter v1.2.2
   Compiling idna v1.1.0
   Compiling url v2.5.8
   Compiling hyper v1.11.1
   Compiling tokio-util v0.7.19
   Compiling tower v0.5.3
   Compiling webauthn-rs-proto v0.5.5
   Compiling dav-server v0.11.0
   Compiling tower-http v0.7.1
   Compiling half v2.7.1
   Compiling ppv-lite86 v0.2.21
   Compiling tiff v0.11.3
   Compiling serde_cbor_2 v0.13.0
   Compiling hyper-util v0.1.21
   Compiling rand_chacha v0.9.0
   Compiling axum v0.8.9
   Compiling rand v0.9.5
   Compiling image v0.25.10
   Compiling webauthn-rs v0.5.5
   Compiling rrule v0.14.0
   Compiling calcard v0.3.14
   Compiling fast_image_resize v6.1.0
   Compiling webp v0.3.1
   Compiling pimdav v0.1.0 (/ci/build/project/pimdav)
   Compiling tikv-jemallocator v0.6.1
   Compiling rusqlite v0.40.2
   Compiling zstd v0.14.0
   Compiling server v0.1.0 (/ci/build/project/server)
    Finished `release` profile [optimized] target(s) in 3m 55s
successe2e1m 41s
   Compiling digest v0.11.3
   Compiling rust-embed-utils v8.12.0
   Compiling sha2 v0.11.0
   Compiling rust-embed-impl v8.12.0
   Compiling rust-embed v8.12.0
   Compiling server v0.1.0 (/ci/build/project/server)
    Finished `test` profile [unoptimized + debuginfo] target(s) in 34.19s
     Running unittests src/lib.rs (/ci/cache/target/debug/deps/server-e4993504c103162b)

running 104 tests
test api::search::tests::excludes_cover_descendants_but_not_name_siblings ... ok
test api::search::tests::join_rel_lifts_a_path_to_the_server_root ... ok
test api::search::tests::name_match_ignores_the_parent_path ... ok
test api::search::tests::name_match_needs_every_word ... ok
test api::common::tests::share_query_field_is_p_share ... ok
test api::search::tests::truncation_caps_length ... ok
test api::search::tests::query_fields_are_the_shared_constants ... ok
test api::files::tests::query_fields_are_the_shared_constants ... ok
test api::search::tests::truncation_keeps_utf8_boundary ... ok
test api::search::tests::truncation_strips_terminator ... ok
test archive::tests::format_metadata ... ok
test archive::tests::format_parsing ... ok
test api::files::tests::publish_refuses_an_existing_target_without_overwrite ... ok
test archive::tests::build_fails_on_missing_dir ... ok
test api::pim_schedule::tests::a_rule_running_on_has_not_ended_and_costs_nothing ... ok
test auth::tests::login_delay_grows_after_free_tries ... ok
test auth::tests::parse_session_cookie_variants ... ok
test auth::tests::session_cookie_shape ... ok
test auth::tests::share_cookie_is_per_share_and_session_scoped ... ok
test auth::tests::verify_rejects_garbage_hashes ... ok
test cli::tests::defaults_applied ... ok
test cli::tests::flags_override_defaults ... ok
test archive::tests::walk_is_sorted_case_insensitively ... ok
test archive::tests::tar_round_trip ... ok
test db::tests::share_expiry_logic ... ok
test cli::tests::required_args_enforced ... ok
test archive::tests::tar_gz_round_trip ... ok
test auth::tests::token_shapes_and_uniqueness ... ok
test archive::tests::tar_zst_round_trip ... ok
test error::tests::io_error_maps_to_500 ... ok
test error::tests::non_object_extra_is_ignored ... ok
test error::tests::plain_error_body ... ok
test error::tests::extra_object_is_merged_into_body ... ok
test archive::tests::zip_round_trip ... ok
test fs::tests::copy_recursive_missing_source ... ok
test fs::tests::is_within_or_eq_matrix ... ok
test fs::tests::detect_kind_reads_from_disk ... ok
test fs::tests::copy_refuses_into_self_and_handles_conflict ... ok
test fs::tests::list_dir_error_cases ... ok
test fs::tests::copy_file_and_dir_preserves_mtime ... ok
test fs::tests::magic_numbers_classify_by_content ... ok
test fs::tests::list_dir_reports_broken_symlink_as_empty_file ... ok
test fs::tests::list_dir_reports_kinds ... ok
test fs::tests::mkdir_rejects_conflict_and_bad_names ... ok
test fs::tests::mkdir_creates_nested_dirs ... ok
test fs::tests::list_dir_sorts_folders_first_then_case_insensitive ... ok
test fs::tests::move_file_and_dir_across_dirs ... ok
test fs::tests::list_dir_pages_the_sorted_listing ... ok
test fs::tests::remove_file_and_dir ... ok
test fs::tests::rename_conflicts_and_overwrite ... ok
test fs::tests::rename_validates_new_name ... ok
test fs::tests::rename_moves_file_and_dir ... ok
test fs::tests::move_refuses_into_self_and_conflicts ... ok
test fs::tests::resolve_dir_requires_existing_directory ... ok
test fs::tests::resolve_file_targets_files ... ok
test fs::tests::resolve_path_missing_is_not_found ... ok
test fs::tests::resolve_path_rejects_parent_traversal ... ok
test fs::tests::resolve_path_traverses_inside_root ... ok
test fs::tests::resolve_path_rejects_symlink_escape ... ok
test fs::tests::resolve_root_rejects_escape_and_missing ... ok
test fs::tests::resolve_root_whole_root_and_subdir ... ok
test fs::tests::resolve_root_rejects_symlink_escape ... ok
test fs::tests::sort_keeps_folders_first_in_every_order ... ok
test fs::tests::sort_orders_by_the_chosen_key ... ok
test fs::tests::svg_is_offered_as_an_image ... ok
test fs::tests::save_file_error_cases ... ok
test fs::tests::truncated_utf8_at_the_read_boundary_is_still_text ... ok
test fs::tests::unsigned_files_fall_back_to_the_text_heuristic ... ok
test fs::tests::validate_name_accepts_simple_names ... ok
test fs::tests::validate_name_rejects_traversal_and_paths ... ok
test tests::build_app_missing_root_fails ... ok
test fs::tests::parallel_rows_match_serial ... ok
test fs::tests::sniff_permit_never_exceeds_the_budget ... ok
test thumb::tests::a_hit_refreshes_a_stale_entry_only ... ok
test tests::build_app_root_must_be_directory ... ok
test thumb::tests::an_edit_changes_the_cache_key ... ok
test thumb::tests::the_key_fans_out_into_a_bucket ... ok
test thumb::tests::two_writes_of_one_entry_use_different_scratch_names ... ok
test webauthn::tests::a_browser_on_another_origin_is_refused ... ok
test thumb::tests::the_sweeper_drops_only_cold_entries ... ok
test webauthn::tests::a_handle_answers_once ... ok
test db::tests::fresh_db_state ... ok
test tests::build_app_ok ... ok
test tests::build_app_custom_port_bind ... ok
test db::tests::v1_db_migrates_to_v2 ... ok
test db::tests::deleted_defaults_come_back ... ok
test db::tests::sessions_lifecycle ... ok
test db::tests::app_passwords_open_one_account_and_stamp_their_use ... ok
test db::tests::share_unlocks_are_bound_to_one_share ... ok
test db::tests::the_sweep_drops_expired_shares_and_stale_unlocks ... ok
test db::tests::settings_round_trip ... ok
test db::tests::setup_is_won_by_exactly_one_caller ... ok
test db::tests::revoking_a_path_takes_its_descendants_only ... ok
test db::tests::pim_patch_keeps_concurrent_changes ... ok
test webauthn::tests::a_flood_of_strangers_stays_bounded_and_spares_a_sign_in ... ok
test db::tests::an_admin_password_reset_revokes_the_app_passwords ... ok
test db::tests::shares_crud ... ok
test fs::tests::save_file_conflict_on_stale_mtime ... ok
test fs::tests::save_file_updates_content_and_returns_new_mtime ... ok
test db::tests::rooms_are_principals_not_accounts ... ok
test db::tests::changing_a_password_drops_that_users_sessions ... ok
test auth::tests::password_hash_round_trip ... ok
test db::tests::admin_user_and_passwords ... ok
test db::tests::user_crud_and_roots ... ok

test result: ok. 104 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.27s

     Running unittests src/main.rs (/ci/cache/target/debug/deps/dovenest-9c673fad76cbd27f)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

     Running tests/api/main.rs (/ci/cache/target/debug/deps/api-edf8b2b5dcfa755a)

running 274 tests
test auth::first_boot_me_reports_first_boot ... ok
test auth::setup_validates_input ... ok
test app_passwords::the_list_never_shows_a_secret_and_the_count_is_capped ... ok
test app_passwords::the_routes_need_a_session ... ok
test admin::update_unknown_user_is_404 ... ok
test auth::me_requires_valid_session ... ok
test admin::settings_round_trip_visible_in_me ... ok
test auth::setup_creates_admin_and_sets_cookie ... ok
test auth::week_start_defaults_to_monday_and_is_validated ... ok
test auth::logout_invalidates_session ... ok
test auth::public_url_reaches_client ... ok
test dav::a_browser_get_of_a_collection_returns_a_listing ... ok
test dav::a_dangling_symlink_is_not_a_writable_destination ... ok
test admin::lockout_guards ... ok
test app_passwords::an_app_password_mounts_an_account_that_requires_a_passkey ... ok
test dav::a_copy_and_a_put_to_one_path_do_not_interleave ... ok
test dav::a_path_that_climbs_out_of_the_mount_is_not_a_server_error ... ok
test app_passwords::revoking_one_closes_the_mount_immediately ... ok
test auth::default_root_is_validated_and_dropped_with_its_root ... ok
test app_passwords::an_app_password_opens_webdav_and_nothing_else ... ok
test dav::a_dangling_symlink_is_still_listed ... ok
test admin::admin_routes_require_admin ... ok
test dav::a_listing_escapes_entry_names ... ok
test dav::a_scriptable_file_is_sandboxed_over_dav ... ok
test dav::a_listing_omits_dotfiles ... ok
test dav::a_listing_still_shows_a_symlink_as_its_target ... ok
test admin::admins_can_browse_the_server_root_read_only ... ok
test dav::a_lock_is_reported_and_its_timeout_is_capped ... ok
test auth::root_name_is_configurable ... ok
test dav::a_session_cookie_works_instead_of_basic ... ok
test dav::a_share_mounts_at_its_own_root_without_a_login ... ok
test dav::a_writable_share_can_be_written_and_expiry_ends_it ... ok
test dav::an_encoded_slash_does_not_split_the_share_token ... ok
test auth::login_flows ... ok
test dav::a_mount_cannot_leave_its_roots ... ok
test auth::disabled_user_loses_session_and_cannot_login ... ok
test dav::a_move_cannot_wipe_a_root_through_its_destination ... ok
test dav::a_read_only_root_can_still_be_copied_out_of ... ok
test dav::get_and_put_round_trip_through_the_mount ... ok
test dav::a_read_only_root_refuses_every_write ... ok
test dav::locks_are_scoped_to_their_own_path ... ok
test embedded::embedded_frontend_is_complete ... ok
test dav::an_exclusive_lock_blocks_everyone_without_the_token ... ok
test dav::concurrent_writers_leave_a_whole_file ... ok
test dav::copy_replaces_a_symlink_instead_of_writing_through_it ... ok
test dav::deep_xml_bodies_are_refused ... ok
test dav::deleting_a_shared_path_over_webdav_revokes_the_share ... ok
test dav::mkcol_move_copy_and_delete ... ok
test dav::deleting_a_symlink_does_not_revoke_its_targets_share ... ok
test dav::moving_a_symlinked_directory_moves_the_link ... ok
test dav::an_abandoned_lock_expires ... ok
test dav::propfind_lists_the_roots_then_their_contents ... ok
test dav::deleting_a_symlink_removes_the_link_not_its_target ... ok
test dav::deleting_a_symlinked_directory_does_not_empty_its_target ... ok
test dav::a_share_password_with_edge_spaces_opens_the_mount ... ok
test dav::deleting_the_mount_point_removes_nothing ... ok
test dav::a_protected_share_asks_for_its_password_over_basic ... ok
test files::a_dangling_symlink_can_be_deleted ... ok
test files::a_symlink_out_of_the_root_still_cannot_be_read_or_written ... ok
test files::an_interrupted_upload_leaves_no_scratch_file ... ok
test files::archive_does_not_follow_symlinks_out_of_the_root ... ok
test files::content_action_serves_raw_bytes_with_mtime ... ok
test files::content_is_capped_at_two_mibibytes ... ok
test files::copying_a_symlink_copies_what_it_points_at ... ok
test dav::deleting_a_root_removes_nothing ... ok
test files::copying_onto_a_symlink_replaces_it ... ok
test files::delete_file_and_folder ... ok
test files::deleting_a_symlink_removes_the_link_not_its_target ... ok
test app_passwords::app_passwords_are_private_to_their_account ... ok
test files::download_encodes_non_ascii_and_control_characters_in_filename ... ok
test files::download_folder_as_all_archive_formats ... ok
test files::download_folder_requires_valid_format ... ok
test dav::a_changed_password_locks_the_mount_out_at_once ... ok
test files::download_honours_single_byte_ranges ... ok
test files::download_revalidates_with_last_modified ... ok
test files::download_single_file ... ok
test files::editor_save_over_two_mibibytes_is_rejected_with_the_localized_error ... ok
test files::editor_save_round_trip_and_conflict ... ok
test dav::unauthenticated_requests_get_a_basic_challenge ... ok
test files::exists_check_does_not_follow_symlinked_directories_out_of_the_root ... ok
test files::file_dated_before_1970_is_served ... ok
test files::list_root_sorted_folders_first ... ok
test files::list_subdir_and_errors ... ok
test files::listing_is_paged_in_the_requested_order ... ok
test files::listing_reports_sniffed_kinds ... ok
test files::mkdir_and_rename ... ok
test files::move_and_copy_across_dirs ... ok
test files::moving_a_symlink_moves_the_link ... ok
test files::path_traversal_is_blocked ... ok
test files::preview_serves_inline_and_rejects_dirs ... ok
test files::renaming_a_symlink_renames_the_link ... ok
test files::revalidation_keeps_the_file_policy ... ok
test files::scriptable_files_are_served_sandboxed ... ok
test files::upload_creates_files_and_folders ... ok
test files::upload_does_not_follow_symlinked_directories_out_of_the_root ... ok
test files::upload_does_not_clobber_a_file_created_during_the_transfer ... ok
test passkeys::a_challenge_for_an_unknown_name_can_never_sign_anyone_in ... ok
test passkeys::a_handle_cannot_be_answered_twice_or_invented ... ok
test passkeys::a_conditional_challenge_asks_for_autofill_mediation ... ok
test passkeys::a_registration_handle_cannot_be_used_to_sign_in ... ok
test passkeys::a_second_spelling_of_a_name_gives_nothing_away ... ok
test passkeys::a_short_new_password_is_refused ... ok
test passkeys::an_account_cannot_hold_more_passkeys_than_a_challenge_lists ... ok
test passkeys::an_invented_login_handle_is_refused ... ok
test admin::user_lifecycle ... ok
test passkeys::decoy_credentials_stay_the_same_between_requests ... ok
test passkeys::every_credential_route_needs_a_session ... ok
test passkeys::one_of_several_passkeys_can_always_go ... ok
test passkeys::registration_asks_the_authenticator_to_store_the_credential ... ok
test passkeys::requiring_both_blocks_removing_either_half ... ok
test passkeys::requiring_both_needs_both_to_exist ... ok
test files::exists_check_reports_targets_without_creating_anything ... ok
test passkeys::the_last_passkey_cannot_go_while_there_is_no_password ... ok
test passkeys::a_wrong_password_reveals_nothing_about_the_second_factor ... ok
test passkeys::the_password_cannot_go_while_it_is_the_only_credential ... ok
test passkeys::beginning_a_passkey_sign_in_never_says_whether_a_name_exists ... ok
test files::read_only_root_blocks_writes_but_allows_reads ... ok
test passkeys::deleting_an_account_takes_its_passkeys_with_it ... ok
test files::user_cannot_touch_foreign_root ... ok
test passkeys::removing_the_password_leaves_a_passkey_only_account ... ok
test passkeys::a_passkey_only_account_can_set_a_password_again ... ok
test passkeys::signing_in_works_on_a_host_passkeys_cannot_use ... ok
test passkeys::the_password_alone_never_signs_in_an_account_that_requires_both ... ok
test passkeys::another_accounts_passkey_is_out_of_reach ... ok
test dav::two_users_with_same_named_roots_do_not_share_locks ... ok
test pim::a_taken_slug_leaves_the_first_collection_alone ... ok
test passkeys::the_passkey_first_order_signs_in_only_with_the_right_password ... ok
test passkeys::the_passkey_list_is_per_account_and_carries_no_key_material ... ok
test passkeys::an_admin_password_clears_the_passkeys_and_the_requirement ... ok
test passkeys::changing_the_password_ends_every_other_session ... ok
test passkeys::webdav_refuses_an_account_that_requires_a_passkey ... ok
test pim::a_cut_initial_sync_resumes_past_pruned_tombstones ... ok
test pim::a_cut_initial_sync_survives_writes_between_its_pages ... ok
test pim::deleting_a_missing_object_records_no_change ... ok
test pim::deleting_a_user_deletes_their_collections ... ok
test pim::a_put_racing_the_collection_delete_never_fails_with_500 ... ok
test pim::a_proppatch_whose_collection_goes_while_its_body_arrives_is_not_a_500 ... ok
test pim::address_objects ... ok
test pim::addressbook_reports ... ok
test pim::homes_list_the_default_collections ... ok
test pim::bad_filters_are_refused_by_name ... ok
test pim::calendar_objects ... ok
test pim::calendar_reports ... ok
test pim::hrefs_follow_the_requested_spelling ... ok
test pim::dead_properties_are_capped_in_total ... ok
test pim::a_deleted_user_gets_the_login_challenge ... ok
test pim::expand_answers_are_capped ... ok
test pim::long_names_and_405s ... ok
test pim::make_and_patch_collections ... ok
test pim::missing_dtstamp_is_added ... ok
test pim::mkcol_checks_target_and_values ... ok
test pim::mkcol_refuses_long_slugs_and_the_101st_collection ... ok
test pim::move_objects ... ok
test pim::moving_an_object_onto_itself_changes_nothing ... ok
test pim::of_two_deletes_of_one_collection_only_one_succeeds ... ok
test pim::multiget_answers_each_href_once_and_caps_the_count ... ok
test pim::discovery ... ok
test pim::other_users_are_off_limits ... ok
test pim::proppatch_follows_document_order ... ok
test pim::pruned_tombstones_invalidate_old_sync_tokens ... ok
test pim::sync_collection ... ok
test pim::the_default_calendar_stays ... ok
test pim::principal_search ... ok
test pim_clients::discovery_by_get_and_from_the_root ... ok
test pim_clients::vcard_three_for_apple ... ok
test pim::system_address_book ... ok
test pim::expand_answers_are_capped_in_bytes ... ok
test pim::other_accounts_get_no_client_properties_or_loans_of_disabled_owners ... ok
test pim::lent_collections ... ok
test pim_derived::admin_sees_and_revokes_feeds ... ok
test pim_io::collection_names_and_descriptions_are_checked ... ok
test pim_io::a_skipped_import_into_a_new_user_leaves_only_the_default_calendar ... ok
test pim_io::an_import_racing_the_collection_delete_never_fails_with_500 ... ok
test pim_derived::birthday_calendar ... ok
test pim_io::export_round_trip ... ok
test pim_derived::own_shares_list_only_mine ... ok
test pim_clients::client_properties_are_stored ... ok
test pim_derived::photos_without_a_cache ... ok
test pim_io::a_feed_password_matches_with_edge_spaces ... ok
test pim_io::a_loan_to_a_disabled_user_takes_a_new_mode ... ok
test pim_io::import_as_a_new_collection ... ok
test pim_io::feeds_of_a_disabled_owner_stop ... ok
test pim_derived::contact_photos ... ok
test pim_io::an_import_of_meetings_long_over_sends_nothing ... ok
test pim::rooms_and_resources ... ok
test pim_io::import_splits_and_updates ... ok
test pim_clients::addresses_and_logins_for_unusual_names ... ok
test pim_io::the_web_api_keeps_the_dav_limits ... ok
test pim_schedule::a_delete_that_matches_nothing_writes_nothing ... ok
test pim_io::import_schedules_like_a_put_and_keeps_uniqueness ... ok
test pim_schedule::a_plain_event_with_the_same_uid_does_not_block_a_meeting ... ok
test pim_schedule::find_uid_prefers_the_scheduling_copy ... ok
test pim_schedule::deleting_a_calendar_cancels_its_meetings ... ok
test pim_io::share_candidates_leave_out_owner_borrowers_and_disabled ... ok
test pim_schedule::discovery_names_inbox_and_outbox ... ok
test pim_schedule::free_busy_answers_each_principal_once_and_caps_the_attendees ... ok
test pim_schedule::a_disabled_attendee_keeps_getting_updates_and_cancels ... ok
test pim_schedule::attendees_have_limits ... ok
test pim_schedule::move_does_not_overwrite_a_meeting ... ok
test pim_derived::deleted_principals_are_forgotten ... ok
test pim_schedule::deleting_a_user_forgets_an_address_split_by_a_fold ... ok
test pim_schedule::deleting_an_organizer_cancels_and_forgets_it ... ok
test pim_schedule::one_resource_per_scheduled_uid ... ok
test pim_schedule::invitations_go_to_the_chosen_calendar ... ok
test pim_schedule::outbox_answers_free_busy ... ok
test pim_io::feeds ... ok
test pim_schedule::invite_and_answer ... ok
test pim_schedule::imports_on_a_plain_loan_skip_meetings ... ok
test pim_schedule::move_stays_with_one_owner ... ok
test pim_schedule::organizer_changes_reach_attendees ... ok
test pim_schedule::a_plain_loan_may_bump_the_sequence ... ok
test pim_schedule::foreign_uids_are_not_overwritten ... ok
test search::backslash_paths_are_normalised_before_trimming ... ok
test pim_schedule::a_quiet_import_keeps_the_attendees_answers ... ok
test search::both_scopes_stream_from_one_walk ... ok
test pim_schedule::replies_need_a_listed_attendee ... ok
test search::exclude_list_is_normalised ... ok
test search::excluded_folders_never_appear_in_results ... ok
test search::hidden_and_gitignored_entries_are_searched ... ok
test pim_schedule::rooms_answer_from_their_bookings ... ok
test search::name_scope_ignores_the_parent_path ... ok
test search::path_narrows_the_walk_to_a_subfolder ... ok
test search::search_rejects_bad_input_and_anonymous_callers ... ok
test shares::a_root_can_be_shared_and_keeps_a_name ... ok
test shares::a_share_password_must_be_long_enough ... ok
test shares::a_share_token_cannot_read_the_admin_listing ... ok
test pim_schedule::rooms_check_series_to_their_horizon ... ok
test pim_schedule::rooms_receive_bookings ... ok
test shares::create_list_and_delete_shares ... ok
test shares::mutating_a_target_revokes_its_shares ... ok
test shares::read_only_share_blocks_writes_writable_share_allows ... ok
test shares::share_expiry ... ok
test shares::share_expiry_must_be_rfc3339 ... ok
test shares::share_folder_browsing_and_download_anonymously ... ok
test shares::share_of_a_single_file ... ok
test shares::share_scopes_a_signed_in_user ... ok
test shares::share_target_validation ... ok
test thumbs::a_small_video_is_not_upscaled ... ok
test shares::share_token_is_not_the_creators_identity ... ok
test shares::unlocking_an_open_share_is_rejected ... ok
test thumbs::a_video_gets_a_thumbnail_of_one_frame ... ok
test thumbs::a_video_without_ffmpeg_caches_nothing ... ok
test shares::writable_shares_gated_by_setting ... ok
test thumbs::a_broken_image_fails_once_and_is_remembered ... ok
test shares::a_subfolder_share_by_empty_path_is_unaffected ... ok
test thumbs::a_folder_has_no_thumbnail ... ok
test shares::an_admin_can_end_a_share_the_creator_can_no_longer_reach ... ok
test pim_ui::feeds_are_capped_and_never_born_expired ... ok
test thumbs::a_share_scopes_thumbnails_to_the_shared_folder ... ok
test pim_schedule::deleting_a_disabled_user_retracts_its_meetings ... ok
test thumbs::a_text_file_has_no_thumbnail ... ok
test thumbs::a_transparent_png_is_flattened_onto_white ... ok
test shares::read_only_root_cannot_be_shared_writably ... ok
test pim_ui::the_default_calendar_can_be_chosen ... ok
test pim_ui::an_instance_a_range_moved_shows_the_ranges_text ... ok
test pim_ui::collections_can_be_created_changed_and_deleted ... ok
test thumbs::an_image_smaller_than_the_cap_is_not_upscaled ... ok
test pim_ui::contacts_are_searched_across_books ... ok
test thumbs::an_image_gets_a_webp_thumbnail ... ok
test pim_ui::instances_expand_readable_calendars ... ok
test thumbs::thumbnails_are_off_without_a_cache_folder ... ok
test pim_ui::invitations_are_listed_and_answered ... ok
test thumbs::the_response_is_immutable ... ok
test thumbs::the_profile_setting_round_trips ... ok
test thumbs::concurrent_requests_for_one_file_all_get_the_thumbnail ... ok
test pim_ui::object_detail_for_events_and_contacts ... ok
test thumbs::the_second_request_is_served_from_the_cache ... ok
test thumbs::editing_the_file_makes_a_new_cache_entry ... ok
test pim_ui::tasks_are_not_instances ... ok
test shares::unlocking_a_file_share_returns_its_kind ... ok
test shares::a_password_locks_the_share_and_its_files ... ok
test shares::an_admin_sees_every_share_with_its_creator ... ok
test pim_schedule::sharees_schedule_only_when_allowed ... ok
test thumbs::another_users_root_is_still_out_of_reach ... ok

test result: ok. 274 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 63.99s

     Running tests/api_spa.rs (/ci/cache/target/debug/deps/api_spa-8c7fd323986114c8)

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

   Doc-tests server

running 0 tests

test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s

skippedrelease0s
Skipped: condition not met
successimage10s
Login Succeeded!
[2/3] STEP 1/2: FROM scratch AS prebuilt
[2/3] STEP 2/2: COPY ci-bin/dovenest /dovenest
--> 127ecefcfd05
[3/3] STEP 1/9: FROM alpine:3.24
[3/3] STEP 2/9: ARG BIN_STAGE=build
--> Using cache 0b70d252b943a9e24a19b44d514e6a5fe383be1ff62f3d697a6ea400790477a5
--> 0b70d252b943
[3/3] STEP 3/9: RUN apk add --no-cache ca-certificates ffmpeg     && mkdir -p /data /var/lib/dovenest /var/cache/dovenest
(  1/108) Installing ca-certificates (20260909-r0)
(  2/108) Installing libSvtAv1Enc (4.1.0-r0)
(  3/108) Installing aom-libs (3.14.1-r0)
(  4/108) Installing libxau (1.0.12-r0)
(  5/108) Installing libmd (1.2.0-r0)
(  6/108) Installing libbsd (0.12.2-r0)
(  7/108) Installing libxdmcp (1.1.5-r1)
(  8/108) Installing libxcb (1.17.0-r2)
(  9/108) Installing libx11 (1.8.13-r0)
( 10/108) Installing hwdata-pci (0.408-r0)
( 11/108) Installing libpciaccess (0.19-r0)
( 12/108) Installing libdrm (2.4.134-r0)
( 13/108) Installing libxext (1.3.7-r0)
( 14/108) Installing libxfixes (6.0.2-r0)
( 15/108) Installing libffi (3.5.2-r1)
( 16/108) Installing wayland-libs-client (1.25.0-r0)
( 17/108) Installing libva (2.23.0-r0)
( 18/108) Installing libvdpau (1.5-r4)
( 19/108) Installing libgcc (15.2.0-r5)
( 20/108) Installing libstdc++ (15.2.0-r5)
( 21/108) Installing libvpl (2.15.0-r1)
( 22/108) Installing ffmpeg-libavutil (8.1.2-r0)
( 23/108) Installing libdav1d (1.5.3-r0)
( 24/108) Installing brotli-libs (1.2.0-r1)
( 25/108) Installing libhwy (1.3.0-r0)
( 26/108) Installing lcms2 (2.19-r0)
( 27/108) Installing libjxl (0.11.2-r1)
( 28/108) Installing lame-libs (3.100-r5)
( 29/108) Installing opus (1.6.1-r0)
( 30/108) Installing rav1e-libs (0.8.1-r0)
( 31/108) Installing libgomp (15.2.0-r5)
( 32/108) Installing soxr (0.1.3-r7)
( 33/108) Installing ffmpeg-libswresample (8.1.2-r0)
( 34/108) Installing libogg (1.3.6-r0)
( 35/108) Installing libtheora (1.2.0-r1)
( 36/108) Installing libvorbis (1.3.7-r2)
( 37/108) Installing libvpx (1.15.2-r1)
( 38/108) Installing libsharpyuv (1.6.0-r0)
( 39/108) Installing libwebp (1.6.0-r0)
( 40/108) Installing libwebpmux (1.6.0-r0)
( 41/108) Installing x264-libs (0.164.3108-r1)
( 42/108) Installing numactl (2.0.19-r0)
( 43/108) Installing x265-libs (4.1-r0)
( 44/108) Installing xvidcore (1.3.7-r2)
( 45/108) Installing ffmpeg-libavcodec (8.1.2-r0)
( 46/108) Installing alsa-lib (1.2.15.3-r0)
( 47/108) Installing libexpat (2.8.5-r0)
( 48/108) Installing libbz2 (1.0.8-r6)
( 49/108) Installing libpng (1.6.59-r0)
( 50/108) Installing freetype (2.14.3-r0)
( 51/108) Installing fontconfig (2.17.1-r1)
( 52/108) Installing fribidi (1.0.16-r3)
( 53/108) Installing libintl (1.0-r0)
( 54/108) Installing libeconf (0.8.3-r0)
( 55/108) Installing libblkid (2.42.3-r1)
( 56/108) Installing libmount (2.42.3-r1)
( 57/108) Installing pcre2 (10.49-r0)
( 58/108) Installing glib (2.88.1-r1)
( 59/108) Installing graphite2 (1.3.14-r6)
( 60/108) Installing harfbuzz (13.2.1-r0)
( 61/108) Installing libunibreak (6.1-r0)
( 62/108) Installing libass (0.17.4-r1)
( 63/108) Installing libudfread (1.2.0-r1)
( 64/108) Installing libbluray (1.4.0-r0)
( 65/108) Installing libdvdcss (1.4.3-r0)
( 66/108) Installing libdvdread (6.1.3-r2)
( 67/108) Installing libdvdnav (6.1.1-r1)
( 68/108) Installing mpg123-libs (1.33.5-r0)
( 69/108) Installing libopenmpt (0.8.9-r0)
( 70/108) Installing cjson (1.7.19-r1)
( 71/108) Installing mbedtls3 (3.6.7-r0)
( 72/108) Installing librist (0.2.15-r0)
( 73/108) Installing libsrt (1.5.3-r1)
( 74/108) Installing libssh (0.12.2-r0)
( 75/108) Installing xz-libs (5.8.4-r0)
( 76/108) Installing libxml2 (2.13.9-r2)
( 77/108) Installing libsodium (1.0.22-r0)
( 78/108) Installing libzmq (4.3.5-r2)
( 79/108) Installing ffmpeg-libavformat (8.1.2-r0)
( 80/108) Installing serd-libs (0.32.8-r0)
( 81/108) Installing zix-libs (0.8.0-r0)
( 82/108) Installing sord-libs (0.16.22-r0)
( 83/108) Installing sratom (0.6.20-r0)
( 84/108) Installing lilv-libs (0.24.26-r1)
( 85/108) Installing libdovi (3.3.2-r0)
( 86/108) Installing spirv-tools (1.4.341.0-r0)
( 87/108) Installing glslang-libs (1.4.341.0-r0)
( 88/108) Installing shaderc (2026.1-r0)
( 89/108) Installing vulkan-loader (1.4.347-r0)
( 90/108) Installing libplacebo (7.360.1-r0)
( 91/108) Installing ffmpeg-libswscale (8.1.2-r0)
( 92/108) Installing vidstab (1.1.1-r0)
( 93/108) Installing zimg (3.0.6-r0)
( 94/108) Installing ffmpeg-libavfilter (8.1.2-r0)
( 95/108) Installing libasyncns (0.8-r5)
( 96/108) Installing dbus-libs (1.16.2-r2)
( 97/108) Installing libltdl (2.6.0-r1)
( 98/108) Installing orc (0.4.41-r0)
( 99/108) Installing libflac (1.4.3-r2)
(100/108) Installing libsndfile (1.2.2-r2)
(101/108) Installing speexdsp (1.2.1-r2)
(102/108) Installing tdb-libs (1.4.15-r1)
(103/108) Installing libpulse (17.0-r7)
(104/108) Installing libjpeg-turbo (3.1.3-r0)
(105/108) Installing json-c (0.18-r1)
(106/108) Installing v4l-utils-libs (1.32.0-r1)
(107/108) Installing ffmpeg-libavdevice (8.1.2-r0)
(108/108) Installing ffmpeg (8.1.2-r0)
Executing busybox-1.37.0-r31.trigger
Executing ca-certificates-20260909-r0.trigger
Executing glib-2.88.1-r1.trigger
OK: 135.8 MiB in 124 packages
--> b2435a0e8102
[3/3] STEP 4/9: COPY --from=${BIN_STAGE} /dovenest /usr/local/bin/dovenest
--> ebfbf211b6f3
[3/3] STEP 5/9: EXPOSE 8080
--> 87a85139829e
[3/3] STEP 6/9: VOLUME ["/data", "/var/lib/dovenest"]
--> 97cd0fe77e6e
[3/3] STEP 7/9: HEALTHCHECK --interval=30s --start-period=10s --timeout=5s --retries=3     CMD wget -qO /dev/null http://127.0.0.1:8080/ || exit 1
time="2026-10-02T16:44:47+02:00" level=warning msg="HEALTHCHECK is not supported for OCI image format and will be ignored. Must use `docker` format"
--> 54f1e430c1bc
[3/3] STEP 8/9: ENTRYPOINT ["/usr/local/bin/dovenest"]
time="2026-10-02T16:44:47+02:00" level=warning msg="HEALTHCHECK is not supported for OCI image format and will be ignored. Must use `docker` format"
--> eadc66171d30
[3/3] STEP 9/9: CMD ["--root", "/data", "--db", "/var/lib/dovenest/db.sqlite", "--bind", "0.0.0.0"]
[3/3] COMMIT forge.unix-root.de/filebrowser-ng:62d98a9f
time="2026-10-02T16:44:47+02:00" level=warning msg="HEALTHCHECK is not supported for OCI image format and will be ignored. Must use `docker` format"
--> 397f23650ce2
Successfully tagged forge.unix-root.de/filebrowser-ng:62d98a9f
397f23650ce29005fcc594298c176a0e8ebbccd990fb375d211b4c6521b1262c
Getting image source signatures
Copying blob sha256:f31b6401b7f7d842f524f26a69bccf5297a6ba2ad0178e1803f6d8a36070ffd0
Copying blob sha256:f345f7e1e336ae00c315a587aeda8311672a47541f0e9fc7552a5334d74b2283
Copying blob sha256:74d97c428c51a828f9051a7a40a53ff1fc99e54fc30323ce36760701b0b7f711
Copying config sha256:397f23650ce29005fcc594298c176a0e8ebbccd990fb375d211b4c6521b1262c
Writing manifest to image destination
Getting image source signatures
Copying blob sha256:f31b6401b7f7d842f524f26a69bccf5297a6ba2ad0178e1803f6d8a36070ffd0
Copying blob sha256:74d97c428c51a828f9051a7a40a53ff1fc99e54fc30323ce36760701b0b7f711
Copying blob sha256:f345f7e1e336ae00c315a587aeda8311672a47541f0e9fc7552a5334d74b2283
Copying config sha256:397f23650ce29005fcc594298c176a0e8ebbccd990fb375d211b4c6521b1262c
Writing manifest to image destination

Artifacts