this derivation will be built: /nix/store/jd76ska1f5fnira0zhyq0zagmgj94jr6-horae-tests-0.1.0.drv building '/nix/store/jd76ska1f5fnira0zhyq0zagmgj94jr6-horae-tests-0.1.0.drv' on 'grpc://farm.numtide.com:50051?client-cert=/run/secrets/vars/per-machine/bld1/nix-farm-ci/crt&client-key=/run/secrets/vars/per-machine/bld1/nix-farm-ci/key&connect-timeout=20&system=aarch64-linux' building '/nix/store/jd76ska1f5fnira0zhyq0zagmgj94jr6-horae-tests-0.1.0.drv' on farm.numtide.com:50051 horae-tests-0.1.0> elastic-arm-a5092f90: building jd76ska1f5fnira0zhyq0zagmgj94jr6-horae-tests-0.1.0.drv horae-tests-0.1.0> Running phase: unpackPhase horae-tests-0.1.0> unpacking source archive /nix/store/0if3xqpi8lrphdwvfzgwc89772c16br9-source horae-tests-0.1.0> source root is source horae-tests-0.1.0> Running phase: patchPhase horae-tests-0.1.0> Executing configureCargoCommonVars horae-tests-0.1.0> decompressing cargo artifacts from /nix/store/iz15gsb1vnxn8iiqaks5c263ms6mxl74-horae-checks-deps-0.1.0/target.tar.zst to target horae-tests-0.1.0> Running phase: updateAutotoolsGnuConfigScriptsPhase horae-tests-0.1.0> Running phase: configurePhase horae-tests-0.1.0> will append /build/source/.cargo-home/config.toml with contents of /nix/store/kqxgprj432hnlh0pqlk1779vyabfmw4i-vendor-cargo-deps/config.toml horae-tests-0.1.0> default configurePhase, nothing to do horae-tests-0.1.0> Running phase: buildPhase horae-tests-0.1.0> +++ command cargo nextest run -p horae-core --test-threads 16 horae-tests-0.1.0> Compiling proc-macro2 v1.0.106 horae-tests-0.1.0> Compiling serde_core v1.0.228 horae-tests-0.1.0> Compiling serde v1.0.228 horae-tests-0.1.0> Compiling num-traits v0.2.19 horae-tests-0.1.0> Compiling quote v1.0.46 horae-tests-0.1.0> Compiling syn v2.0.118 horae-tests-0.1.0> Compiling uuid v1.23.4 horae-tests-0.1.0> Compiling serde_derive v1.0.228 horae-tests-0.1.0> Compiling thiserror-impl v2.0.18 horae-tests-0.1.0> Compiling thiserror v2.0.18 horae-tests-0.1.0> Compiling chrono v0.4.45 horae-tests-0.1.0> Compiling horae-core v0.1.0 (/build/source/crates/core) horae-tests-0.1.0> Finished `test` profile [unoptimized + debuginfo] target(s) in 11.91s horae-tests-0.1.0> ------------ horae-tests-0.1.0> Nextest run ID 6ca6f8d7-28d4-4ce4-b1b4-5a8ae9342b98 with nextest profile: default horae-tests-0.1.0> Starting 191 tests across 1 binary horae-tests-0.1.0> Running [ 00:00:00] 0/191: 8 running, 0 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget horae-tests-0.1.0> [ 00:00:00] horae-core ividual_overruns_or_recover_overflow_as_zero horae-tests-0.1.0> [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band horae-tests-0.1.0> [ 00:00:00] horae-core ls_exclude_blank_but_include_zero_allowances horae-tests-0.1.0> [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding horae-tests-0.1.0> [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values horae-tests-0.1.0> [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows horae-tests-0.1.0> Running [ 00:00:00] ==> 60/191: 16 running, 60 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line horae-tests-0.1.0> [ 00:00:00] horae-core cation_handles_empty_zero_and_full_discounts horae-tests-0.1.0> [ 00:00:00] horae-core rejects_negative_lines_and_subtotal_overflow horae-tests-0.1.0> [ 00:00:00] horae-core tion_supports_maximum_representable_subtotal horae-tests-0.1.0> [ 00:00:00] horae-core s_largest_remainder_then_stable_source_order horae-tests-0.1.0> [ 00:00:00] horae-core d_fee_contribution_leaves_discount_available horae-tests-0.1.0> [ 00:00:00] horae-core _apply_discount_before_non_compounding_taxes horae-tests-0.1.0> PASS [ 0.006s] horae-core budget::tests::allocated_totals_do_not_hide_individual_overruns_or_recover_overflow_as_zero horae-tests-0.1.0> PASS [ 0.007s] horae-core budget::tests::configured_alert_accepts_zero_percent_but_not_zero_budget horae-tests-0.1.0> PASS [ 0.007s] horae-core budget::tests::configured_alert_rejects_invalid_inputs_and_widens_large_values horae-tests-0.1.0> PASS [ 0.007s] horae-core budget::tests::allocated_totals_exclude_blank_but_include_zero_allowances horae-tests-0.1.0> PASS [ 0.008s] horae-core budget::tests::display_percentage_rounds_clamps_and_never_overflows horae-tests-0.1.0> PASS [ 0.012s] horae-core budget::tests::a_single_jump_announces_every_crossed_band horae-tests-0.1.0> PASS [ 0.010s] horae-core budget::tests::no_band_for_zero_or_missing_budget horae-tests-0.1.0> PASS [ 0.010s] horae-core budget::tests::current_band_is_the_highest_reached horae-tests-0.1.0> PASS [ 0.007s] horae-core client::tests::optional_text_normalizes_only_blank_fields horae-tests-0.1.0> PASS [ 0.013s] horae-core budget::tests::configured_alert_threshold_is_exact_without_rounding horae-tests-0.1.0> PASS [ 0.012s] horae-core client::tests::default_rate_rejects_negative_fractional_cent_overflow_and_invalid_text horae-tests-0.1.0> PASS [ 0.010s] horae-core budget::tests::each_crossing_is_announced_once horae-tests-0.1.0> PASS [ 0.011s] horae-core budget::tests::large_values_do_not_overflow horae-tests-0.1.0> PASS [ 0.005s] horae-core duration::tests::format_clamps_negative_to_zero horae-tests-0.1.0> PASS [ 0.010s] horae-core budget::tests::drop_below_a_band_does_not_fire_but_current_resets horae-tests-0.1.0> PASS [ 0.011s] horae-core client::tests::default_rate_preserves_absence_zero_and_exact_large_amounts horae-tests-0.1.0> PASS [ 0.015s] horae-core budget::tests::over_budget_fires_even_without_a_configured_100_band horae-tests-0.1.0> PASS [ 0.010s] horae-core client::tests::profile_rejects_blank_overlong_and_null_names horae-tests-0.1.0> PASS [ 0.008s] horae-core duration::tests::format_hhmm_pads_minutes horae-tests-0.1.0> PASS [ 0.010s] horae-core client::tests::profile_rejects_unsupported_currency_and_null_billing_fields horae-tests-0.1.0> PASS [ 0.005s] horae-core duration::tests::parse_rejects_excessive_decimal_precision_and_numerator horae-tests-0.1.0> PASS [ 0.005s] horae-core duration::tests::parse_rejects_colon_overflow_without_panicking horae-tests-0.1.0> PASS [ 0.006s] horae-core duration::tests::parse_preserves_u32_boundary_without_saturating horae-tests-0.1.0> PASS [ 0.006s] horae-core duration::tests::parse_rejects_negative_non_finite_and_malformed_values horae-tests-0.1.0> PASS [ 0.005s] horae-core importers::harvest::convert::tests::conversion_handles_high_precision_without_intermediate_overflow horae-tests-0.1.0> PASS [ 0.009s] horae-core duration::tests::minutes_between_is_exact_no_minimum horae-tests-0.1.0> Running [ 00:00:00] ==> 60/191: 16 running, 60 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line horae-tests-0.1.0> [ 00:00:00] horae-core cation_handles_empty_zero_and_full_discounts horae-tests-0.1.0> [ 00:00:00] horae-core rejects_negative_lines_and_subtotal_overflow horae-tests-0.1.0> [ 00:00:00] horae-core tion_supports_maximum_representable_subtotal horae-tests-0.1.0> [ 00:00:00] horae-core s_largest_remainder_then_stable_source_order horae-tests-0.1.0> [ 00:00:00] horae-core d_fee_contribution_leaves_discount_available horae-tests-0.1.0> [ 00:00:00] horae-core _apply_discount_before_non_compounding_taxes horae-tests-0.1.0> PASS [ 0.011s] horae-core duration::tests::parse_decimal_rounds_half_minutes_exactly horae-tests-0.1.0> PASS [ 0.015s] horae-core client::tests::profile_accepts_supported_currencies_and_unicode_character_limit horae-tests-0.1.0> PASS [ 0.005s] horae-core importers::harvest::convert::tests::conversion_rejects_unrepresentable_scaled_values_without_panicking horae-tests-0.1.0> PASS [ 0.012s] horae-core duration::tests::format_round_trip horae-tests-0.1.0> PASS [ 0.005s] horae-core importers::harvest::convert::tests::conversion_preserves_the_i64_boundary_and_rejects_rounding_past_it horae-tests-0.1.0> PASS [ 0.013s] horae-core duration::tests::parse_decimal horae-tests-0.1.0> PASS [ 0.013s] horae-core duration::tests::parse_colon horae-tests-0.1.0> PASS [ 0.011s] horae-core duration::tests::parse_round_trips_each_minute_in_a_day horae-tests-0.1.0> PASS [ 0.007s] horae-core importers::harvest::convert::tests::money_common_values_are_exact horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::convert::tests::garbage_is_rejected horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::convert::tests::leading_and_trailing_forms_parse horae-tests-0.1.0> PASS [ 0.007s] horae-core importers::harvest::convert::tests::money_rounds_third_decimal_half_up horae-tests-0.1.0> PASS [ 0.010s] horae-core importers::harvest::convert::tests::high_precision_fraction_straddles_the_half_minute_exactly horae-tests-0.1.0> PASS [ 0.007s] horae-core importers::harvest::convert::tests::money_round_trip_against_exporter_transform horae-tests-0.1.0> PASS [ 0.010s] horae-core importers::harvest::convert::tests::conversion_reports_precision_and_numerator_limits horae-tests-0.1.0> PASS [ 0.012s] horae-core importers::harvest::convert::tests::hours_common_values_are_exact horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::keys::tests::occurrence_counter_keys_are_independent horae-tests-0.1.0> PASS [ 0.010s] horae-core importers::harvest::keys::tests::composite_components_do_not_collide horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::keys::tests::normalize_trims_and_case_folds horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::keys::tests::client_key_equal_across_case_and_whitespace horae-tests-0.1.0> PASS [ 0.012s] horae-core importers::harvest::convert::tests::round_half_up_at_the_boundary horae-tests-0.1.0> PASS [ 0.012s] horae-core importers::harvest::keys::tests::normalize_matches_sql_harvest_norm_contract horae-tests-0.1.0> PASS [ 0.007s] horae-core importers::harvest::keys::tests::project_key_falls_back_to_client_and_name horae-tests-0.1.0> PASS [ 0.006s] horae-core importers::harvest::types::account_switch_tests::account_switch_requires_binding_and_no_imports_or_active_work horae-tests-0.1.0> PASS [ 0.005s] horae-core importers::harvest::types::tests::archived_errors_and_new_inline_errors_reconcile_across_batches horae-tests-0.1.0> Running [ 00:00:00] ==> 60/191: 16 running, 60 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line horae-tests-0.1.0> [ 00:00:00] horae-core cation_handles_empty_zero_and_full_discounts horae-tests-0.1.0> [ 00:00:00] horae-core rejects_negative_lines_and_subtotal_overflow horae-tests-0.1.0> [ 00:00:00] horae-core tion_supports_maximum_representable_subtotal horae-tests-0.1.0> [ 00:00:00] horae-core s_largest_remainder_then_stable_source_order horae-tests-0.1.0> [ 00:00:00] horae-core d_fee_contribution_leaves_discount_available horae-tests-0.1.0> [ 00:00:00] horae-core _apply_discount_before_non_compounding_taxes horae-tests-0.1.0> PASS [ 0.005s] horae-core importers::harvest::types::tests::does_not_reconcile_when_an_errored_count_has_no_reported_error horae-tests-0.1.0> PASS [ 0.005s] horae-core importers::harvest::types::tests::import_modes_display_their_wire_names horae-tests-0.1.0> PASS [ 0.007s] horae-core importers::harvest::keys::tests::time_entry_key_distinguishes_and_matches horae-tests-0.1.0> PASS [ 0.015s] horae-core importers::harvest::convert::tests::negative_is_rejected horae-tests-0.1.0> PASS [ 0.005s] horae-core importers::harvest::types::tests::reconciles_when_errored_counts_match_collected_errors horae-tests-0.1.0> PASS [ 0.010s] horae-core importers::harvest::keys::tests::occurrence_counter_numbers_repeats_from_zero horae-tests-0.1.0> PASS [ 0.010s] horae-core importers::harvest::keys::tests::project_key_prefers_code_when_present horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::keys::tests::task_key_shared_across_projects horae-tests-0.1.0> PASS [ 0.024s] horae-core importers::harvest::convert::tests::hours_round_trip_against_exporter_transform horae-tests-0.1.0> Running [ 00:00:00] ==> 60/191: 16 running, 60 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line horae-tests-0.1.0> [ 00:00:00] horae-core cation_handles_empty_zero_and_full_discounts horae-tests-0.1.0> [ 00:00:00] horae-core rejects_negative_lines_and_subtotal_overflow horae-tests-0.1.0> [ 00:00:00] horae-core tion_supports_maximum_representable_subtotal horae-tests-0.1.0> [ 00:00:00] horae-core s_largest_remainder_then_stable_source_order horae-tests-0.1.0> [ 00:00:00] horae-core d_fee_contribution_leaves_discount_available horae-tests-0.1.0> [ 00:00:00] horae-core _apply_discount_before_non_compounding_taxes horae-tests-0.1.0> Running [ 00:00:00] ====> 110/191: 16 running, 60 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line horae-tests-0.1.0> [ 00:00:00] horae-core cation_handles_empty_zero_and_full_discounts horae-tests-0.1.0> [ 00:00:00] horae-core rejects_negative_lines_and_subtotal_overflow horae-tests-0.1.0> [ 00:00:00] horae-core tion_supports_maximum_representable_subtotal horae-tests-0.1.0> [ 00:00:00] horae-core s_largest_remainder_then_stable_source_order horae-tests-0.1.0> [ 00:00:00] horae-core d_fee_contribution_leaves_discount_available horae-tests-0.1.0> [ 00:00:00] horae-core _apply_discount_before_non_compounding_taxes horae-tests-0.1.0> PASS [ 0.012s] horae-core invoice::tests::discount_allocation_handles_empty_zero_and_full_discounts horae-tests-0.1.0> PASS [ 0.015s] horae-core invoice::tests::discount_allocation_conserves_header_amount_and_bounds_each_line horae-tests-0.1.0> PASS [ 0.019s] horae-core invoice::tests::discount_allocation_rejects_negative_lines_and_subtotal_overflow horae-tests-0.1.0> PASS [ 0.019s] horae-core invoice::tests::discounted_fee_contribution_leaves_discount_available horae-tests-0.1.0> PASS [ 0.019s] horae-core invoice::tests::discount_allocation_supports_maximum_representable_subtotal horae-tests-0.1.0> PASS [ 0.019s] horae-core invoice::tests::invoice_adjustments_apply_discount_before_non_compounding_taxes horae-tests-0.1.0> PASS [ 0.019s] horae-core invoice::tests::invoice_adjustments_reject_negative_subtotal_and_overflow horae-tests-0.1.0> PASS [ 0.023s] horae-core invoice::tests::line_amount_90_minutes horae-tests-0.1.0> PASS [ 0.024s] horae-core invoice::tests::discount_allocation_uses_largest_remainder_then_stable_source_order horae-tests-0.1.0> PASS [ 0.024s] horae-core invoice::tests::invoice_adjustments_round_components_half_up horae-tests-0.1.0> PASS [ 0.023s] horae-core invoice::tests::line_amount_exact_hour horae-tests-0.1.0> PASS [ 0.019s] horae-core invoice::tests::line_amount_rejects_unrepresentable_results horae-tests-0.1.0> PASS [ 0.025s] horae-core invoice::tests::line_amount_accepts_large_representable_amounts horae-tests-0.1.0> PASS [ 0.005s] horae-core money::tests::addition_retains_currency_checks_and_representable_boundaries horae-tests-0.1.0> PASS [ 0.027s] horae-core invoice::tests::line_amount_half_hour horae-tests-0.1.0> PASS [ 0.016s] horae-core invoice::tests::line_amount_rounds_half_cents_up_not_to_even horae-tests-0.1.0> PASS [ 0.005s] horae-core money::tests::parse_cents_reads_whole_and_fractional_amounts horae-tests-0.1.0> PASS [ 0.012s] horae-core invoice::tests::resolve_rate_cascade horae-tests-0.1.0> PASS [ 0.007s] horae-core money::tests::format_cents_groups_thousands_and_keeps_sign horae-tests-0.1.0> PASS [ 0.007s] horae-core money::tests::format_cents_plain_keeps_sign_below_one_unit horae-tests-0.1.0> PASS [ 0.006s] horae-core money::tests::parse_cents_rejects_what_it_cannot_represent horae-tests-0.1.0> PASS [ 0.014s] horae-core invoice::tests::line_amount_zero_rate horae-tests-0.1.0> PASS [ 0.018s] horae-core invoice::tests::line_amount_zero_minutes horae-tests-0.1.0> PASS [ 0.032s] horae-core invoice::tests::line_amount_odd_minutes horae-tests-0.1.0> PASS [ 0.016s] horae-core money::tests::addition_rejects_overflow_in_both_directions horae-tests-0.1.0> PASS [ 0.012s] horae-core money::tests::parse_cents_is_exact_where_a_float_would_drift horae-tests-0.1.0> PASS [ 0.009s] horae-core permissions::approvals::tests::expense_read_scope_and_approval_scope_form_an_intersection horae-tests-0.1.0> Running [ 00:00:00] ====> 112/191: 16 running, 112 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection horae-tests-0.1.0> [ 00:00:00] horae-core _catalog_grants_produces_exactly_the_catalog horae-tests-0.1.0> [ 00:00:00] horae-core e_defaults_match_the_known_reference_catalog horae-tests-0.1.0> [ 00:00:00] horae-core tests::empty_selection_includes_member_floor horae-tests-0.1.0> [ 00:00:00] horae-core _added_and_removing_it_removes_the_dependent horae-tests-0.1.0> [ 00:00:00] horae-core ludes_floor_and_is_closed_under_dependencies horae-tests-0.1.0> [ 00:00:00] horae-core _and_project_manager_has_no_financial_grants horae-tests-0.1.0> PASS [ 0.021s] horae-core invoice::tests::selected_rate_mode_ignores_unselected_rate_sources horae-tests-0.1.0> PASS [ 0.011s] horae-core permissions::approvals::tests::catalog_grants_cannot_substitute_for_approval horae-tests-0.1.0> PASS [ 0.024s] horae-core invoice::tests::selected_rate_keeps_zero_and_explicit_missing_project_rate horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::approvals::tests::inactive_and_foreign_provenance_deny_even_with_all_grants horae-tests-0.1.0> PASS [ 0.011s] horae-core permissions::approvals::tests::only_expense_reads_or_their_write_prerequisites_make_others_expenses_visible horae-tests-0.1.0> PASS [ 0.016s] horae-core money::tests::parse_cents_tolerates_grouping_spaces_and_signs horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::approvals::tests::one_unreadable_expense_denies_the_whole_supplied_set horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::approvals::tests::no_expense_read_is_needed_when_there_are_no_expenses horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::approvals::tests::empty_record_sets_do_not_remove_identity_or_explicit_grant_checks horae-tests-0.1.0> PASS [ 0.017s] horae-core permissions::approvals::tests::missing_dimensions_and_input_duplicates_do_not_infer_scope horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::catalog::stored_tests::rejects_duplicate_grants_instead_of_silently_deduplicating horae-tests-0.1.0> PASS [ 0.022s] horae-core permissions::approvals::tests::all_records_need_approval_scope_even_when_both_domains_are_readable horae-tests-0.1.0> PASS [ 0.006s] horae-core permissions::catalog::stored_tests::restores_each_builtin_selection_without_changing_grants horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::catalog::stored_tests::rejects_each_missing_floor_grant horae-tests-0.1.0> PASS [ 0.006s] horae-core permissions::catalog::stored_tests::stored_order_does_not_change_the_selected_set horae-tests-0.1.0> PASS [ 0.017s] horae-core permissions::approvals::tests::removing_the_last_matching_relationship_revokes_both_domains horae-tests-0.1.0> PASS [ 0.019s] horae-core permissions::approvals::tests::reevaluation_does_not_reuse_prior_read_or_approval_success horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::catalog::stored_tests::rejects_unsupported_versions_even_for_valid_grants horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::catalog::stored_tests::restores_custom_selection_without_reapplying_profile_defaults horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::catalog::tests::approve_all_includes_read_scopes_but_not_write_or_expense_management horae-tests-0.1.0> PASS [ 0.007s] horae-core permissions::catalog::tests::catalog_has_fifty_distinct_known_grants horae-tests-0.1.0> PASS [ 0.018s] horae-core permissions::catalog::stored_tests::rejects_empty_saved_selection_instead_of_adding_member_floor horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::catalog::tests::dependency_graph_matches_the_reference_edges_without_extra_cross_resource_grants horae-tests-0.1.0> Running [ 00:00:00] ====> 112/191: 16 running, 112 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection horae-tests-0.1.0> [ 00:00:00] horae-core _catalog_grants_produces_exactly_the_catalog horae-tests-0.1.0> [ 00:00:00] horae-core e_defaults_match_the_known_reference_catalog horae-tests-0.1.0> [ 00:00:00] horae-core tests::empty_selection_includes_member_floor horae-tests-0.1.0> [ 00:00:00] horae-core _added_and_removing_it_removes_the_dependent horae-tests-0.1.0> [ 00:00:00] horae-core ludes_floor_and_is_closed_under_dependencies horae-tests-0.1.0> [ 00:00:00] horae-core _and_project_manager_has_no_financial_grants horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::catalog::tests::administrator_selection_covers_known_catalog_without_unknown_ids horae-tests-0.1.0> PASS [ 0.017s] horae-core permissions::catalog::stored_tests::rejects_every_missing_prerequisite_without_repairing_input horae-tests-0.1.0> Running [ 00:00:00] ====> 112/191: 16 running, 112 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection horae-tests-0.1.0> [ 00:00:00] horae-core _catalog_grants_produces_exactly_the_catalog horae-tests-0.1.0> [ 00:00:00] horae-core e_defaults_match_the_known_reference_catalog horae-tests-0.1.0> [ 00:00:00] horae-core tests::empty_selection_includes_member_floor horae-tests-0.1.0> [ 00:00:00] horae-core _added_and_removing_it_removes_the_dependent horae-tests-0.1.0> [ 00:00:00] horae-core ludes_floor_and_is_closed_under_dependencies horae-tests-0.1.0> [ 00:00:00] horae-core _and_project_manager_has_no_financial_grants horae-tests-0.1.0> Running [ 00:00:00] ======> 172/191: 16 running, 112 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core s::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection horae-tests-0.1.0> [ 00:00:00] horae-core _catalog_grants_produces_exactly_the_catalog horae-tests-0.1.0> [ 00:00:00] horae-core e_defaults_match_the_known_reference_catalog horae-tests-0.1.0> [ 00:00:00] horae-core tests::empty_selection_includes_member_floor horae-tests-0.1.0> [ 00:00:00] horae-core _added_and_removing_it_removes_the_dependent horae-tests-0.1.0> [ 00:00:00] horae-core ludes_floor_and_is_closed_under_dependencies horae-tests-0.1.0> [ 00:00:00] horae-core _and_project_manager_has_no_financial_grants horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::catalog::tests::adding_all_catalog_grants_produces_exactly_the_catalog horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::catalog::tests::direct_profile_defaults_match_the_known_reference_catalog horae-tests-0.1.0> PASS [ 0.005s] horae-core permissions::catalog::tests::removing_invoice_draft_write_keeps_read_but_removes_managed_and_all_write horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::catalog::tests::every_profile_includes_floor_and_is_closed_under_dependencies horae-tests-0.1.0> PASS [ 0.085s] horae-core importers::harvest::convert::tests::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::catalog::tests::every_declared_dependency_is_added_and_removing_it_removes_the_dependent horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::catalog::tests::finance_profiles_cannot_edit_rates_and_project_manager_has_no_financial_grants horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::catalog::tests::removing_absent_permission_is_an_idempotent_no_op horae-tests-0.1.0> PASS [ 0.011s] horae-core permissions::catalog::tests::removing_managed_time_read_also_removes_all_reads_writes_and_approvals horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::catalog::tests::report_and_withdrawal_grants_do_not_add_unrelated_authority horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::catalog::tests::floor_cannot_be_removed_or_partially_modified horae-tests-0.1.0> PASS [ 0.020s] horae-core permissions::catalog::tests::empty_selection_includes_member_floor horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::catalog::tests::removing_any_non_floor_grant_keeps_the_remaining_selection_closed horae-tests-0.1.0> PASS [ 0.016s] horae-core permissions::catalog::tests::known_permission_name_decodes_without_legacy_role_conversion horae-tests-0.1.0> PASS [ 0.009s] horae-core permissions::catalog::tests::template_names_trim_without_changing_display_or_internal_spaces horae-tests-0.1.0> PASS [ 0.017s] horae-core permissions::catalog::tests::profiles_reject_legacy_rank_names_and_unknown_values horae-tests-0.1.0> PASS [ 0.011s] horae-core permissions::catalog::tests::removing_one_financial_permission_preserves_unrelated_families horae-tests-0.1.0> PASS [ 0.019s] horae-core permissions::catalog::tests::member_has_only_own_time_and_expense_access horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::catalog::tests::unknown_permission_names_are_rejected horae-tests-0.1.0> PASS [ 0.006s] horae-core permissions::person_management::tests::combined_unrelated_grants_do_not_create_person_management_eligibility horae-tests-0.1.0> PASS [ 0.009s] horae-core permissions::person_management::tests::self_link_rejects_the_proposal_in_every_position_without_filtering_it horae-tests-0.1.0> PASS [ 0.010s] horae-core permissions::person_management::tests::each_catalog_grant_has_the_specified_compatibility_without_changing_grants horae-tests-0.1.0> PASS [ 0.010s] horae-core permissions::person_management::tests::eligibility_tracks_last_compatible_grant_loss_and_restoration horae-tests-0.1.0> Running [ 00:00:00] ======> 173/191: 16 running, 173 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free horae-tests-0.1.0> [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax horae-tests-0.1.0> [ 00:00:00] horae-core rounding::tests::nearest_ties_round_up horae-tests-0.1.0> [ 00:00:00] horae-core sts::managers_invoice_open_and_approved_time horae-tests-0.1.0> [ 00:00:00] horae-core state::tests::member_submit_and_reopen horae-tests-0.1.0> [ 00:00:00] horae-core state::tests::only_manager_can_approve horae-tests-0.1.0> [ 00:00:00] horae-core sts::clamp_to_day_prevents_crossing_midnight horae-tests-0.1.0> [ 00:00:00] horae-core day::tests::format_12h_matches_harvest_style horae-tests-0.1.0> PASS [ 0.010s] horae-core permissions::person_management::tests::other_people_and_empty_removal_need_neither_grants_nor_a_separate_actor horae-tests-0.1.0> PASS [ 0.006s] horae-core permissions::rates::tests::identity_and_tenant_mismatches_deny_even_all_financial_grants horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::rates::tests::billable_owner_never_uses_the_other_management_dimension horae-tests-0.1.0> PASS [ 0.011s] horae-core permissions::person_management::tests::own_tracking_floor_does_not_qualify horae-tests-0.1.0> PASS [ 0.009s] horae-core permissions::rates::tests::billable_actions_use_only_their_own_grant_and_owner_scope horae-tests-0.1.0> PASS [ 0.007s] horae-core permissions::rates::tests::grant_removal_denies_without_mutating_the_remaining_selection horae-tests-0.1.0> PASS [ 0.022s] horae-core permissions::catalog::tests::template_names_reject_empty_and_overlong_unicode_names horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::rates::tests::cost_and_billable_grants_are_independent_and_read_does_not_allow_write horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::rates::tests::read_only_cost_grant_cannot_authorize_an_explicit_rate_edit horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::tests::inactive_or_foreign_context_is_denied_for_every_scope_combination horae-tests-0.1.0> PASS [ 0.025s] horae-core permissions::person_management::tests::any_compatible_grant_suffices_in_every_pair horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::tests::removing_an_assignment_removes_only_that_matching_dimension horae-tests-0.1.0> PASS [ 0.009s] horae-core permissions::rates::tests::unrelated_catalog_grants_never_authorize_ordinary_financial_fields horae-tests-0.1.0> PASS [ 0.016s] horae-core permissions::rates::tests::explicit_rate_edits_require_write_even_for_zero_or_an_equal_value horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::tests::every_scope_combination_matches_only_explicitly_granted_dimensions horae-tests-0.1.0> PASS [ 0.009s] horae-core permissions::rates::tests::removing_read_prerequisites_denies_both_actions horae-tests-0.1.0> PASS [ 0.019s] horae-core permissions::rates::tests::all_six_defaults_have_the_approved_financial_access horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::rates::tests::unchanged_rate_edit_requires_no_financial_write_grant horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::tests::assignments_do_not_grant_scope_and_missing_assignments_do_not_match horae-tests-0.1.0> PASS [ 0.007s] horae-core project::tests::basics_accept_supported_currencies_and_optional_dates horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::tests::assignment_matching_searches_all_members_and_is_insensitive_to_duplicates horae-tests-0.1.0> PASS [ 0.013s] horae-core project::tests::basics_accept_same_day_but_reject_reversed_dates horae-tests-0.1.0> PASS [ 0.009s] horae-core project::tests::basics_reject_blank_and_overlong_names horae-tests-0.1.0> Running [ 00:00:00] ======> 173/191: 16 running, 173 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free horae-tests-0.1.0> [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax horae-tests-0.1.0> [ 00:00:00] horae-core rounding::tests::nearest_ties_round_up horae-tests-0.1.0> [ 00:00:00] horae-core sts::managers_invoice_open_and_approved_time horae-tests-0.1.0> [ 00:00:00] horae-core state::tests::member_submit_and_reopen horae-tests-0.1.0> [ 00:00:00] horae-core state::tests::only_manager_can_approve horae-tests-0.1.0> [ 00:00:00] horae-core sts::clamp_to_day_prevents_crossing_midnight horae-tests-0.1.0> [ 00:00:00] horae-core day::tests::format_12h_matches_harvest_style horae-tests-0.1.0> PASS [ 0.008s] horae-core project::tests::fee_schedules_reject_missing_overlong_and_excessive_milestones horae-tests-0.1.0> PASS [ 0.010s] horae-core project::tests::basics_reject_overlong_code_and_unsupported_currency horae-tests-0.1.0> PASS [ 0.009s] horae-core project::tests::monthly_fee_dates_follow_calendar_months horae-tests-0.1.0> PASS [ 0.009s] horae-core project::tests::monetary_budgets_are_only_available_for_time_and_materials horae-tests-0.1.0> PASS [ 0.010s] horae-core project::tests::monthly_fee_dates_reject_invalid_calendar_inputs horae-tests-0.1.0> PASS [ 0.006s] horae-core rounding::tests::identity_when_inc_zero horae-tests-0.1.0> PASS [ 0.017s] horae-core permissions::tests::scope_union_obeys_set_laws horae-tests-0.1.0> PASS [ 0.009s] horae-core project::tests::percentage_preserves_exact_hundredths horae-tests-0.1.0> PASS [ 0.061s] horae-core permissions::catalog::stored_tests::restores_each_valid_grant_pair_and_its_revoked_selection horae-tests-0.1.0> PASS [ 0.005s] horae-core rounding::tests::result_is_multiple_of_inc horae-tests-0.1.0> PASS [ 0.014s] horae-core project::tests::fee_schedules_validate_amounts_and_milestone_total horae-tests-0.1.0> PASS [ 0.013s] horae-core project::tests::payment_terms_support_receipt_and_checked_days horae-tests-0.1.0> PASS [ 0.006s] horae-core rounding::tests::up_and_down horae-tests-0.1.0> PASS [ 0.006s] horae-core state::tests::invoiced_is_final horae-tests-0.1.0> PASS [ 0.011s] horae-core rounding::tests::effective_minutes_respect_frozen_history_including_zero horae-tests-0.1.0> Running [ 00:00:00] ======> 173/191: 16 running, 173 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free horae-tests-0.1.0> [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax horae-tests-0.1.0> [ 00:00:00] horae-core rounding::tests::nearest_ties_round_up horae-tests-0.1.0> [ 00:00:00] horae-core sts::managers_invoice_open_and_approved_time horae-tests-0.1.0> [ 00:00:00] horae-core state::tests::member_submit_and_reopen horae-tests-0.1.0> [ 00:00:00] horae-core state::tests::only_manager_can_approve horae-tests-0.1.0> [ 00:00:00] horae-core sts::clamp_to_day_prevents_crossing_midnight horae-tests-0.1.0> [ 00:00:00] horae-core day::tests::format_12h_matches_harvest_style horae-tests-0.1.0> PASS [ 0.015s] horae-core project::tests::percentage_rejects_invalid_precision_range_and_syntax horae-tests-0.1.0> PASS [ 0.009s] horae-core time_of_day::tests::format_12h_matches_harvest_style horae-tests-0.1.0> PASS [ 0.006s] horae-core time_of_day::tests::parse_rejects_out_of_range_and_garbage horae-tests-0.1.0> PASS [ 0.010s] horae-core state::tests::only_manager_can_approve horae-tests-0.1.0> PASS [ 0.006s] horae-core types::tests::budget_kind_wire_strings_match_db_enum horae-tests-0.1.0> PASS [ 0.013s] horae-core rounding::tests::nearest_ties_round_up horae-tests-0.1.0> PASS [ 0.010s] horae-core time_of_day::tests::clamp_to_day_prevents_crossing_midnight horae-tests-0.1.0> PASS [ 0.007s] horae-core time_of_day::tests::snap_rounds_to_nearest_step horae-tests-0.1.0> PASS [ 0.007s] horae-core time_of_day::tests::parse_reads_24h horae-tests-0.1.0> PASS [ 0.009s] horae-core time_of_day::tests::parse_reads_12h_including_edges horae-tests-0.1.0> PASS [ 0.013s] horae-core state::tests::member_submit_and_reopen horae-tests-0.1.0> PASS [ 0.014s] horae-core state::tests::managers_invoice_open_and_approved_time horae-tests-0.1.0> PASS [ 0.008s] horae-core week::tests::configured_week_can_start_in_the_previous_year horae-tests-0.1.0> PASS [ 0.012s] horae-core time_of_day::tests::format_round_trips horae-tests-0.1.0> PASS [ 0.008s] horae-core week::tests::configured_week_contains_each_day_for_all_seven_start_days horae-tests-0.1.0> PASS [ 0.005s] horae-core week::tests::configured_week_reports_an_unrepresentable_start horae-tests-0.1.0> PASS [ 0.005s] horae-core week::tests::maps_any_weekday_to_its_monday horae-tests-0.1.0> PASS [ 0.068s] horae-core permissions::catalog::tests::normalization_is_idempotent_order_independent_and_duplicate_free horae-tests-0.1.0> ------------ horae-tests-0.1.0> Summary [ 0.166s] 191 tests run: 191 passed, 0 skipped horae-tests-0.1.0> Running [ 00:00:00] ======= 191/191: 16 running, 173 passed, 0 skipped horae-tests-0.1.0> [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free horae-tests-0.1.0> [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax horae-tests-0.1.0> [ 00:00:00] horae-core rounding::tests::nearest_ties_round_up horae-tests-0.1.0> [ 00:00:00] horae-core sts::managers_invoice_open_and_approved_time horae-tests-0.1.0> [ 00:00:00] horae-core state::tests::member_submit_and_reopen horae-tests-0.1.0> [ 00:00:00] horae-core state::tests::only_manager_can_approve horae-tests-0.1.0> [ 00:00:00] horae-core sts::clamp_to_day_prevents_crossing_midnight horae-tests-0.1.0> [ 00:00:00] horae-core day::tests::format_12h_matches_harvest_style horae-tests-0.1.0> The files belonging to this database system will be owned by user "nixbld". horae-tests-0.1.0> This user must also own the server process. horae-tests-0.1.0> horae-tests-0.1.0> The database cluster will be initialized with locale "C". horae-tests-0.1.0> The default text search configuration will be set to "english". horae-tests-0.1.0> horae-tests-0.1.0> Data page checksums are disabled. horae-tests-0.1.0> horae-tests-0.1.0> fixing permissions on existing directory /build/tmp.WRANBuD2sX ... ok horae-tests-0.1.0> creating subdirectories ... ok horae-tests-0.1.0> selecting dynamic shared memory implementation ... posix horae-tests-0.1.0> selecting default "max_connections" ... 100 horae-tests-0.1.0> selecting default "shared_buffers" ... 128MB horae-tests-0.1.0> selecting default time zone ... UTC horae-tests-0.1.0> creating configuration files ... ok horae-tests-0.1.0> running bootstrap script ... ok horae-tests-0.1.0> performing post-bootstrap initialization ... ok horae-tests-0.1.0> syncing data to disk ... ok horae-tests-0.1.0> horae-tests-0.1.0> initdb: warning: enabling "trust" authentication for local connections horae-tests-0.1.0> initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb. horae-tests-0.1.0> horae-tests-0.1.0> Success. You can now start the database server using: horae-tests-0.1.0> horae-tests-0.1.0> pg_ctl -D /build/tmp.WRANBuD2sX -l logfile start horae-tests-0.1.0> horae-tests-0.1.0> waiting for server to start.... done horae-tests-0.1.0> server started horae-tests-0.1.0> +++ command cargo test -p horae --features server -- --test-threads 8 horae-tests-0.1.0> Compiling horae v0.1.0 (/build/source/crates/horae) horae-tests-0.1.0> Compiling horae-core v0.1.0 (/build/source/crates/core) horae-tests-0.1.0> Finished `test` profile [unoptimized + debuginfo] target(s) in 7m 30s horae-tests-0.1.0> Running unittests src/main.rs (target/debug/deps/horae-28e72b71798c6b17) horae-tests-0.1.0> horae-tests-0.1.0> running 1504 tests horae-tests-0.1.0> test auth::oidc::tests::deactivated_email_match_is_denied ... ok horae-tests-0.1.0> test auth::oidc::tests::deactivated_subject_match_is_denied ... ok horae-tests-0.1.0> test auth::oidc::tests::extra_audiences_are_trusted_only_when_listed ... ok horae-tests-0.1.0> test auth::oidc::tests::no_account_is_denied_not_provisioned ... ok horae-tests-0.1.0> test auth::oidc::tests::first_login_links_subject_via_verified_email ... ok horae-tests-0.1.0> test auth::oidc::tests::subject_match_logs_in_without_relinking ... ok horae-tests-0.1.0> test auth::oidc::tests::subject_match_takes_precedence_over_email ... ok horae-tests-0.1.0> test auth::oidc::tests::unverified_email_is_not_matched ... ok horae-tests-0.1.0> test auth::page::tests::dev_variant_offers_the_admin_bypass_and_no_fake_controls ... ok horae-tests-0.1.0> test auth::page::tests::configured_label_is_html_escaped ... ok horae-tests-0.1.0> test auth::page::tests::oidc_variant_uses_the_configured_label_and_hands_off_to_start ... ok horae-tests-0.1.0> test cli::imports::tests::api_submission_captures_generation_without_retrying_uncertain_acceptance ... ok horae-tests-0.1.0> test cli::imports::tests::cancellation_racing_completion_does_not_claim_cancellation_was_requested ... ok horae-tests-0.1.0> test cli::imports::tests::csv_named_pipe_is_rejected_without_waiting_for_a_writer ... ok horae-tests-0.1.0> test cli::imports::tests::csv_connection_closed_without_response_remains_indeterminate ... ok horae-tests-0.1.0> test cli::imports::tests::invalid_csv_files_fail_before_contacting_the_server ... ok horae-tests-0.1.0> test cli::imports::tests::malformed_submission_acknowledgement_retains_its_request_identity ... ok horae-tests-0.1.0> test cli::imports::tests::missing_and_mismatched_jobs_fail_without_substitution ... ok horae-tests-0.1.0> test cli::imports::tests::missing_session_is_a_structured_configuration_failure ... ok horae-tests-0.1.0> test cli::imports::tests::archived_errors_publish_without_clobbering_and_preserve_the_prior_file_on_failure ... ok horae-tests-0.1.0> test cli::imports::tests::private_session_accepts_https_and_loopback_only ... ok horae-tests-0.1.0> test cli::imports::tests::redirects_are_not_followed_or_exposed_as_server_error_text ... ok horae-tests-0.1.0> test cli::imports::tests::report_marks_confirmed_failed_outcomes_as_incomplete ... ok horae-tests-0.1.0> test cli::imports::tests::retry_snapshot_is_compatible_with_missing_and_future_values ... ok horae-tests-0.1.0> test cli::imports::tests::session_rejects_cookie_header_injection_without_echoing_the_value ... ok horae-tests-0.1.0> test cli::imports::tests::session_rejects_plaintext_remote_and_credential_bearing_urls ... ok horae-tests-0.1.0> test cli::imports::tests::ordinary_json_is_bounded_and_invalid_replies_are_not_echoed ... ok horae-tests-0.1.0> test cli::imports::tests::session_rejects_public_permissions_and_symlinks ... ok horae-tests-0.1.0> test auth::oidc::tests::linking::existing_subject_wins_over_another_accounts_email ... ok horae-tests-0.1.0> test auth::oidc::tests::linking::unverified_email_cannot_link_an_account ... ok horae-tests-0.1.0> test auth::oidc::tests::linking::deactivation_during_first_link_denies_login ... ok horae-tests-0.1.0> test auth::oidc::tests::linking::simultaneous_logins_with_the_same_subject_are_allowed ... ok horae-tests-0.1.0> test auth::oidc::tests::linking::different_subjects_cannot_both_claim_an_unlinked_account ... ok horae-tests-0.1.0> test cli::tests::environment_probe ... ok horae-tests-0.1.0> test cli::tests::remote_commands_reject_conflicting_or_unbounded_options ... ok horae-tests-0.1.0> test cli::imports::tests::status_and_wait_distinguish_failed_jobs_from_failed_reads ... ok horae-tests-0.1.0> test components::permission_description::tests::permission_descriptions_cover_each_grant_distinctly ... ok horae-tests-0.1.0> test components::sidebar::tests::clients_link_follows_client_read_and_fails_closed ... ok horae-tests-0.1.0> test config::tests::dev_login_is_allowed_on_loopback ... ok horae-tests-0.1.0> test config::tests::dev_login_is_refused_off_loopback ... ok horae-tests-0.1.0> test cli::tests::remote_import_and_job_commands_accept_the_documented_arguments ... ok horae-tests-0.1.0> test config::tests::environment::environment_probe ... ok horae-tests-0.1.0> test cli::tests::default_command_rejects_invalid_environment_ports ... ok horae-tests-0.1.0> test config::tests::environment::empty_environment_has_no_authentication_or_plugin_credentials ... ok horae-tests-0.1.0> test config::tests::environment::example_environment_can_configure_all_required_oidc_and_harvest_fields ... ok horae-tests-0.1.0> test cli::tests::default_command_uses_the_same_defaults_and_environment_as_serve ... ok horae-tests-0.1.0> test config::tests::environment::obsolete_authentication_variables_do_not_configure_the_server ... ok horae-tests-0.1.0> test config::tests::environment::partial_oidc_configuration_remains_disabled_without_a_callback ... ok horae-tests-0.1.0> test config::tests::environment::job_attempt_limit_uses_the_documented_environment_variable ... ok horae-tests-0.1.0> test config::tests::without_dev_login_any_bind_is_fine ... ok horae-tests-0.1.0> test db::tests::pool_connections_force_custom_plans ... ok horae-tests-0.1.0> test config::tests::environment::mail_environment_requires_a_complete_valid_configuration ... ok horae-tests-0.1.0> test config::tests::environment::invalid_job_attempt_limits_reject_startup ... ok horae-tests-0.1.0> test config::tests::environment::secure_cookies_use_the_documented_prefixed_variable ... ok horae-tests-0.1.0> test harvest::pagination_tests::client_permissions::client_api_allows_read_only_grants_without_legacy_management ... ok horae-tests-0.1.0> test cli::imports::tests::csv_upload_preserves_bytes_across_stream_chunk_boundaries ... ok horae-tests-0.1.0> test db::tests::reset_empties_the_database_and_reapplies_migrations ... ok horae-tests-0.1.0> test harvest::pagination_tests::client_permissions::client_api_does_not_inherit_legacy_role_or_related_workflow_authority ... ok horae-tests-0.1.0> test cli::imports::tests::small_csv_upload_preserves_immediate_authorization_rejections ... ok horae-tests-0.1.0> test cli::imports::tests::wait_deadline_caps_a_pending_request_without_cancelling_the_job ... ok horae-tests-0.1.0> test cli::imports::tests::small_csv_upload_preserves_immediate_authorization_rejections_across_threads ... ok horae-tests-0.1.0> test harvest::pagination_tests::client_permissions::client_api_observes_revocation_after_waiting_for_current_authority ... ok horae-tests-0.1.0> test harvest::pagination_tests::client_permissions::client_api_preserves_filters_counts_and_foreign_id_denial ... ok horae-tests-0.1.0> test harvest::pagination_tests::client_permissions::client_api_rechecks_activity_after_session_authentication ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_own_time_omits_private_project_budget_metadata ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_pagination_total_pages_does_not_overflow ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_pagination_rejects_invalid_windows_on_every_collection ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_pagination_router_preserves_session_and_tenant_guards ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_pagination_catalog_links_preserve_filters_and_break_name_ties ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_project_progress_permissions_cover_counts_pages_and_details ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_pagination_time_entries_keep_the_filtered_set_and_date_ties ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::canonical_project_api_does_not_inherit_legacy_administrator_scope ... ok horae-tests-0.1.0> test harvest::pagination_tests::client_permissions::client_api_rejects_unavailable_policy_and_inactive_sessions ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_task_access_filters_counts_and_preserves_rate_free_history ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::canonical_project_api_rechecks_financial_only_revocation ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::canonical_project_api_excludes_foreign_projects_and_foreign_client_parents ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_pagination_empty_and_out_of_range_pages_keep_the_contract ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::canonical_project_api_shared_member_keeps_hours_but_not_money ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::canonical_project_api_rejects_malformed_state_even_without_visible_rows ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_pagination_malformed_filters_are_client_errors ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::concurrency::project_api_refreshes_scope_and_money_after_authority_wait ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::canonical_project_reader_uses_list_count_and_detail_without_legacy_role ... ok horae-tests-0.1.0> test harvest::pagination_tests::task_permissions::task_api_does_not_inherit_legacy_admin_or_tracking_identity ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::concurrency::project_api_rejects_actor_deactivated_after_session_lookup ... ok horae-tests-0.1.0> test harvest::pagination_tests::task_permissions::task_api_rechecks_catalog_and_financial_grants_after_authority_wait ... ok horae-tests-0.1.0> test harvest::pagination_tests::harvest_project_cost_overrides_require_admin_without_fabricated_fallback ... ok horae-tests-0.1.0> test harvest::pagination_tests::task_permissions::task_api_rejects_malformed_canonical_state_without_legacy_fallback ... ok horae-tests-0.1.0> test harvest::tests::a_manager_lists_users_with_their_rates ... ok horae-tests-0.1.0> test harvest::pagination_tests::task_permissions::task_api_rechecks_deactivation_after_session_lookup ... ok horae-tests-0.1.0> test harvest::tests::a_manager_sees_the_whole_org ... ok horae-tests-0.1.0> test harvest::tests::a_member_cannot_fetch_a_colleagues_entry ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::canonical_project_api_managed_scope_requires_current_designation ... ok horae-tests-0.1.0> test harvest::tests::a_member_cannot_filter_to_a_colleague ... ok horae-tests-0.1.0> test harvest::tests::a_member_cannot_list_users ... ok horae-tests-0.1.0> test harvest::pagination_tests::task_permissions::task_api_rejects_unknown_policy_before_empty_or_direct_results ... ok horae-tests-0.1.0> test harvest::tests::a_member_sees_only_their_own_time_entries ... ok horae-tests-0.1.0> test harvest::tests::harvest_effective_minutes_match_sql_for_open_and_frozen_time ... ok horae-tests-0.1.0> test harvest::pagination_tests::project_permissions::canonical_project_api_retains_filtered_total_past_last_page ... ok horae-tests-0.1.0> test harvest::tests::harvest_entry_rates_respect_selected_project_mode ... ok horae-tests-0.1.0> test harvest::tests::page_window_defaults_and_checked_offsets ... ok horae-tests-0.1.0> test harvest::tests::harvest_marks_unbilled_non_billable_contexts_consistently ... ok horae-tests-0.1.0> test harvest::tests::harvest_entry_rates_follow_the_cascade_and_frozen_invoice_line ... ok horae-tests-0.1.0> test harvest::tests::members_cannot_read_own_project_rates_or_cost_overrides ... ok horae-tests-0.1.0> test harvest::pagination_tests::task_permissions::task_api_filters_archived_tasks_and_preserves_total_past_last_page ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::change_preserves_terminal_history_and_rejects_stale_confirmation ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::a_b_a_keeps_old_callbacks_requests_and_retries_fenced ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::disconnect_and_reconnect_fence_callbacks_but_not_same_account_work ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::queue_acceptance_does_not_wait_for_the_import_session_lock ... ok horae-tests-0.1.0> test harvest::tests::imported_legacy_rates_survive_retry_in_harvest_list_and_detail ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::competing_callbacks_and_confirmations_have_one_winner ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::cancelled_backoff_does_not_wait_or_retry ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::cursor_links_are_authoritative_even_with_null_or_stale_page_numbers ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::queued_work_and_provenance_block_without_changing_binding ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::competing_change_and_submission_cannot_both_succeed ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::http_pages_follow_cursor_and_preserve_headers_and_encoded_filter ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::missing_next_cursor_is_not_silently_treated_as_completed ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::pagination_cycle_detection_survives_restarting_after_every_page ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::persisted_cursor_resumes_with_a_new_client_and_stays_complete_at_eof ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::rejected_page_does_not_advance_the_cursor ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::rejects_pagination_outside_the_authenticated_endpoint ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::resumed_cursor_rejects_untrusted_destinations_and_invalid_state_before_http ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::http_retries_429_but_never_follows_redirects_or_shortens_long_backoff ... ok horae-tests-0.1.0> test importers::harvest::api_source::tests::assembled_rows_convert_to_exact_minutes ... ok horae-tests-0.1.0> test importers::harvest::api_source::tests::assembles_rows_joining_parents_by_id ... ok horae-tests-0.1.0> test importers::harvest::api_source::tests::hours_render_as_exact_decimals ... ok horae-tests-0.1.0> test importers::harvest::api_source::tests::http_page_preserves_decimal_values_before_integer_conversion ... ok horae-tests-0.1.0> test importers::harvest::api_source::tests::json_exponents_expand_exactly_with_bounded_output ... ok horae-tests-0.1.0> test harvest::pagination_tests::task_permissions::task_api_rechecks_global_rate_access_independently_of_catalog ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::successful_change_preserves_business_rows_and_failure_rolls_back_secrets ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::running_jobs_block_change_and_old_execution_never_reaches_http ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::http_rejects_oversized_malformed_and_cyclic_pages ... ok horae-tests-0.1.0> test importers::harvest::account_switch::tests::retry_and_change_are_serialized ... ok horae-tests-0.1.0> test harvest::pagination_tests::task_permissions::task_api_uses_canonical_catalog_scope_for_count_list_and_direct_id ... ok horae-tests-0.1.0> test importers::harvest::api_source::http::tests::slow_consumer_backpressures_http_and_cancellation_stops_further_pages ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::another_account_cannot_replace_credentials_or_watermarks ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::bad_key_length_is_rejected ... ok horae-tests-0.1.0> test importers::harvest::credentials::authority_tests::connection_changes_hold_authority_until_commit ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::concurrent_first_connections_cannot_bind_different_accounts ... ok horae-tests-0.1.0> test importers::harvest::credentials::authority_tests::connection_changes_recheck_authority_after_actor_only_wait ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::connect_and_disconnect_share_import_exclusion_without_blocking_other_orgs ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::decode_hex_rejects_bad_input ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::connection_changes_work_with_a_single_connection_pool ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::encrypt_then_decrypt_round_trips ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::disconnect_preserves_identity_and_provenance_for_the_original_account ... ok horae-tests-0.1.0> test importers::harvest::credentials::authority_tests::connection_changes_recheck_authority_after_organization_wait ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::nonce_makes_ciphertext_nondeterministic ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::failed_credential_write_does_not_leave_an_account_binding ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::migration_binds_existing_connections_without_changing_secrets_or_markers ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::wrong_key_fails_to_decrypt ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::bad_date_becomes_a_row_error_not_a_rejection ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::conflicting_email_aliases_error_only_the_affected_row ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::csv_records_preserve_multiline_unicode_across_single_byte_reads ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::cursor_beyond_upload_is_rejected_without_parsing_rows ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::cursor_resumes_after_multiline_unicode_and_preserves_error_locations ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::delivers_a_row_before_reading_the_rest_of_the_file ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::empty_file_is_rejected ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::identity_columns_are_required_and_cannot_repeat ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::invalid_utf8_errors_one_record_and_continues ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::missing_required_columns_is_rejected ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::names_stay_separate_from_optional_email ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::parse_bool_accepts_yes_variants ... ok horae-tests-0.1.0> test importers::harvest::csv_source::tests::parses_rows_case_insensitively ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::same_account_reconnect_rotates_encryption_without_resetting_watermarks ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::unidentified_legacy_provenance_requires_operator_review ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::api_connection_checks_work_with_a_single_connection_pool ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::api_and_csv_share_the_lock_but_other_organizations_can_import ... ok horae-tests-0.1.0> test importers::harvest::credentials::authority_tests::connection_changes_require_current_tenant_bound_administrator ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::api_sync_adopts_entries_from_a_prior_csv_import ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::bad_records_are_reported_and_run_continues ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::cancellation_rolls_back_rows_and_releases_the_import_session ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::cancelled_http_waiter_keeps_the_lock_until_its_worker_exits ... ok horae-tests-0.1.0> test importers::harvest::credentials::authority_tests::denied_first_connection_creates_no_binding_credentials_or_generation ... ok horae-tests-0.1.0> test importers::harvest::credentials::tests::completed_credential_changes_allow_immediate_retries ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_ambiguous_names_include_inactive_users_but_unique_email_disambiguates ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_malformed_file_is_rejected_with_no_writes ... ok horae-tests-0.1.0> test importers::harvest::credentials::authority_tests::disconnected_noop_still_requires_authority ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_import_populates_and_is_idempotent ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::concurrent_imports_reject_overlap_without_collapsing_repeated_entries ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_name_fallback_requires_a_full_unique_name_and_never_overrides_email ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_name_only_matches_one_org_user_and_reimports_without_duplicates ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::csv_applies_before_eof_but_transport_failure_rolls_back_everything ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_name_only_dry_run_and_duplicate_occurrences_preserve_history ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::cancelling_a_csv_waiting_for_more_bytes_releases_its_session ... ok horae-tests-0.1.0> test importers::harvest::credentials::authority_tests::failed_connection_changes_roll_back_and_release_authority_and_reservation ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::completed_imports_allow_immediate_retries ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::csv_preview_errors_and_repeated_rows_match_commit_and_reimport ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_cancel_joins_parser_and_preserves_committed_rows ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::csv_sql_backpressure_stops_reading_later_input_rows ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_crosses_batch_boundaries_without_committing_domain_data ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_discards_incomplete_preparation_and_resumes_its_checkpoint ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_report_metadata_is_bounded_after_recovery ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_resumes_after_a_crash_without_recounting_rows ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_stale_commit_is_fenced_without_a_heartbeat ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_rejects_a_stale_next_batch ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::measure_csv_durable_100k ... ignored, 100,000-row durable CSV measurement; run explicitly with --release --nocapture horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::measure_csv_durable_large_catalog_100k ... ignored, 100,000-row durable CSV with 5,000 parent sets; run explicitly with --release --nocapture horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::measure_csv_streaming_100k ... ignored, 100,000-row CSV measurement; run explicitly with --release --nocapture horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::measure_csv_streaming_large_catalog_100k ... ignored, 100,000-row CSV with 5,000 parent sets; run explicitly with --release --nocapture horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_cancel_preserves_its_completed_batches_for_manual_retry ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_cancel_preserves_simulation_for_manual_retry ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::distinct_harvest_ids_with_identical_fields_import_as_two ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::dry_run_writes_nothing_and_matches_commit ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::edited_entry_still_matched_by_provenance ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::failed_source_releases_the_session_and_rolls_back_partial_rows ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_reclaimed_lease_cannot_commit_the_next_batch ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::full_import_creates_all_levels_with_exact_minutes ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::import_cleanup_does_not_hide_a_backend_failure ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::import_cleanup_rolls_back_an_untracked_server_transaction ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::import_cleanup_recovers_unacknowledged_savepoint_release ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::import_rejects_ambiguous_normalized_email_without_partial_writes ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_resumes_committed_batches_without_recounting_duplicate_rows ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::lookup_cache::cold_query_callsite_on_untraced_thread_is_still_captured ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::imported_project_task_activity_preserves_archival_and_legacy_links ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::lookup_cache::cached_email_and_full_name_do_not_share_a_namespace ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::lookup_cache::cached_project_task_still_validates_each_rows_rate ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::lookup_cache::lookup_index_migration_preserves_existing_ambiguous_identities ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::lookup_cache::new_run_rechecks_previously_cached_user_for_ambiguity ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_waits_for_input_without_an_open_transaction ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::lookup_cache::project_task_cache_distinguishes_both_sides_of_the_link ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::natural_key_reimport_normalizes_whitespace_and_ascii_case ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::lookup_cache::rolled_back_row_does_not_cache_user_or_project_task ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::overflowing_decimals_fail_only_their_rows ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::reimporting_identical_csv_rows_is_idempotent ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::submission_barrier_blocks_imported_time_entries ... ok horae-tests-0.1.0> test importers::harvest::oauth::tests::authorize_url_carries_state_and_encoded_redirect ... ok horae-tests-0.1.0> test importers::harvest::oauth::tests::authorize_url_preserves_query_values_without_injecting_parameters ... ok horae-tests-0.1.0> test importers::harvest::oauth_callback_tests::account_policy_failures_return_safe_actionable_conflicts ... ok horae-tests-0.1.0> test importers::harvest::oauth_callback_tests::mismatched_state_is_rejected_without_a_code ... ok horae-tests-0.1.0> test importers::harvest::oauth_callback_tests::missing_returned_state_is_rejected ... ok horae-tests-0.1.0> test importers::harvest::oauth_callback_tests::missing_stored_state_is_rejected ... ok horae-tests-0.1.0> test importers::harvest::oauth_callback_tests::provider_error_is_rejected_before_exchange ... ok horae-tests-0.1.0> test importers::harvest::oauth_callback_tests::revoked_callback_authority_returns_only_a_safe_forbidden_message ... ok horae-tests-0.1.0> test importers::harvest::oauth_callback_tests::valid_matching_state_yields_the_code ... ok horae-tests-0.1.0> test importers::harvest::oauth_callback_tests::valid_state_but_missing_code_is_rejected ... ok horae-tests-0.1.0> test importers::harvest::report::tests::archive_metadata_cannot_masquerade_as_a_legacy_or_inconsistent_report ... ok horae-tests-0.1.0> test importers::harvest::report::tests::archived_report_round_trips_without_losing_error_accounting ... ok horae-tests-0.1.0> test importers::harvest::report::tests::legacy_report_preserves_its_counts_and_error_details ... ok horae-tests-0.1.0> test importers::harvest::report::tests::report_rejects_unsupported_and_invalid_versions ... ok horae-tests-0.1.0> test importers::harvest::report::tests::serialized_report_has_a_supported_schema_version ... ok horae-tests-0.1.0> test importers::harvest::resolve::checkpoint_tests::run_cache_round_trip_preserves_identity_namespaces_and_occurrences ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::second_identical_run_creates_nothing ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::csv_measurement_recovers_a_complete_batch_without_recounting ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::two_identical_csv_rows_import_as_two_entries ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::watermark_advances_only_on_commit ... ok horae-tests-0.1.0> test importers::harvest::resolve::preview::tests::checkpoint_restores_known_task_currency_and_keeps_old_currency_unknown ... ok horae-tests-0.1.0> test importers::harvest::resolve::preview::tests::checkpoint_retains_link_activity_and_derives_missing_legacy_field ... ok horae-tests-0.1.0> test importers::harvest::resolve::preview::tests::rejects_foreign_parent_snapshots_before_restoring_any_rows ... ok horae-tests-0.1.0> test importers::harvest::streaming::tests::api_planning_policy_ends_with_the_transaction ... ok horae-tests-0.1.0> test importers::harvest::streaming::durable::preview::tests::restoration_omits_unneeded_virtual_entries ... ok horae-tests-0.1.0> test importers::harvest::streaming::tests::import_batches_join_the_access_gate_before_resource_locks ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::api_rejects_ambiguous_email_without_advancing_watermark ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::lookup_cache::repeated_rows_resolve_each_user_and_project_task_once ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::api_requires_email_even_when_full_name_matches ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_cancellation_preserves_confirmed_pages_for_manual_retry ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_finalization_retry_does_not_repeat_completed_downloads ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_preview_cancellation_preserves_confirmed_pages_for_manual_retry ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_preview_finalization_retry_does_not_repeat_completed_downloads ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_preview_reclaimed_worker_cannot_checkpoint_its_next_page ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_matches_existing_and_new_rows_with_one_connection ... ok horae-tests-0.1.0> test importers::harvest::engine_tests::large_run_reuses_parents_and_reconciles_totals ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_preview_resume_preserves_row_errors ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_catalog_download ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_pages_without_publishing_domain_data ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_reclaimed_worker_cannot_commit_its_next_page ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_resume_keeps_earlier_errors_and_does_not_advance_watermark ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_resume_remembers_an_earlier_missing_timestamp ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_after_a_confirmed_parent_batch ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::disconnect_and_reconnect_preserves_imported_records_and_exact_identity ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_resumes_a_partially_downloaded_catalog ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::empty_sync_does_not_invent_a_watermark ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_preview_preserves_adoptions_and_repeated_ids_across_recovery ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::dry_run_leaves_data_provenance_and_watermark_unchanged ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_resumes_committed_pages_and_preserves_the_high_watermark ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::failed_api_commit_publishes_its_last_confirmed_page_report ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::exact_api_decimals_survive_preview_commit_and_reimport ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::failed_client_propagates_to_project_and_entry_without_placeholder_records ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::invalid_parent_blocks_dependent_time_but_other_catalog_records_survive ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::failed_rows_are_available_to_the_next_incremental_retry ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::missing_client_fallback_and_failed_project_savepoints_do_not_poison_cache ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::failed_api_preview_publishes_its_last_confirmed_page_report ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::missing_source_timestamp_keeps_the_previous_watermark ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::out_of_range_api_decimals_error_per_row_and_leave_retry_watermark ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::paging::cancelled_page_consumer_retains_lock_until_worker_exits_and_rolls_back ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::paging::durable_api_stale_commit_cannot_advance_data_or_watermark ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::parent_catalog_preserves_metadata_and_counts_each_entity_once ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::scale::api_100k_commit_and_reimport ... ignored, 100,000-entry scale measurement; run explicitly with --release --nocapture horae-tests-0.1.0> test importers::harvest::sync_tests::scale::api_100k_dry_run ... ignored, 100,000-entry scale measurement; run explicitly with --release --nocapture horae-tests-0.1.0> test importers::harvest::sync_tests::scale::api_durable_100k_commit_and_reimport ... ignored, 100,000-entry durable API measurement; run explicitly with --release --nocapture horae-tests-0.1.0> test importers::harvest::sync_tests::scale::api_durable_100k_dry_run ... ignored, 100,000-entry durable API measurement; run explicitly with --release --nocapture horae-tests-0.1.0> test importers::harvest::sync_tests::paging::later_download_failure_rolls_back_parents_rows_and_watermark ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::parent_only_api_import_creates_catalog_and_reimport_skips_it ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::parent_only_dry_run_previews_without_persisting_catalog ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::refreshed_tokens_survive_a_dry_run_rollback_in_the_same_import_session ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::checkpoints::durable_api_resumes_after_a_confirmed_parent_batch ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::successful_sync_only_marks_the_incrementally_fetched_entity ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::watermark_never_passes_the_start_of_capture ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::watermark_write_failure_rolls_back_imported_data ... ok horae-tests-0.1.0> test init::tests::init_creates_one_org_and_one_admin_and_nothing_else ... ok horae-tests-0.1.0> test init::tests::init_refuses_when_an_organization_exists ... ok horae-tests-0.1.0> test jobs::outbox::tests::acknowledges_confirmed_delivery_without_reclaiming_it ... ok horae-tests-0.1.0> test jobs::outbox::tests::invalid_payload_is_not_delivered_and_does_not_leak_into_errors ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::paging::invalid_and_missing_timestamp_rows_cross_page_boundaries_without_advancing ... ok horae-tests-0.1.0> test jobs::outbox::tests::plugin_failure_retries_with_the_same_event_identity ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::paging::durable_api_cancel_waits_for_the_producer_before_acknowledging ... ok horae-tests-0.1.0> test jobs::outbox::tests::worker_delivers_available_events_and_stops_cleanly ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_boundaries_recheck_after_organization_and_actor_waits ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_keeps_its_snapshot_when_later_progress_archives_the_inline_tail ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::scale::http_pages_preview_commit_and_reimport ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::scale::durable_measurement_finishes_from_its_eof_checkpoint ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_readers_retain_authority_through_their_bounded_reads ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_preparation_is_tenant_bound_and_releases_failed_transactions ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_reports_missing_fragments_after_its_buffered_page ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_denies_revocation_before_first_page_and_inline_tail ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_preparation_denies_revoked_authority ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_reads_only_when_consumed_and_releases_its_connection ... ok horae-tests-0.1.0> test jobs::report::tests::concurrent_legacy_converters_archive_each_error_once ... ok horae-tests-0.1.0> test jobs::report::tests::legacy_converter_rediscovers_after_candidate_deletion ... ok horae-tests-0.1.0> test jobs::report::tests::legacy_upgrade_preserves_a_concurrently_archived_workers_lease ... ok horae-tests-0.1.0> test jobs::report::stream_tests::download_rechecks_after_buffered_pages_and_before_the_captured_tail ... ok horae-tests-0.1.0> test jobs::tests::cancellation_and_retry_are_scoped_and_idempotent ... ok horae-tests-0.1.0> test jobs::report::tests::report_fragments_survive_until_the_owning_job_expires ... ok horae-tests-0.1.0> test jobs::tests::api_job_keeps_its_policy_across_duplicate_enqueue_and_manual_retry ... ok horae-tests-0.1.0> test jobs::report::tests::legacy_converter_uses_replaced_payload_after_waiting ... ok horae-tests-0.1.0> test jobs::tests::claims_are_atomic_and_expired_leases_recover ... ok horae-tests-0.1.0> test importers::harvest::sync_tests::scale::durable_api_report_preserves_overflow_errors_after_recovery ... ok horae-tests-0.1.0> test jobs::report::tests::legacy_upgrade_preserves_job_states_and_existing_archives ... ok horae-tests-0.1.0> test jobs::tests::cleanup_retains_retryable_uploads_and_deletes_expired_jobs ... ok horae-tests-0.1.0> test jobs::tests::concurrent_csv_resubmission_preserves_identity_after_upload_cleanup ... ok horae-tests-0.1.0> test jobs::report::tests::upgrading_legacy_reports_preserves_errors_and_fences_old_attempts ... ok horae-tests-0.1.0> test jobs::tests::failed_csv_commit_retains_confirmed_report_through_history_and_retry ... ok horae-tests-0.1.0> test jobs::tests::expired_lease_cannot_renew_or_commit_using_an_old_transaction_timestamp ... ok horae-tests-0.1.0> test jobs::tests::cancellation_survives_a_crash_before_the_worker_acknowledges ... ok horae-tests-0.1.0> test jobs::tests::history_paginates_tied_timestamps_and_rejects_foreign_cursors ... ok horae-tests-0.1.0> test jobs::tests::csv_job_persists_its_policy_with_the_upload ... ok horae-tests-0.1.0> test jobs::tests::expired_final_attempt_fails_without_claiming_again ... ok horae-tests-0.1.0> test jobs::tests::failed_csv_preview_retains_confirmed_report_through_history_and_retry ... ok horae-tests-0.1.0> test jobs::tests::final_failure_is_retained_and_manual_retry_gets_a_new_budget ... ok horae-tests-0.1.0> test jobs::tests::cancellation_waits_for_the_claimed_execution_before_allowing_retry ... ok horae-tests-0.1.0> test jobs::tests::outbox_delivery_is_idempotent ... ok horae-tests-0.1.0> test jobs::tests::import_adapters_reject_a_lease_from_another_organization ... ok horae-tests-0.1.0> test jobs::tests::invalid_stored_payloads_reach_a_terminal_error ... ok horae-tests-0.1.0> test jobs::tests::outbox_claims_only_the_requested_event_kind ... ok horae-tests-0.1.0> test jobs::tests::payload_kind_is_stable_and_round_trips ... ok horae-tests-0.1.0> test jobs::tests::payload_versions_preserve_legacy_jobs_and_reject_unknown_versions ... ok horae-tests-0.1.0> test jobs::tests::invalid_policy_cannot_enqueue_a_job_or_upload ... ok horae-tests-0.1.0> test jobs::tests::retry_snapshot_does_not_guess_unknown_payloads_or_sources ... ok horae-tests-0.1.0> test jobs::tests::outbox_rollback_does_not_publish_an_event ... ok horae-tests-0.1.0> test jobs::tests::shutdown_deadline_drops_and_joins_in_flight_work ... ok horae-tests-0.1.0> test jobs::tests::shutdown_waits_for_in_flight_work ... ok horae-tests-0.1.0> test jobs::tests::retry_snapshot_matches_status_and_list_without_exposing_payload ... ok horae-tests-0.1.0> test jobs::tests::missing_csv_upload_records_error_and_requeues ... ok horae-tests-0.1.0> test jobs::tests::reclaimed_attempt_rejects_stale_results_even_with_the_same_worker_name ... ok horae-tests-0.1.0> test jobs::report::tests::legacy_converter_gate_allows_a_job_locked_workers_chunk_foreign_keys ... ok horae-tests-0.1.0> test jobs::tests::synthetic_job_uses_the_same_registered_envelope ... ok horae-tests-0.1.0> test jobs::tests::outbox_same_kind_consumers_cannot_claim_the_same_lease ... ok horae-tests-0.1.0> test models::project_creation::tests::draft_roundtrip_preserves_incomplete_input_without_demo_data ... ok horae-tests-0.1.0> test models::project_creation::tests::legacy_project_edit_roundtrip_keeps_omitted_identity_and_intent ... ok horae-tests-0.1.0> test models::project_creation::tests::unauthorized_catalog_cost_is_absent_from_serialized_options ... ok horae-tests-0.1.0> test models::project_creation::tests::unknown_draft_fields_are_rejected ... ok horae-tests-0.1.0> test models::project_managers::tests::command_preserves_durable_intent_and_strictly_decodes_its_discriminator ... ok horae-tests-0.1.0> test models::task::tests::rate_transport_distinguishes_preserve_clear_and_zero ... ok horae-tests-0.1.0> test models::task::tests::rate_transport_rejects_ambiguous_or_imprecise_intent ... ok horae-tests-0.1.0> test models::time_entry::tests::time_entry_wire_does_not_accept_invoice_identity_from_input ... ok horae-tests-0.1.0> test models::time_entry::tests::time_entry_wire_omits_invoice_identity_without_mutating_internal_record ... ok horae-tests-0.1.0> test jobs::tests::upload_organization_must_match_its_job ... ok horae-tests-0.1.0> test jobs::tests::missing_configuration_records_error_and_requeues ... ok horae-tests-0.1.0> test notifications::tests::acknowledged_email_is_never_claimed_again ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_observes_winning_activation_and_alert_enable ... ok horae-tests-0.1.0> test jobs::tests::synthetic_job_executes_through_claim_and_completion ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_rejects_missing_settings_without_waiting_on_child_locks ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_refreshes_after_recipient_and_project_waits ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_rechecks_claim_and_clock_after_final_wait ... ok horae-tests-0.1.0> test jobs::tests::stopped_worker_leaves_queued_jobs_unclaimed ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_releases_all_gates_before_blocked_transport ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_skips_notification_appearing_after_discovery ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_skips_retargeted_notification_without_terminalizing ... ok horae-tests-0.1.0> test jobs::tests::submission_key_cannot_change_api_mode_or_scope ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_skips_project_drift_or_disappearance ... ok horae-tests-0.1.0> test notifications::tests::cancelling_delivery_kills_the_active_sender ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_terminal_rejections_preserve_existing_reasons ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_uses_current_payload_after_recipient_wait ... ok horae-tests-0.1.0> test jobs::tests::outbox_stale_claims_cannot_acknowledge_or_reschedule_delivery ... ok horae-tests-0.1.0> test notifications::tests::mail_configuration_is_disabled_by_default_and_rejects_partial_values ... ok horae-tests-0.1.0> test notifications::tests::mail_configuration_requires_an_executable_file_and_safe_sender ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_delivery_waits_for_organization_and_rechecks_recipient ... ok horae-tests-0.1.0> test notifications::tests::recipient_injection_is_rejected_before_starting_a_process ... ok horae-tests-0.1.0> test notifications::tests::rendered_mail_bounds_body_lines_for_long_unicode_and_control_names ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_preparation_overrides_read_only_without_leaking_transaction_settings ... ok horae-tests-0.1.0> test notifications::tests::disabled_mail_worker_does_not_claim_pending_notifications ... ok horae-tests-0.1.0> test notifications::tests::sendmail_failure_does_not_expose_program_output ... ok horae-tests-0.1.0> test notifications::tests::authority::budget_preparation_cancellation_and_deadline_release_single_connection ... ok horae-tests-0.1.0> test notifications::tests::sendmail_receives_fixed_arguments_and_stable_message_identity ... ok horae-tests-0.1.0> test notifications::tests::foreign_notification_payload_is_terminal_and_never_sent ... ok horae-tests-0.1.0> test notifications::tests::failed_email_retries_same_identity_and_eventually_stops ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::all_grants_do_not_make_an_individual_an_administrator ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::dirty_state_includes_template_revision_and_independent_identity ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::dirty_state_tracks_reverted_grants_and_profile_provenance ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::editing_invalidates_preview_and_confirmation ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::joint_losses_need_confirmation_and_retry_preserves_exact_command ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::keeping_project_access_is_explicit_and_requires_new_effects ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::load_keeps_exact_grants_and_explicit_edit_intent ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::malformed_loaded_grants_are_not_normalized ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::member_floor_and_explicit_administrator_are_not_customizable ... ok horae-tests-0.1.0> test pages::admin::permission_editor::draft::tests::stale_or_mismatched_preview_cannot_be_confirmed ... ok horae-tests-0.1.0> test pages::admin::permission_editor::tests::known_rejections_require_recovery_and_hide_authentication_diagnostics ... ok horae-tests-0.1.0> test pages::admin::permission_editor::tests::no_op_preview_does_not_invent_permission_changes ... ok horae-tests-0.1.0> test pages::admin::permission_editor::tests::review_explains_identity_loss_and_both_exact_management_sets ... ok horae-tests-0.1.0> test pages::admin::permission_editor::tests::unknown_save_failure_is_not_treated_as_a_definite_rejection ... ok horae-tests-0.1.0> test pages::clients::filters::tests::clearing_query_preserves_selected_currency_and_lifecycle ... ok horae-tests-0.1.0> test pages::clients::filters::tests::lifecycle_counts_share_query_and_currency_filters ... ok horae-tests-0.1.0> test pages::clients::filters::tests::name_search_ignores_case_and_surrounding_whitespace ... ok horae-tests-0.1.0> test pages::clients::filters::tests::preferred_or_visible_project_currency_matches_but_query_still_applies ... ok horae-tests-0.1.0> test pages::clients::form::tests::absent_billing_authority_never_produces_an_edit_payload ... ok horae-tests-0.1.0> test pages::clients::form::tests::ambiguous_creation_errors_require_explicit_recovery ... ok horae-tests-0.1.0> test pages::clients::form::tests::clearing_a_rate_is_explicit_and_needs_no_currency_confirmation ... ok horae-tests-0.1.0> test pages::clients::form::tests::invalid_fields_are_not_rewritten_by_validation ... ok horae-tests-0.1.0> test pages::clients::form::tests::rate_replacement_requires_confirmation_in_the_current_currency ... ok horae-tests-0.1.0> test pages::clients::form::tests::untouched_fields_keep_zero_rate_and_original_snapshot ... ok horae-tests-0.1.0> test pages::importers::presentation::tests::interrupted_report_is_partial_regardless_of_retry_prerequisites ... ok horae-tests-0.1.0> test pages::importers::presentation::tests::no_selection_does_not_claim_no_import_history ... ok horae-tests-0.1.0> test pages::importers::presentation::tests::source_labels_do_not_guess_unknown_importers ... ok horae-tests-0.1.0> test pages::importers::presentation::tests::states_and_phases_have_readable_unknown_fallbacks ... ok horae-tests-0.1.0> test pages::importers::presentation::tests::summaries_distinguish_zero_skipped_and_mixed_outcomes ... ok horae-tests-0.1.0> test pages::invoices::defaults_form::tests::invoice_fields_bound_metadata_by_characters_and_reject_nul ... ok horae-tests-0.1.0> test pages::invoices::defaults_form::tests::invoice_fields_preserve_exact_percentages_and_custom_terms ... ok horae-tests-0.1.0> test pages::invoices::defaults_form::tests::invoice_fields_preserve_receipt_terms_and_empty_optional_percentages ... ok horae-tests-0.1.0> test pages::invoices::defaults_form::tests::invoice_fields_reject_invalid_percentages_terms_and_second_tax ... ok horae-tests-0.1.0> test pages::invoices::preparation::fees::tests::fee_inputs_require_exact_amounts_and_an_explicit_positive_charge ... ok horae-tests-0.1.0> test pages::invoices::preparation::fees::tests::refresh_keeps_raw_edits_and_does_not_select_new_sources ... ok horae-tests-0.1.0> test pages::invoices::preparation::fees::tests::refresh_preserves_missing_or_relabelled_edits_until_explicit_removal ... ok horae-tests-0.1.0> test pages::invoices::preparation::tests::invoice_context_selects_only_the_exact_available_client ... ok horae-tests-0.1.0> test pages::invoices::preparation::tests::invoice_review_requires_matching_sources_and_valid_values ... ok horae-tests-0.1.0> test pages::invoices::preparation::tests::unavailable_or_malformed_invoice_context_never_uses_the_first_client ... ok horae-tests-0.1.0> test pages::new_project::basics::tests::a_batch_that_would_exceed_the_tag_limit_is_rejected ... ok horae-tests-0.1.0> test pages::new_project::basics::tests::a_full_tag_list_still_accepts_a_duplicate ... ok horae-tests-0.1.0> test pages::new_project::basics::tests::overlong_tags_are_rejected_without_truncation ... ok horae-tests-0.1.0> test pages::new_project::basics::tests::tag_length_counts_characters_instead_of_bytes ... ok horae-tests-0.1.0> test pages::new_project::basics::tests::tags_trim_and_deduplicate_without_changing_existing_spelling ... ok horae-tests-0.1.0> test pages::new_project::billing::tests::budget_errors_target_a_control_that_can_be_corrected ... ok horae-tests-0.1.0> test pages::new_project::draft::tests::a_mismatched_acknowledgement_does_not_lose_pending_input ... ok horae-tests-0.1.0> test pages::new_project::draft::tests::a_retry_keeps_the_unacknowledged_payload_and_revision ... ok horae-tests-0.1.0> test pages::new_project::draft::tests::a_validation_rejection_allows_corrected_input_at_the_same_revision ... ok horae-tests-0.1.0> test pages::new_project::draft::tests::an_empty_form_is_not_reported_as_saved ... ok horae-tests-0.1.0> test pages::new_project::draft::tests::any_saved_draft_wins_over_context_including_empty_or_matching_client ... ok horae-tests-0.1.0> test pages::new_project::draft::tests::context_prefills_only_a_new_form_without_fixing_its_currency ... ok horae-tests-0.1.0> test pages::new_project::draft::tests::resuming_preserves_the_server_identity_and_incomplete_fields ... ok horae-tests-0.1.0> test pages::new_project::team::tests::adding_everyone_deduplicates_without_replacing_project_overrides ... ok horae-tests-0.1.0> test pages::new_project::team::tests::exceeding_the_team_limit_does_not_partially_add_people ... ok horae-tests-0.1.0> test pages::new_project::team::tests::legacy_manager_checkbox_needs_no_canonical_selection ... ok horae-tests-0.1.0> test pages::new_project::team::tests::manager_checkbox_updates_complete_selection_without_dropping_outside_managers ... ok horae-tests-0.1.0> test pages::new_project::team::tests::removing_a_member_keeps_an_empty_restricted_task_restricted ... ok horae-tests-0.1.0> test pages::new_project::team::tests::tracking_removal_and_readdition_keep_independent_manager_intent ... ok horae-tests-0.1.0> test pages::new_project::tests::a_rejected_creation_can_be_edited_but_an_uncertain_commit_must_be_retried ... ok horae-tests-0.1.0> test pages::new_project::tests::only_known_validation_fields_can_target_a_control ... ok horae-tests-0.1.0> test pages::projects::budget_display_tests::configured_summary_does_not_recompute_totals_from_private_breakdown ... ok horae-tests-0.1.0> test pages::projects::budget_display_tests::display_preserves_units_sign_and_large_integer_values ... ok horae-tests-0.1.0> test pages::projects::budget_display_tests::project_spend_keeps_withheld_money_distinct_from_zero_and_visible_hours ... ok horae-tests-0.1.0> test pages::projects::budget_display_tests::tag_filter_matches_identity_without_duplicates_or_name_collisions ... ok horae-tests-0.1.0> test pages::projects::budget_display_tests::unallocated_zero_and_overflow_budgets_are_not_conflated ... ok horae-tests-0.1.0> test pages::reports::tests::cost_total_uses_organization_currency_across_billing_currencies ... ok horae-tests-0.1.0> test pages::reports::tests::mixed_currencies_are_not_added_even_when_the_numbers_would_overflow ... ok horae-tests-0.1.0> test pages::reports::tests::monetary_total_overflow_is_visible_instead_of_panicking ... ok horae-tests-0.1.0> test pages::reports::tests::redacted_costs_do_not_become_zero_or_partial_totals ... ok horae-tests-0.1.0> test pages::reports::tests::single_currency_totals_are_formatted_and_empty_reports_have_no_amount ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_admin_identity_is_explicit_not_derived_from_grants ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_distinguishes_authentication_forbidden_and_failure ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_does_not_disclose_internal_fields_or_offer_edits ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_empty_grants_are_not_normalized ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_grants_do_not_promise_unavailable_features ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_legacy_is_not_empty_or_a_profile ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_loading_hides_previous_snapshot ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_preserves_exact_grants_without_profile_inference ... ok horae-tests-0.1.0> test pages::settings::own_permissions::tests::own_permissions_view_unsupported_catalog_hides_uninterpretable_grants ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::completes_pages_while_pinning_subject_requester_and_policy ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::empty_authorized_sheet_is_a_complete_result ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::later_page_failure_does_not_return_partial_totals ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::old_week_results_and_errors_are_not_current_even_before_restart ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::refuses_a_changed_requester_subject_or_policy_between_pages ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::rejects_a_nonadvancing_cursor_instead_of_looping ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::rejects_mixed_subjects_out_of_window_rows_and_duplicates ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::rejects_rows_repeated_across_pages ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::rejects_the_wrong_first_subject_or_requester ... ok horae-tests-0.1.0> test pages::timesheet::refresh_tests::discarding_a_row_removes_its_drafts_only_for_the_captured_week ... ok horae-tests-0.1.0> test pages::timesheet::refresh_tests::typing_in_another_cell_survives_a_save_refresh ... ok horae-tests-0.1.0> test pages::timesheet::tests::cal_span_day_shows_only_the_anchor_column ... ok horae-tests-0.1.0> test pages::timesheet::tests::cal_span_defaults_to_week ... ok horae-tests-0.1.0> test pages::timesheet::tests::cal_span_unknown_falls_back_to_week ... ok horae-tests-0.1.0> test pages::timesheet::tests::cal_span_url_roundtrips ... ok horae-tests-0.1.0> test pages::timesheet::tests::cal_span_week_shows_all_seven_days ... ok horae-tests-0.1.0> test pages::timesheet::tests::cal_span_work_week_preserves_date_order_across_weekends ... ok horae-tests-0.1.0> test pages::timesheet::tests::cal_span_work_week_shows_monday_to_friday ... ok horae-tests-0.1.0> test pages::timesheet::tests::cal_span_work_week_skips_sunday_when_it_is_the_first_column ... ok horae-tests-0.1.0> test pages::timesheet::tests::day_col_class_marks_today ... ok horae-tests-0.1.0> test pages::timesheet::tests::day_col_class_marks_weekend ... ok horae-tests-0.1.0> test pages::timesheet::tests::day_col_class_plain_weekday ... ok horae-tests-0.1.0> test pages::timesheet::tests::day_col_class_today_wins_over_weekend ... ok horae-tests-0.1.0> test pages::timesheet::tests::delegated_stop_requires_the_exact_eligible_pair_and_keeps_state_locks ... ok horae-tests-0.1.0> test pages::timesheet::tests::invalid_duration_cannot_start_a_timer_save_or_clear_a_cell ... ok horae-tests-0.1.0> test pages::timesheet::tests::legacy_historical_edits_do_not_create_new_tracking_eligibility ... ok horae-tests-0.1.0> test pages::timesheet::tests::only_a_blank_duration_can_start_an_eligible_timer ... ok horae-tests-0.1.0> test pages::timesheet::tests::read_only_day_keeps_facts_but_disables_edit_and_start_buttons ... ok horae-tests-0.1.0> test pages::timesheet::tests::terminal_stop_recovery_is_owner_only_when_tracking_is_lost ... ok horae-tests-0.1.0> test pages::timesheet::tests::timed_lanes_still_widens_overlapping_entries ... ok horae-tests-0.1.0> test pages::timesheet::tests::timed_lanes_terminates_on_a_zero_length_entry ... ok horae-tests-0.1.0> test pages::timesheet::tests::today_offset_is_none_after_the_week ... ok horae-tests-0.1.0> test pages::timesheet::tests::today_offset_is_none_before_the_week ... ok horae-tests-0.1.0> test pages::timesheet::tests::today_offset_is_six_on_the_sunday ... ok horae-tests-0.1.0> test pages::timesheet::tests::today_offset_is_zero_on_the_monday ... ok horae-tests-0.1.0> test pages::timesheet::tests::value_cell_class_empty_wins_over_today ... ok horae-tests-0.1.0> test pages::timesheet::tests::value_cell_class_marks_today_when_nonzero ... ok horae-tests-0.1.0> test pages::timesheet::tests::visible_time_without_writable_tracking_does_not_enable_edit_controls ... ok horae-tests-0.1.0> test pages::timesheet::tests::weekend_style_follows_the_date_not_the_column_offset ... ok horae-tests-0.1.0> test pages::timesheet::tests::weekly_duration_edit_preserves_nine_am_start_notes_and_billability ... ok horae-tests-0.1.0> test pages::timesheet::tests::weekly_new_entries_are_untimed_and_explicit_clears_still_work ... ok horae-tests-0.1.0> test notifications::tests::verbose_sender_output_is_discarded_without_blocking_delivery ... ok horae-tests-0.1.0> test jobs::tests::submission_key_cannot_change_csv_bytes_or_mode ... ok horae-tests-0.1.0> test notifications::tests::mail_worker_delivers_only_its_kind_and_drains_cleanly ... ok horae-tests-0.1.0> test notifications::tests::revoked_recipient_does_not_receive_a_pending_email ... ok horae-tests-0.1.0> test notifications::tests::retry_can_recover_without_changing_message_identity ... ok horae-tests-0.1.0> test notifications::tests::stale_email_lease_cannot_start_delivery ... ok horae-tests-0.1.0> test plugin::database::tests::application_database_owner_is_not_a_plugin_identity ... ok horae-tests-0.1.0> test plugin::database::tests::dedicated_reader_is_accepted_but_new_write_grants_are_rejected ... ok horae-tests-0.1.0> test plugin::event::tests::active_transition_fires_only_on_a_real_flip ... ok horae-tests-0.1.0> test plugin::event::tests::budget_and_timer_events_serialize ... ok horae-tests-0.1.0> test plugin::event::tests::new_events_have_stable_hook_names ... ok horae-tests-0.1.0> test plugin::event::tests::project_membership_payload_excludes_private_configuration ... ok horae-tests-0.1.0> test plugin::event::tests::role_change_event_carries_previous_role ... ok horae-tests-0.1.0> test plugin::event::tests::submission_event_serializes_payload ... ok horae-tests-0.1.0> test plugin::event::tests::us2_events_have_stable_hook_names ... ok horae-tests-0.1.0> test plugin::database::tests::project_configuration_is_private_even_when_plugin_grants_are_misconfigured ... ok horae-tests-0.1.0> test plugin::host::tests::config_lookup::a_set_key_is_returned ... ok horae-tests-0.1.0> test plugin::host::tests::config_lookup::an_unset_key_is_none ... ok horae-tests-0.1.0> test plugin::database::tests::reader_accepts_optional_first_party_rounding_helper ... ok horae-tests-0.1.0> test plugin::database::tests::reader_cannot_execute_security_definer_functions ... ok horae-tests-0.1.0> test plugin::database::tests::reader_cannot_have_access_to_credentials ... ok horae-tests-0.1.0> test plugin::database::tests::reader_cannot_switch_into_another_role ... ok horae-tests-0.1.0> test plugin::host::tests::database_tests::unconfigured_sql_never_falls_back_to_application_state ... ok horae-tests-0.1.0> test plugin::database::tests::reader_rejects_unapproved_invoker_functions ... ok horae-tests-0.1.0> test plugin::host::tests::response_shaping::error_json_wraps_the_message ... ok horae-tests-0.1.0> test plugin::host::tests::response_shaping::http_body_accepts_the_size_limit_and_rejects_larger_responses ... ok horae-tests-0.1.0> test plugin::host::tests::response_shaping::http_response_carries_status_and_body ... ok horae-tests-0.1.0> test plugin::host::tests::response_shaping::invalid_http_utf8_is_an_error_not_an_empty_success ... ok horae-tests-0.1.0> test plugin::host::tests::statement_is_read_only::a_cte_select_is_allowed ... ok horae-tests-0.1.0> test plugin::host::tests::statement_is_read_only::a_second_statement_is_rejected ... ok horae-tests-0.1.0> test plugin::host::tests::statement_is_read_only::a_single_trailing_semicolon_is_allowed ... ok horae-tests-0.1.0> test plugin::host::tests::statement_is_read_only::a_write_hidden_behind_a_comment_is_rejected ... ok horae-tests-0.1.0> test plugin::host::tests::statement_is_read_only::plain_select_is_allowed ... ok horae-tests-0.1.0> test plugin::host::tests::statement_is_read_only::writes_are_rejected ... ok horae-tests-0.1.0> test plugin::host::tests::wrap_select::strips_a_trailing_semicolon_before_wrapping ... ok horae-tests-0.1.0> test plugin::host::tests::wrap_select::wraps_as_a_bounded_row_query ... ok horae-tests-0.1.0> test plugin::manifest::tests::accepts_all_published_business_events ... ok horae-tests-0.1.0> test plugin::manifest::tests::config_defaults_to_empty_when_absent ... ok horae-tests-0.1.0> test plugin::manifest::tests::parse_valid_manifest ... ok horae-tests-0.1.0> test plugin::manifest::tests::parses_optional_config_table ... ok horae-tests-0.1.0> test plugin::manifest::tests::reject_empty_hooks ... ok horae-tests-0.1.0> test plugin::manifest::tests::reject_unknown_hook ... ok horae-tests-0.1.0> test notifications::tests::sendmail_timeout_kills_and_reaps_the_child ... ok horae-tests-0.1.0> test plugin::host::tests::database_queries_preserve_parameters_and_rollback_session_settings ... ok horae-tests-0.1.0> test plugin::host::tests::database_tests::query_discards_session_advisory_locks ... ok horae-tests-0.1.0> test plugin::host::tests::database_tests::query_results_are_bounded_without_silent_truncation ... ok horae-tests-0.1.0> test plugin::host::tests::database_tests::select_cannot_write_or_gain_application_privileges ... ok horae-tests-0.1.0> horae-tests-0.1.0> running 1 test horae-tests-0.1.0> test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1503 filtered out; finished in 0.20s horae-tests-0.1.0> horae-tests-0.1.0> horae-tests-0.1.0> running 1 test horae-tests-0.1.0> test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1503 filtered out; finished in 0.28s horae-tests-0.1.0> horae-tests-0.1.0> horae-tests-0.1.0> running 1 test horae-tests-0.1.0> test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1503 filtered out; finished in 0.33s horae-tests-0.1.0> horae-tests-0.1.0> horae-tests-0.1.0> running 1 test horae-tests-0.1.0> test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 1503 filtered out; finished in 0.16s horae-tests-0.1.0> horae-tests-0.1.0> test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok horae-tests-0.1.0> test plugin::host::tests::database_tests::wasm_host_uses_the_restricted_connection_on_a_current_thread_runtime ... ok horae-tests-0.1.0> test plugin::registry::tests::initialization::instruction_budget_is_replenished_for_each_call ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::cancelling_a_waiter_keeps_capacity_reserved_until_the_host_call_exits ... ok horae-tests-0.1.0> test plugin::registry::tests::collect_widgets_from_echo_plugin ... ok horae-tests-0.1.0> test plugin::registry::tests::dispatch_event_with_no_subscribers ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::confirmed_dispatch_returns_overload_for_retry ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::confirmed_dispatch_attempts_other_plugins_after_one_fails ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::confirmed_dispatch_waits_for_the_plugin_to_finish ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::confirmed_dispatch_returns_plugin_failure_for_retry ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::events_execute_outside_the_async_worker ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::different_plugins_share_the_running_call_limit ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::loaded_plugins_cannot_start_with_excessive_memory ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::loaded_plugins_cannot_grow_memory_past_the_limit ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::pending_capacity_rejects_new_work_without_spawning_tasks ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::widgets_execute_outside_the_async_worker ... ok horae-tests-0.1.0> test plugin::registry::tests::load_empty_directory ... ok horae-tests-0.1.0> test plugin::registry::tests::load_nonexistent_directory ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::oversized_wasm_output_is_rejected_before_copying_it ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::oversized_event_payloads_are_not_queued ... ok horae-tests-0.1.0> test reports::bounded::tests::cancelled_export_keeps_its_slot_until_the_renderer_exits ... ok horae-tests-0.1.0> test reports::bounded::tests::export_admission_stays_reserved_until_the_body_is_dropped ... ok horae-tests-0.1.0> test reports::bounded::tests::export_rendering_runs_off_the_async_worker ... ok horae-tests-0.1.0> test reports::bounded::tests::output_budget_checks_writes_and_seeks_without_truncation ... ok horae-tests-0.1.0> test reports::bounded::tests::rendered_output_limit_rejects_oversized_files_and_releases_admission ... ok horae-tests-0.1.0> test render::tests::invoice_template_formats_large_minor_units_exactly ... ok horae-tests-0.1.0> test reports::bounded::tests::renderer_errors_and_panics_release_admission ... ok horae-tests-0.1.0> test reports::export_params_tests::active_projects_only_filter_is_optional_and_strict ... ok horae-tests-0.1.0> test reports::export_params_tests::billability_filter_defaults_and_serializes_without_ambiguous_booleans ... ok horae-tests-0.1.0> test reports::export_params_tests::billability_filter_rejects_unknown_empty_and_repeated_values ... ok horae-tests-0.1.0> test reports::export_params_tests::download_identity_is_a_complete_optional_binding_not_authority ... ok horae-tests-0.1.0> test reports::export_params_tests::download_policy_binding_rejects_unknown_and_repeated_modes ... ok horae-tests-0.1.0> test reports::export_params_tests::downloads_reject_cursors_and_reversed_periods ... ok horae-tests-0.1.0> test reports::export_params_tests::legacy_scalar_and_empty_plural_filters_preserve_the_existing_scope ... ok horae-tests-0.1.0> test reports::export_params_tests::malformed_or_ambiguous_filters_never_become_unrestricted_downloads ... ok horae-tests-0.1.0> test reports::export_params_tests::plural_filters_preserve_every_dimension_and_deduplicate_ids ... ok horae-tests-0.1.0> test reports::export_params_tests::projects::project_download_accepts_legacy_links_and_matching_requester ... ok horae-tests-0.1.0> test reports::export_params_tests::projects::project_download_binding_is_not_authority_to_select_another_requester ... ok horae-tests-0.1.0> test reports::export_params_tests::projects::project_download_rejects_partial_malformed_and_repeated_identity ... ok horae-tests-0.1.0> test reports::groups::tests::active_projects_only_grouped_transport_is_optional_and_strict ... ok horae-tests-0.1.0> test reports::groups::tests::billability_grouped_transport_is_optional_and_strict ... ok horae-tests-0.1.0> test reports::groups::tests::grouped_xlsx_transport_rejects_ambiguous_or_invalid_parameters ... ok horae-tests-0.1.0> test plugin::registry::tests::load_test_plugins ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_deny_revoked_managers ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_deny_winning_legacy_revocations ... ok horae-tests-0.1.0> test reports::bounded::tests::timed_out_export_keeps_its_slot_until_the_renderer_exits ... ok horae-tests-0.1.0> test plugin::host::tests::a_query_cannot_disable_its_own_deadline ... ok horae-tests-0.1.0> test plugin::registry::tests::dispatch_to_echo_plugin_succeeds ... ok horae-tests-0.1.0> test plugin::registry::tests::failing_plugin_does_not_block_caller ... ok horae-tests-0.1.0> test plugin::registry::tests::dispatch_invoice_sent_to_echo_plugin ... ok horae-tests-0.1.0> test plugin::registry::tests::isolation::a_wasm_timeout_releases_the_worker_and_instance ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_keep_deadlines_and_restore_pool_defaults ... ok horae-tests-0.1.0> test reports::limits::tests::bounded_entries_enforce_the_row_limit_after_all_filters ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_refresh_after_access_revision_change ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_preserve_checked_snapshots ... ok horae-tests-0.1.0> test reports::limits::tests::bounded_entries_reject_large_fields_and_combined_text ... ok horae-tests-0.1.0> test reports::limits::tests::bounded_invoice_limits_include_branding_and_preserve_tenant_scope ... ok horae-tests-0.1.0> test reports::limits::tests::bounded_projects_filter_archives_before_size_checks ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_release_rendered_body_when_final_check_is_interrupted ... ok horae-tests-0.1.0> test reports::limits::tests::bounded_exports_preserve_real_workbooks_and_deterministic_pdf ... ok horae-tests-0.1.0> test reports::limits::tests::measure_bounded_export_limits ... ignored, manual release export measurement; set HORAE_EXPORT_PROBE_DIR for artifacts horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_require_same_tenant_active_actor ... ok horae-tests-0.1.0> test reports::limits::tests::export_queries_are_read_only_and_have_a_database_deadline ... ok horae-tests-0.1.0> test reports::limits::tests::fee_exports_preserve_absent_quantities_and_render_a_real_pdf ... ok horae-tests-0.1.0> test reports::limits::tests::export_size_checks_and_reads_share_a_repeatable_read_snapshot ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_deny_actor_revoked_during_either_authority_wait ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_bound_rows_and_text_after_scope_filtering ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_preserve_membership_visibility_and_history_rules ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_refresh_scope_after_winning_relationship_changes ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_retain_authority_and_release_cancelled_reads ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_refresh_release_scope_after_parent_wait ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_retain_parent_authority_until_release_check_finishes ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_recheck_after_render_without_retaining_authority ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_release_every_captured_project_without_render_locks ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_share_one_size_and_payload_snapshot ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_reject_missing_foreign_and_unreadable_captured_ids ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_release_cancelled_and_timed_out_checks ... ok horae-tests-0.1.0> test reports::limits::tests::project_canonical::canonical_project_export_withholds_ordinary_monetary_budget ... ok horae-tests-0.1.0> test reports::limits::tests::invoice_exports_show_saved_adjustments_and_exact_large_amounts ... ok horae-tests-0.1.0> test reports::limits::tests::tag_filter_applies_before_xlsx_size_checks_and_rendering ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::denied_time_export_releases_authority_before_pool_cleanup ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_require_current_tenant_bound_actor ... ok horae-tests-0.1.0> test reports::limits::tests::project_canonical::canonical_project_export_does_not_inherit_legacy_administrator_scope ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::grouped::grouped_xlsx_budget_includes_contexts_in_addition_to_names ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::grouped::grouped_xlsx_limits_groups_not_source_entries_and_preserves_scope ... ok horae-tests-0.1.0> test reports::limits::tests::project_authorization::project_exports_cancel_loading_without_retaining_authority ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::grouped::grouped_xlsx_all_dimensions_render_exact_hours_without_private_scope ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::grouped::grouped_xlsx_reauthorizes_original_pairs_after_reassignment ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::grouped::grouped_xlsx_rejects_wrong_identity_legacy_policy_and_page_cursor ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::grouped::grouped_xlsx_rejects_partial_loss_of_a_multi_context_group ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_empty_files_still_validate_state_actor_and_policy_at_release ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::grouped::grouped_xlsx_caps_groups_and_names_after_filters ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_reauthorizes_captured_project_not_reassigned_source ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_legacy_manager_role_does_not_expand_canonical_scope ... ok horae-tests-0.1.0> test reports::limits::tests::project_canonical::canonical_project_workbook_rejects_financial_revocation_during_render ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_release_observes_direct_actor_update_commit_or_rollback ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_revoked_grants_after_render_deny_other_peoples_captured_rows ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_scope_union_and_multi_filters_precede_size_checks ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_waits_for_scope_revocation_and_cancellation_releases_connection ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_rejects_paged_reversed_or_wrong_requester_queries ... ok horae-tests-0.1.0> test reports::privacy_tests::project_downloads_follow_progress_visibility ... ok horae-tests-0.1.0> test reports::streaming::database_tests::a_real_database_error_interrupts_the_csv_body ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_authority_releases_successful_locks_and_overrides_inherited_settings ... ok horae-tests-0.1.0> test reports::limits::tests::project_canonical::canonical_project_export_accepts_project_reader_with_legacy_member_role ... ok horae-tests-0.1.0> test reports::privacy_tests::unauthorized_project_text_does_not_affect_export_size_limits ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_cancelled_fetch_reclaims_connection_without_authority_locks ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_compressible_unicode_payload_bounds_native_prefetch ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_source_refreshes_grant_gains_and_losses_after_org_wait ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_header_and_total_blocks_recheck_manager_after_capacity ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_member_reads_own_rows_without_financial_or_directory_access ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_exports_refresh_after_organization_or_actor_wait ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_native_projection_mismatch_fails_instead_of_coercing ... ok horae-tests-0.1.0> test reports::limits::tests::time_authorization::scoped_xlsx_deletion_keeps_recorded_scope_but_loss_of_person_access_denies ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_invoice_keeps_original_metadata_lines_and_totals_between_batches ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_projects_capture_scope_gained_during_initial_wait ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_source_stays_frozen_across_batches_while_authority_is_fresh ... ok horae-tests-0.1.0> test reports::streaming::database_tests::measure_streaming_csv_export ... ignored, Manual release measurement of a 100,000-row CSV download horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_cancelled_authorization_reclaims_its_single_connection ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_native_batches_keep_crossing_rows_and_reject_invalid_limits ... ok horae-tests-0.1.0> test reports::streaming::database_tests::dropping_streamed_timesheet_closes_its_database_connection ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_exports_require_current_tenant_bound_actors_even_when_empty ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_pending_project_block_checks_all_captured_ids_after_capacity ... ok horae-tests-0.1.0> test reports::streaming::database_tests::project_canonical::project_csv_rejects_financial_revocation_after_capacity_wait ... ok horae-tests-0.1.0> test reports::streaming::database_tests::project_canonical::project_csv_invalid_source_state_cannot_be_repaired_before_fetch ... ok horae-tests-0.1.0> test reports::streaming::database_tests::project_canonical::project_csv_canonical_empty_scope_does_not_inherit_legacy_admin ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::billability::billability_csv_uses_the_captured_source_after_entry_changes ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::billability::billability_empty_exports_still_require_active_authority ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::active_projects::active_projects_only_csv_captures_activity_at_source_snapshot ... ok horae-tests-0.1.0> test reports::streaming::database_tests::project_canonical::project_csv_canonical_reader_exports_project_without_monetary_budget ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::active_projects::active_projects_only_empty_downloads_still_require_current_authority ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::active_projects::active_projects_only_matches_detailed_and_grouped_downloads ... ok horae-tests-0.1.0> test reports::streaming::database_tests::project_canonical::project_csv_source_masks_money_using_declare_snapshot ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_checks_last_context_before_emitting_any_group_bytes ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_project_release_refreshes_scope_after_parent_wait ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::billability::billability_matches_effective_rows_totals_and_all_download_sources ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_bounds_native_fragments_and_preserves_large_unicode_labels ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_exports_all_four_dimensions_with_exact_rounded_hours ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::active_projects::active_projects_only_workbooks_retain_source_after_archiving ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_empty_source_still_requires_canonical_authority ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_revocation_under_backpressure_does_not_hold_gates ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_has_no_workbook_source_entry_cap ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_invalid_captured_state_cannot_be_repaired_before_fetch ... ok horae-tests-0.1.0> test reports::streaming::database_tests::authorization::streamed_timesheet_rechecks_after_backpressure_without_retaining_locks ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_preserves_distinct_ids_beyond_ten_thousand_groups ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_keeps_authority_between_fragment_batches_and_releases_on_cancel ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_legacy_manager_does_not_expand_own_scope ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_missing_identity_has_invalid_sentinel_and_metadata_is_bounded ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_empty_header_rechecks_policy_and_state_after_capacity ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_member_downloads_own_rows_without_financial_grants ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_source_uses_declare_authority_not_initial_or_fetch_authority ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_source_uses_management_edges_at_declare ... ok horae-tests-0.1.0> test reports::streaming::database_tests::streamed_fee_invoice_has_no_fabricated_hours_or_hourly_rate ... ok horae-tests-0.1.0> test reports::streaming::database_tests::streamed_invoice_metadata_and_lines_share_one_snapshot ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_rechecks_every_pending_context_but_not_previous_blocks ... ok horae-tests-0.1.0> test reports::streaming::database_tests::streamed_project_exports_deny_inactive_actors ... ok horae-tests-0.1.0> test reports::streaming::database_tests::streamed_projects_preserve_scope_budget_and_tenant_isolation ... ok horae-tests-0.1.0> test reports::streaming::tests::completed_csv_keeps_admission_until_body_drop ... ok horae-tests-0.1.0> test reports::streaming::tests::csv_backpressure_and_body_drop_bound_and_cancel_source_reads ... ok horae-tests-0.1.0> test reports::streaming::tests::csv_does_not_truncate_a_quoted_unicode_record_larger_than_a_chunk ... ok horae-tests-0.1.0> test reports::streaming::tests::csv_emits_a_chunk_before_the_source_finishes ... ok horae-tests-0.1.0> test reports::streaming::tests::csv_failure_or_panic_after_a_chunk_is_not_successful_eof ... ok horae-tests-0.1.0> test reports::streaming::tests::csv_startup_errors_are_http_errors_and_release_admission ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::grouped::grouped_csv_invalid_source_authority_cannot_be_repaired_after_declare ... ok horae-tests-0.1.0> test reports::streaming::tests::dropping_csv_during_startup_cancels_the_producer ... ok horae-tests-0.1.0> test route::tests::client_detail_preserves_identity_and_highlights_only_clients ... ok horae-tests-0.1.0> test route::tests::client_workflow_paths_preserve_context_and_navigation_section ... ok horae-tests-0.1.0> test route::tests::edit_project_preserves_identity_and_highlights_only_projects ... ok horae-tests-0.1.0> test route::tests::existing_timesheet_links_without_a_person_still_select_own_time ... ok horae-tests-0.1.0> test route::tests::invalid_timesheet_person_is_not_silently_removed_from_the_route ... ok horae-tests-0.1.0> test route::tests::malformed_context_reaches_the_workflow_for_validation_after_recovery ... ok horae-tests-0.1.0> test route::tests::new_project_is_static_and_highlights_only_projects ... ok horae-tests-0.1.0> test route::tests::timesheet_routes_preserve_selected_person_in_every_view ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_revocation_under_backpressure_interrupts_body_without_holding_locks ... ok horae-tests-0.1.0> test reports::streaming::tests::csv_timeout_interrupts_an_already_started_body ... ok horae-tests-0.1.0> test reports::streaming::database_tests::streamed_tag_filter_excludes_other_projects_without_duplicating_rows ... ok horae-tests-0.1.0> test reports::streaming::database_tests::scoped_time::scoped_csv_reassigned_or_deleted_entries_keep_captured_context ... ok horae-tests-0.1.0> test seed::tests::concurrent_initializers_cannot_create_two_organizations ... ok horae-tests-0.1.0> test reports::streaming::database_tests::streamed_invoice_uses_stored_exact_cents_and_tenant_scoped_metadata ... ok horae-tests-0.1.0> test reports::streaming::database_tests::streamed_timesheet_exceeds_xlsx_row_limit_without_one_large_body_chunk ... ok horae-tests-0.1.0> test reports::streaming::database_tests::streamed_timesheet_preserves_csv_escaping_frozen_zero_and_all_filters ... ok horae-tests-0.1.0> test seed::tests::seed_leaves_an_older_or_partial_demo_unchanged ... ok horae-tests-0.1.0> test seed::tests::seed_refuses_a_second_organization_even_when_the_demo_exists ... ok horae-tests-0.1.0> test seed::tests::seed_refuses_an_initialized_organization_without_writes ... ok horae-tests-0.1.0> test server_fns::approvals::isolation_tests::bulk_approval_only_returns_and_transitions_own_organization ... ok horae-tests-0.1.0> test seed::tests::concurrent_seed_runs_create_only_one_demo ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::admitted_submission_finishes_before_access_change ... ok horae-tests-0.1.0> test seed::tests::concurrent_init_and_seed_cannot_mix_organizations ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::submission_accepts_the_organizations_sunday_start ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::cancelling_a_submission_releases_its_write_barrier ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::submission_barrier_allows_shared_writers_for_the_same_user ... ok horae-tests-0.1.0> test seed::tests::repeated_seed_preserves_every_row_and_user_edits ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::submission_does_not_wait_for_another_users_writer ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::submission_freezes_the_minutes_after_a_competing_edit ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::submission_rejects_a_start_that_is_not_the_organizations_week_start ... ok horae-tests-0.1.0> test seed::tests::late_seed_failure_rolls_back_all_demo_data ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::submission_uses_one_pool_connection ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::submission_waits_for_a_new_timer_before_checking_the_week ... ok horae-tests-0.1.0> test server_fns::approvals::submission_tests::submission_rechecks_policy_and_activity_after_access_change ... ok horae-tests-0.1.0> test server_fns::approvals::tests::ignores_stopped_and_out_of_week_timers ... ok horae-tests-0.1.0> test server_fns::budget_tests::budget_notification_schema_enforces_tenants_and_no_public_access ... ok horae-tests-0.1.0> test server_fns::approvals::isolation_tests::foreign_reopen_is_not_found_and_preserves_pending_and_approved_work ... ok horae-tests-0.1.0> test server_fns::budget_tests::concurrent_budget_checks_have_one_band_claimant ... ok horae-tests-0.1.0> test server_fns::approvals::tests::sees_a_running_timer_inside_the_week ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_alert_and_outbox_roll_back_together ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_alert_recipients_are_active_same_org_managers_and_project_leads ... ok horae-tests-0.1.0> test server_fns::approvals::isolation_tests::foreign_approval_ids_do_not_change_another_organizations_week ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_amount_budget_uses_resolved_rates_and_explicit_zero ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_alerts_require_enabled_active_project_and_authorized_recipient ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_budget_does_not_read_foreign_or_legacy_projects ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_alerts_deduplicate_concurrent_checks_and_recrossing ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_budget_sweep_recovers_missed_checks_without_duplicates ... ok horae-tests-0.1.0> test server_fns::approvals::isolation_tests::own_organization_can_reopen_without_unlocking_invoiced_entries ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_nonbillable_projects_count_time_without_hidden_checkbox ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_monthly_budget_includes_leap_day_and_preserves_locked_rounding ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_task_and_person_budgets_do_not_share_consumption ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_monthly_budget_excludes_other_months_and_nonbillable_time ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_person_budget_excludes_other_people_and_has_its_own_alert ... ok horae-tests-0.1.0> test server_fns::budget_tests::configured_task_fee_budget_respects_billability_and_alert_scope ... ok horae-tests-0.1.0> test server_fns::budget_tests::overview_budget_progress_batches_projects_without_mixing_scopes ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::legacy_workflow_readers_are_unchanged_under_policy_one ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::default_rate_requires_the_global_billable_rate_grant ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::managed_project_counts_require_an_actual_management_link ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::foreign_missing_and_rebound_requests_fail_closed ... ok horae-tests-0.1.0> test server_fns::budget_tests::overview_budget_progress_includes_people_without_an_allowance ... ok horae-tests-0.1.0> test server_fns::budget_tests::overview_budget_progress_is_current_period_scoped_and_authorized ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::policy_zero_keeps_legacy_catalog_billing_and_manager_affordance ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::project_counts_follow_the_policy_one_project_reader ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::read_only_client_grant_shows_catalog_without_writes_rates_or_projects ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::readers_observe_revocation_after_waiting_for_current_authority ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::visible_default_rate_distinguishes_unset_from_zero ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::unavailable_permission_state_and_inactive_actors_fail_closed ... ok horae-tests-0.1.0> test server_fns::clients::page_tests::unrelated_grants_and_legacy_roles_do_not_open_the_catalog ... ok horae-tests-0.1.0> test server_fns::clients::tests::both_activation_transitions_change_once_and_preserve_details ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_default_rate_allows_detail_edits_and_equivalent_currency ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_default_rate_prevents_currency_relabelling ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_details_keep_catalog_identity_but_omit_member_billing ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_details_distinguish_unset_zero_and_positive_manager_rates ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_details_hide_foreign_missing_and_inactive_actor_records ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_invoices_keep_exact_client_scope_statuses_and_currencies ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_invoices_require_manager_authority_even_without_invoices ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_invoices_reject_a_winning_concurrent_revocation ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_invoices_hold_authority_until_the_read_finishes ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_summaries_exclude_foreign_clients_and_unreadable_project_currencies ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_summaries_reject_a_foreign_actor_even_when_client_org_is_known ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_summaries_keep_catalog_without_projects_and_count_archived_projects ... ok horae-tests-0.1.0> test server_fns::clients::tests::client_summaries_follow_existing_progress_visibility_and_revoke_inactive_users ... ok horae-tests-0.1.0> test server_fns::clients::tests::currency_edit_rechecks_a_concurrently_added_client_default_rate ... ok horae-tests-0.1.0> test server_fns::clients::tests::concurrent_deletion_is_not_an_unchanged_mutation ... ok horae-tests-0.1.0> test server_fns::clients::tests::each_field_changes_once_and_preserves_inactive_status ... ok horae-tests-0.1.0> test server_fns::clients::tests::missing_and_foreign_clients_are_not_noops ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_create_persists_normalized_identity_and_exact_optional_rate ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_currency_change_without_a_rate_keeps_it_unset ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_noop_preserves_row_and_returns_no_update_event_signal ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_saves_recheck_manager_org_and_active_actor ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_saves_reject_invalid_input_without_partial_writes ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_update_preserves_historical_rows_and_inactive_status ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_update_rechecks_authority_after_waiting_for_a_concurrent_demotion ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_update_rechecks_financial_snapshot_after_waiting_for_a_concurrent_edit ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_update_rejects_stale_currency_even_when_the_rate_is_still_unset ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_update_rejects_stale_rate_even_when_the_target_currency_is_unchanged ... ok horae-tests-0.1.0> test server_fns::importers::authorization_tests::cli_job_endpoints_have_stable_registered_paths ... ok horae-tests-0.1.0> test server_fns::clients::tests::profile_update_requires_explicit_rate_intent_for_currency_changes ... ok horae-tests-0.1.0> test server_fns::importers::authorization_tests::report_stress::large_report_streams_over_http_without_buffering_the_archive ... ignored, isolated Linux HTTP/memory stress; run with --release --exact --ignored --nocapture horae-tests-0.1.0> test server_fns::importers::authorization_tests::request_bound_import_endpoints_are_not_registered ... ok horae-tests-0.1.0> test server_fns::clients::tests::repeating_a_competing_deactivation_does_not_report_a_transition ... ok horae-tests-0.1.0> test server_fns::clients::tests::unchanged_activation_preserves_the_row ... ok horae-tests-0.1.0> test server_fns::clients::tests::repeating_a_competing_edit_does_not_report_a_change ... ok horae-tests-0.1.0> test server_fns::clients::tests::restoring_values_after_a_competing_edit_reports_a_change ... ok horae-tests-0.1.0> test server_fns::clients::tests::restoring_a_competing_deactivation_reports_reactivation ... ok horae-tests-0.1.0> test server_fns::clients::tests::unchanged_edit_preserves_the_row ... ok horae-tests-0.1.0> test server_fns::importers::authorization_tests::job_endpoints_enforce_session_role_and_organization ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::authorized_job_lifecycle_and_duplicate_retention_work_with_one_connection ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::authorized_submissions_do_not_wait_for_the_running_import_reservation ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::conflicting_and_stale_commands_preserve_payload_policy_and_retained_state ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::import_commands_and_results_hold_actor_authority_until_commit ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::commands_and_status_require_current_active_tenant_administrator ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::requester::original_requester_foreign_key_preserves_tenant_and_known_identity ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::requester::duplicates_and_job_lifecycle_never_replace_or_invent_the_original_requester ... ok horae-tests-0.1.0> test server_fns::importers::csv_upload::tests::csv_upload_extractor_preserves_raw_bytes ... ok horae-tests-0.1.0> test server_fns::importers::csv_upload::tests::csv_upload_requires_its_header_without_reading_the_body ... ok horae-tests-0.1.0> test server_fns::importers::tests::concurrent_api_import_returns_a_retryable_conflict ... ok horae-tests-0.1.0> test server_fns::importers::tests::csv_route_rejects_invalid_modes_and_headers_without_reading_uploads ... ok horae-tests-0.1.0> test server_fns::importers::tests::revoked_connection_authority_maps_to_forbidden_without_private_context ... ok horae-tests-0.1.0> test server_fns::importers::tests::submission_identity_rejects_expired_future_and_non_v7_keys ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::import_access_rechecks_revocation_after_organization_and_actor_waits ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::concurrent_invoices_claim_a_single_fee_once ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::requester::waiting_duplicate_keeps_the_first_committed_requester ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::foreign_and_missing_jobs_never_reveal_or_change_another_tenant ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::requester::requester_migration_preserves_unknown_authors_in_all_job_states ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::duplicate_submission_and_noop_cancellation_do_not_bypass_revocation ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::discounted_fee_leaves_a_balance_and_void_releases_only_its_contribution ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::draft_fee_edit_requires_current_balance_and_exact_excess_confirmation ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::fee_invoice_does_not_claim_hours_or_another_clients_fee ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::failed_upload_insert_rolls_back_the_job_and_releases_authority ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::fee_occurrence_rejects_cross_organization_project ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::concurrent_discounted_invoice_retries_return_one_invoice ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::fee_total_overflow_rolls_back_occurrences_and_invoice ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::draft_fee_edit_serializes_retries_and_rejects_stale_revisions ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::invoice_line_sources_reject_mixed_sources_and_invented_fee_quantities ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::draft_fee_edit_rejects_invalid_lines_and_current_unauthorized_actors ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::fee_preview_keeps_source_identity_and_reports_discounted_draft_balances ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::milestones_include_unbilled_overdue_fees_but_not_future_fees ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::invoice_defaults_apply_to_selected_fees_without_claiming_other_projects ... ok horae-tests-0.1.0> test server_fns::importers::commands::tests::requester::new_import_jobs_record_the_authorized_original_requester ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::monthly_fees_use_calendar_dates_and_skip_already_claimed_months ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::monthly_first_and_fifteenth_respect_partial_period_and_project_end ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::mixed_time_and_fee_discount_conserves_cents_without_reopening_time ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::fee_preview_discount_ties_follow_source_keys_not_display_dates ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::draft_fee_edit_replaces_amount_and_preserves_source_and_retry_identity ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::project_fee_context_keeps_monthly_balances_separate ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::removing_discount_and_billing_the_remainder_cannot_both_succeed ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::invoice_status_rechecks_authority_after_waiting_for_the_invoice_lock ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::project_fee_context_matches_invoice_balances_and_current_authority ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::invoice_preview_does_not_materialize_fees_and_preserves_released_snapshots ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::single_fee_can_be_invoiced_without_time ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::reviewed_generation_bills_partial_fees_and_rejects_stale_balances ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::void_releases_fee_identity_without_rewriting_the_original_line ... ok horae-tests-0.1.0> test server_fns::invoices::preview::tests::excess_rejects_an_unrepresentable_total_even_when_the_remainder_fits ... ok horae-tests-0.1.0> test server_fns::invoices::preview::tests::unselected_fee_currencies_do_not_relabel_or_block_selected_charges ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::reviewed_generation_does_not_materialize_unselected_months ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::reviewed_generation_rejects_changed_time_before_claiming_it ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::reviewed_generation_requires_exact_excess_and_current_authority ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::settled_fee_sources_remain_reviewable_without_automatic_charges ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::prepared_fee_selection_rejects_invalid_values_and_empty_generation ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::zero_fee_is_invoiced_once_until_voided ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::races::financial_snapshots_deny_winning_actor_revocation_without_organization_change ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::editor::editor_snapshots_preserve_rows_and_override_inherited_read_only ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::editor::editor_snapshots_refresh_after_organization_row_change_without_rebasing_edits ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::editor::editor_snapshots_retain_authority_and_release_cancelled_reads ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::races::financial_snapshots_keep_fee_values_from_their_initial_snapshot ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::editor::editor_snapshots_keep_invoice_metadata_revision_and_lines_together ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::financial_snapshots_require_current_same_tenant_manager ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::editor::editor_snapshots_deny_winning_legacy_revocation ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::races::financial_snapshots_retry_organization_row_change_and_refresh_amounts ... ok horae-tests-0.1.0> test server_fns::invoices::fee_tests::fee_balance_migration_allocates_discount_without_rewriting_invoice_snapshots ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::races::financial_snapshots_hold_authority_until_materialization ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::settings::financial_snapshots_retry_only_serialization_failures_and_stop_after_three ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::settings::financial_snapshots_honor_stricter_lock_timeout_during_authorization ... ok horae-tests-0.1.0> test server_fns::invoices::tests::authority::cancelled_invoice_writers_roll_back_and_release_single_connection ... ok horae-tests-0.1.0> test server_fns::invoices::tests::billing_cascade_agrees_across_all_four_levels_including_zero ... ok horae-tests-0.1.0> test server_fns::invoices::tests::configured_fixed_fee_hours_are_not_invoiced_but_legacy_fees_are_unchanged ... ok horae-tests-0.1.0> test server_fns::invoices::tests::configured_project_currency_and_cost_override_keep_their_denominations ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::settings::financial_snapshots_override_isolation_but_restore_connection_settings ... ok horae-tests-0.1.0> test server_fns::invoices::tests::effective_minutes_migration_preserves_historical_invoice_quantities ... ok horae-tests-0.1.0> test server_fns::invoices::tests::imported_rates::imported_legacy_project_keeps_exact_rates_and_totals_on_retry ... ok horae-tests-0.1.0> test server_fns::invoices::tests::assignment_gate_allows_inflight_invoice_organization_fks_to_finish ... ok horae-tests-0.1.0> test server_fns::invoices::tests::authority::invoice_writers_override_readonly_defaults_without_changing_the_session ... ok horae-tests-0.1.0> test server_fns::invoices::tests::effective_minutes_sql_matches_domain_rounding ... ok horae-tests-0.1.0> test server_fns::invoices::tests::imported_rates::imported_task_rates_require_matching_currency_only_for_new_configured_links ... ok horae-tests-0.1.0> test server_fns::invoices::tests::authority::invoice_generation_and_user_revocation_commit_in_gate_order ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_defaults_are_invoice_owned_and_only_drafts_are_editable ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_defaults_conflict_rolls_back_all_claims ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_defaults_validate_all_override_fields ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_defaults_legacy_insert_preserves_dates_and_exact_total ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_line_overflow_leaves_time_unbilled ... ok horae-tests-0.1.0> test server_fns::invoices::snapshot_tests::races::financial_snapshots_release_cancelled_reads_for_one_connection ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_defaults_selection_rejects_unavailable_projects_before_claiming ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_preview_keeps_time_rates_and_defaults_in_one_snapshot ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_total_overflow_leaves_all_time_unbilled ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_preview_matches_generation_without_claiming_time ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_transitions_reject_invalid_states_and_foreign_organizations ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_defaults_edit_rechecks_status_after_waiting_for_a_concurrent_send ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoiced_amounts_survive_rate_changes_and_void_uses_current_rates ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoiced_billability_survives_later_project_changes ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoicing_leaves_running_time_open ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoicing_uses_and_freezes_effective_minutes ... ok horae-tests-0.1.0> test server_fns::invoices::tests::authority::invoice_edit_and_transition_observe_user_revocation_order ... ok horae-tests-0.1.0> test server_fns::invoices::tests::mixed_project_currencies_cannot_partially_create_an_invoice ... ok horae-tests-0.1.0> test server_fns::invoices::tests::large_invoice_and_reports_agree_without_intermediate_overflow ... ok horae-tests-0.1.0> test server_fns::invoices::tests::non_billable_context_produces_no_unbilled_amount_on_any_report ... ok horae-tests-0.1.0> test server_fns::invoices::tests::only_running_time_does_not_create_an_invoice ... ok horae-tests-0.1.0> test server_fns::invoices::tests::project_rate_is_used_by_invoices_reports_and_spend ... ok horae-tests-0.1.0> test server_fns::invoices::tests::void_reopens_time_without_stale_rounding ... ok horae-tests-0.1.0> test server_fns::invoices::tests::void_waits_for_a_concurrent_payment_and_then_refuses ... ok horae-tests-0.1.0> test server_fns::invoices::tests::selected_project_rate_modes_agree_across_billing_consumers ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_preview_rejects_large_results_instead_of_truncating_them ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_defaults_apply_exact_adjustments_and_payment_terms ... ok horae-tests-0.1.0> test server_fns::organization::tests::each_branding_field_changes_once_including_null_and_empty ... ok horae-tests-0.1.0> test server_fns::organization::tests::branding_rechecks_authority_after_an_actor_only_wait ... ok horae-tests-0.1.0> test server_fns::organization::tests::missing_organization_is_not_an_unchanged_update ... ok horae-tests-0.1.0> test server_fns::organization::tests::repeating_a_competing_branding_edit_does_not_report_a_change ... ok horae-tests-0.1.0> test server_fns::organization::tests::restoring_branding_after_a_competing_edit_reports_a_change ... ok horae-tests-0.1.0> test server_fns::invoices::tests::imported_rates::rejected_import_rate_does_not_poison_the_next_row_or_its_catalog_rate ... ok horae-tests-0.1.0> test server_fns::organization::tests::unchanged_branding_preserves_the_row ... ok horae-tests-0.1.0> test server_fns::invoices::tests::invoice_preview_requires_explicit_resolution_and_scopes_selected_projects ... ok horae-tests-0.1.0> test server_fns::organization::tests::branding_rechecks_authority_after_the_organization_wait ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::administrator_reads_historical_template_without_intent_or_replay_result ... ok horae-tests-0.1.0> test server_fns::organization::tests::branding_holds_actor_authority_until_its_write_commits ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::audit_timeout_preserves_stricter_limits_and_releases_locks ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::audit_reader_holds_requester_until_materialization_finishes ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::audit_reader_overrides_transaction_defaults_without_changing_connection ... ok horae-tests-0.1.0> test server_fns::organization::tests::branding_requires_current_tenant_bound_authority_even_for_noops ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::browsing::history_page_rejects_malformed_history_without_partial_success ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::browsing::history_page_waits_for_revocation_commit_or_rollback_at_each_gate ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::browsing::history_pages_scope_before_limit_and_use_stable_exclusive_timestamp_id_bounds ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::browsing::cancelling_history_page_releases_both_authority_gates ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::historical_decoder_distinguishes_missing_change_from_explicit_noop ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::historical_decoder_rejects_missing_template_snapshots_and_invalid_grants ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::historical_decoder_rejects_unknown_mixed_fields_and_invalid_revision_steps ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::historical_person_snapshot_validates_provenance_without_inferring_admin_identity ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::browsing::history_page_reauthorizes_empty_and_continuation_requests_and_binds_requester ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::cancelled_audit_read_releases_both_gates_and_single_connection ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::current_administrator_reads_inactive_authors_history_without_live_state ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::direct_deactivation_winning_user_lock_denies_audit_read ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::browsing::admitted_history_page_finishes_before_revocation_at_each_gate ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::profile_and_project_history_decode_exact_changes_and_noops ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::reader_winning_gate_finishes_before_revocation_and_later_reads_fail ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::operator_attribution_is_not_a_user_and_excludes_private_replay_payload ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::revocation_winning_gate_denies_waiting_historical_reader ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::profile_history_keeps_removed_relationships_after_grants_change_again ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::tenant_activity_and_policy_checks_precede_receipt_existence_and_decode ... ok horae-tests-0.1.0> test server_fns::organization::tests::failed_branding_write_rolls_back_and_releases_authority ... ok horae-tests-0.1.0> test server_fns::permissions::own_tests::own_permissions_legacy_mode_never_discloses_staging ... ok horae-tests-0.1.0> test server_fns::permissions::own_tests::own_permissions_preserve_exact_grants_and_independent_identity ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::failed_mutation_has_no_success_audit_and_reads_do_not_write ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::legacy_admin_and_all_grants_without_explicit_identity_cannot_read_audit ... ok horae-tests-0.1.0> test server_fns::permissions::own_tests::own_permissions_scope_is_sorted_and_excludes_membership_and_other_managers ... ok horae-tests-0.1.0> test server_fns::permissions::own_tests::own_permissions_wait_for_current_actor_deactivation ... ok horae-tests-0.1.0> test server_fns::permissions::preflight_tests::preflight_approval_diagnostics_preserve_stored_history ... ok horae-tests-0.1.0> test server_fns::permissions::preflight_tests::preflight_cancellation_releases_organization_and_single_connection ... ok horae-tests-0.1.0> test server_fns::permissions::preflight_tests::preflight_counts_cross_tenant_memberships_from_both_ends ... ok horae-tests-0.1.0> test server_fns::permissions::own_tests::own_permissions_deny_invalid_identity_policy_and_state ... ok horae-tests-0.1.0> test server_fns::permissions::own_tests::own_permissions_reload_after_winning_gate_under_repeatable_read_defaults ... ok horae-tests-0.1.0> test server_fns::permissions::preflight_tests::preflight_requires_current_legacy_administrator_not_staged_grants ... ok horae-tests-0.1.0> test server_fns::permissions::preflight_tests::preflight_separates_unknown_import_requesters_without_changing_artifacts ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::adjusted_template_reset_and_replay_after_deletion_use_explicit_intent ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::all_grant_template_cannot_confer_identity_and_cross_command_keys_conflict ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::concurrent_self_demotions_leave_one_active_explicit_administrator ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::cancelled_profile_save_rolls_back_effects_and_releases_single_connection ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::canonical_actor_policy_tenant_and_target_checks_precede_mutation ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::audit_failure_rolls_back_profile_and_both_relationship_sets ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::directory_tests::directory_cancellation_releases_connection_and_preserves_pool_defaults ... ok horae-tests-0.1.0> test server_fns::permissions::audit_tests::template_detachment_history_preserves_exact_grants_and_provenance ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::directory_tests::directory_does_not_use_project_management_and_rechecks_relationship_removal ... ok horae-tests-0.1.0> test server_fns::permissions::preflight_tests::preflight_lock_failure_releases_organization_without_mutating_data ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::directory_tests::directory_rechecks_grant_revocation_and_direct_deactivation_after_wait ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::directory_tests::directory_scopes_before_activity_pagination_and_only_returns_basic_identity ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::directory_tests::directory_orders_by_name_then_id_and_accepts_deleted_cursor_without_extra_page ... ok horae-tests-0.1.0> test server_fns::permissions::preflight_tests::preflight_rechecks_revocation_after_organization_and_actor_waits ... ok horae-tests-0.1.0> test server_fns::permissions::own_tests::own_permissions_reader_retains_actor_activity_until_snapshot_is_loaded ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::editor_tests::editor_loss_names_cover_only_current_outgoing_effects ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::editor_tests::editor_noop_and_last_admin_proposals_are_truthful ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::editor_tests::editor_preview_matches_saved_effects_without_writing ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::directory_tests::directory_uses_each_profiles_people_grants_not_legacy_role_or_other_scope ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::editor_tests::editor_denies_wrong_authority_policy_and_foreign_targets ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::editor_tests::editor_direct_actor_deactivation_wins_preview_and_load ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::explicit_application_and_adjustments_preserve_confirmed_grants ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::explicit_identity_changes_and_inactive_targets_do_not_change_activation ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::management_schema_rejects_foreign_parents_self_links_and_duplicate_pairs ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::last_active_administrator_cannot_be_demoted_or_replaced_by_equivalent_grants ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::malformed_person_or_remaining_administrator_state_fails_closed ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::directory_tests::directory_denies_legacy_foreign_inactive_and_invalid_authority_even_for_empty_pages ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::profile_command_overrides_readonly_defaults_locally ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::editor_tests::every_builtin_preview_matches_its_actual_save ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::invalid_confirmations_and_noncanonical_grants_are_not_silently_repaired ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::profile_command_retains_target_activity_through_receipt_insert ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::profile_command_waits_for_direct_actor_deactivation_even_on_replay ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::editor_tests::template_deletion_preview_preserves_people_and_fences_its_affected_set ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::existing_user_share_lock_does_not_block_profile_command ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_authorizes_the_operation_not_the_directory_or_legacy_role ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_cancellation_releases_connection_and_preserves_pool_defaults ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_denies_invalid_authority_even_for_empty_resolution ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_filters_before_paging_and_resolves_outside_the_search ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::profile_command_rechecks_target_activation_before_demotion ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_accepts_unconfigured_targets_and_exact_page_without_more ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::profile_command_rechecks_remaining_administrator_after_deactivation_wait ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_validates_bounded_input_only_after_authorization ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_rechecks_grants_and_direct_deactivation_after_wait ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::recreated_relationship_invalidates_waiting_confirmation_without_partial_removal ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_holds_authority_until_read_finishes ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::project_people_tests::project_people_rechecks_designation_after_waiting_for_revocation ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::simultaneous_losses_require_exact_confirmation_preserve_history_and_never_restore_links ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::stale_template_and_org_revision_and_exhausted_revisions_roll_back ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::subjects_tests::subject_cursor_is_only_a_bound_and_exact_page_has_no_continuation ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::subjects_tests::subject_discovery_rechecks_direct_deactivation ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::reduced_administrator_and_stale_person_proposals_are_rejected ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::read_only_retention_and_explicit_keep_project_access_preserve_independent_person_losses ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_entries_tests::time_reads_distinguish_project_management_from_membership_and_people_scope ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::profile_demotion_retains_surviving_administrator_until_commit ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_entries_tests::time_reads_fail_closed_for_policy_identity_and_invalid_state ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::subjects_tests::subject_discovery_requires_current_explicit_identity_and_supported_policy ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::subjects_tests::subject_pages_preserve_all_local_identities_with_only_display_fields ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::revocation_winning_gate_denies_new_and_replayed_changes ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_entries_tests::time_reads_finish_before_competing_revocation_when_read_admitted_first ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_entries_tests::time_reads_exclude_foreign_parents_but_preserve_archived_history ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_entries_tests::time_reads_cancel_without_leaking_locks_or_changing_pool_defaults ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::subjects_tests::subject_discovery_cancellation_releases_connection_and_preserves_pool_defaults ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_entries_tests::time_reads_page_ties_without_loss_and_filters_never_expand_scope ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_apply_scope_union_before_every_group ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::subjects_tests::subject_discovery_rechecks_revocation_after_gate_wait_and_between_pages ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_keep_duplicate_names_distinct_across_pages ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_entries_tests::time_reads_recheck_grants_relationships_and_activity_after_wait ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_entries_tests::time_reads_use_effective_profile_scope_and_union_without_duplicates ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::active_projects_only_narrows_every_grouping_before_totals ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_observe_revocation_after_wait_and_release_on_cancel ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_filter_before_aggregation_and_keep_empty_totals ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_keep_history_but_exclude_foreign_parent_records ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_preserve_dimensions_own_scope_and_rounding ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_sum_frozen_minutes_beyond_integer_column_range ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_reject_wrong_requesters_cursors_and_policy ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::billability_narrows_every_grouping_before_totals_and_cursor ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_excludes_malformed_tenant_parents ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_filters_are_any_within_and_between_dimensions ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_recheck_actor_deactivation_after_wait ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_keeps_archived_history_and_report_rounding ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_use_the_same_c_order_for_labels_and_cursor ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_report_groups_tests::grouped_reports_round_each_entry_before_summing_a_group ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_billability_preserves_billed_status_and_frozen_minutes_after_configuration_changes ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_keyset_exhausts_ties_without_repeating_rows ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_rechecks_direct_actor_deactivation_after_wait ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::active_projects_only_narrows_detailed_rows_and_period_totals ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_observes_revocation_after_wait_and_releases_on_cancel ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_uses_own_scope_without_directory_or_financial_grants ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_totals_use_bigint_and_count_zero_duration_entries ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_rejects_invalid_queries_requesters_and_policy_without_fallback ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_profiles_and_custom_scope_union_do_not_duplicate_rows ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_context_tests::sheet_exhausts_pages_and_does_not_reuse_scope_or_silently_change_policy ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::time_reports_tests::detailed_report_totals_round_each_entry_before_summing_billable_time ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_context_tests::sheet_rejects_changed_requester_or_policy_and_inaccessible_subject ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_context_tests::sheet_resolves_legacy_own_context_without_canonical_state ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_people_tests::cancellation_releases_discovery_locks_and_keeps_pool_defaults ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_people_tests::candidates_include_empty_project_members_and_retained_history_without_directory_access ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_people_tests::discovery_fails_closed_for_policy_identity_and_invalid_state ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_people_tests::discovery_rechecks_revocation_and_actor_activity_after_waiting ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_people_tests::history_keeps_archived_context_but_excludes_inactive_people_and_foreign_parents ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_people_tests::paging_search_and_identity_filters_only_narrow_current_scope ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_context_tests::sheet_selects_empty_managed_participant_without_widening_record_scope ... ok