this derivation will be built: /nix/store/ziz8ansl08wwgjwp9s34f8zhc1rlqj4l-horae-tests-0.1.0.drv building '/nix/store/ziz8ansl08wwgjwp9s34f8zhc1rlqj4l-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=22&system=aarch64-linux' building '/nix/store/ziz8ansl08wwgjwp9s34f8zhc1rlqj4l-horae-tests-0.1.0.drv' on farm.numtide.com:50051 horae-tests-0.1.0> elastic-arm-99e59b18: building ziz8ansl08wwgjwp9s34f8zhc1rlqj4l-horae-tests-0.1.0.drv horae-tests-0.1.0> Running phase: unpackPhase horae-tests-0.1.0> unpacking source archive /nix/store/ma5yhy0qjn0vr7b84ajnzxagcnzx9gjv-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 14.44s horae-tests-0.1.0> ------------ horae-tests-0.1.0> Nextest run ID 8f4d7354-4ba4-42e5-8bcd-69ad12b0cfec 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: 16 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 ::tests::current_band_is_the_highest_reached horae-tests-0.1.0> [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once horae-tests-0.1.0> Running [ 00:00:00] => 24/191: 16 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 ::tests::current_band_is_the_highest_reached horae-tests-0.1.0> [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once horae-tests-0.1.0> PASS [ 0.007s] horae-core budget::tests::a_single_jump_announces_every_crossed_band horae-tests-0.1.0> PASS [ 0.012s] horae-core client::tests::optional_text_normalizes_only_blank_fields horae-tests-0.1.0> PASS [ 0.012s] horae-core budget::tests::configured_alert_accepts_zero_percent_but_not_zero_budget 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.015s] horae-core budget::tests::allocated_totals_do_not_hide_individual_overruns_or_recover_overflow_as_zero horae-tests-0.1.0> PASS [ 0.019s] horae-core budget::tests::no_band_for_zero_or_missing_budget horae-tests-0.1.0> PASS [ 0.009s] horae-core client::tests::profile_rejects_unsupported_currency_and_null_billing_fields horae-tests-0.1.0> PASS [ 0.020s] horae-core budget::tests::each_crossing_is_announced_once horae-tests-0.1.0> PASS [ 0.020s] horae-core client::tests::default_rate_rejects_negative_fractional_cent_overflow_and_invalid_text horae-tests-0.1.0> PASS [ 0.009s] horae-core duration::tests::format_clamps_negative_to_zero horae-tests-0.1.0> PASS [ 0.019s] horae-core budget::tests::display_percentage_rounds_clamps_and_never_overflows horae-tests-0.1.0> PASS [ 0.024s] horae-core client::tests::default_rate_preserves_absence_zero_and_exact_large_amounts horae-tests-0.1.0> PASS [ 0.018s] horae-core budget::tests::configured_alert_rejects_invalid_inputs_and_widens_large_values horae-tests-0.1.0> PASS [ 0.019s] horae-core budget::tests::over_budget_fires_even_without_a_configured_100_band horae-tests-0.1.0> PASS [ 0.025s] horae-core budget::tests::configured_alert_threshold_is_exact_without_rounding horae-tests-0.1.0> PASS [ 0.013s] horae-core duration::tests::format_hhmm_pads_minutes horae-tests-0.1.0> PASS [ 0.022s] horae-core budget::tests::current_band_is_the_highest_reached 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.023s] horae-core client::tests::profile_accepts_supported_currencies_and_unicode_character_limit horae-tests-0.1.0> PASS [ 0.006s] horae-core duration::tests::parse_colon horae-tests-0.1.0> PASS [ 0.019s] horae-core client::tests::profile_rejects_blank_overlong_and_null_names horae-tests-0.1.0> PASS [ 0.011s] horae-core duration::tests::parse_decimal horae-tests-0.1.0> PASS [ 0.026s] horae-core budget::tests::allocated_totals_exclude_blank_but_include_zero_allowances horae-tests-0.1.0> PASS [ 0.008s] horae-core duration::tests::parse_rejects_colon_overflow_without_panicking horae-tests-0.1.0> PASS [ 0.028s] horae-core budget::tests::large_values_do_not_overflow horae-tests-0.1.0> PASS [ 0.012s] horae-core duration::tests::parse_round_trips_each_minute_in_a_day horae-tests-0.1.0> PASS [ 0.019s] horae-core duration::tests::minutes_between_is_exact_no_minimum horae-tests-0.1.0> Running [ 00:00:00] => 42/191: 16 running, 42 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 :hours_round_trip_against_exporter_transform horae-tests-0.1.0> [ 00:00:00] horae-core :money_round_trip_against_exporter_transform horae-tests-0.1.0> [ 00:00:00] horae-core arvest::convert::tests::negative_is_rejected horae-tests-0.1.0> [ 00:00:00] horae-core :client_key_equal_across_case_and_whitespace horae-tests-0.1.0> [ 00:00:00] horae-core onvert::tests::round_half_up_at_the_boundary horae-tests-0.1.0> [ 00:00:00] horae-core :keys::tests::normalize_trims_and_case_folds horae-tests-0.1.0> [ 00:00:00] horae-core :normalize_matches_sql_harvest_norm_contract horae-tests-0.1.0> PASS [ 0.015s] horae-core duration::tests::parse_preserves_u32_boundary_without_saturating horae-tests-0.1.0> PASS [ 0.017s] horae-core duration::tests::parse_decimal_rounds_half_minutes_exactly horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::convert::tests::conversion_rejects_unrepresentable_scaled_values_without_panicking horae-tests-0.1.0> PASS [ 0.015s] horae-core duration::tests::parse_rejects_negative_non_finite_and_malformed_values horae-tests-0.1.0> PASS [ 0.019s] horae-core duration::tests::format_round_trip horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::convert::tests::conversion_reports_precision_and_numerator_limits horae-tests-0.1.0> PASS [ 0.010s] horae-core importers::harvest::convert::tests::hours_common_values_are_exact horae-tests-0.1.0> PASS [ 0.011s] 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.016s] horae-core importers::harvest::convert::tests::conversion_handles_high_precision_without_intermediate_overflow horae-tests-0.1.0> PASS [ 0.012s] horae-core importers::harvest::convert::tests::high_precision_fraction_straddles_the_half_minute_exactly horae-tests-0.1.0> PASS [ 0.016s] horae-core importers::harvest::convert::tests::conversion_preserves_the_i64_boundary_and_rejects_rounding_past_it horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::keys::tests::composite_components_do_not_collide horae-tests-0.1.0> PASS [ 0.008s] 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::money_rounds_third_decimal_half_up horae-tests-0.1.0> Running [ 00:00:00] => 42/191: 16 running, 42 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 :hours_round_trip_against_exporter_transform horae-tests-0.1.0> [ 00:00:00] horae-core :money_round_trip_against_exporter_transform horae-tests-0.1.0> [ 00:00:00] horae-core arvest::convert::tests::negative_is_rejected horae-tests-0.1.0> [ 00:00:00] horae-core :client_key_equal_across_case_and_whitespace horae-tests-0.1.0> [ 00:00:00] horae-core onvert::tests::round_half_up_at_the_boundary horae-tests-0.1.0> [ 00:00:00] horae-core :keys::tests::normalize_trims_and_case_folds horae-tests-0.1.0> [ 00:00:00] horae-core :normalize_matches_sql_harvest_norm_contract horae-tests-0.1.0> Running [ 00:00:00] ==> 71/191: 16 running, 42 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 :hours_round_trip_against_exporter_transform horae-tests-0.1.0> [ 00:00:00] horae-core :money_round_trip_against_exporter_transform horae-tests-0.1.0> [ 00:00:00] horae-core arvest::convert::tests::negative_is_rejected horae-tests-0.1.0> [ 00:00:00] horae-core :client_key_equal_across_case_and_whitespace horae-tests-0.1.0> [ 00:00:00] horae-core onvert::tests::round_half_up_at_the_boundary horae-tests-0.1.0> [ 00:00:00] horae-core :keys::tests::normalize_trims_and_case_folds horae-tests-0.1.0> [ 00:00:00] horae-core :normalize_matches_sql_harvest_norm_contract horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::keys::tests::occurrence_counter_keys_are_independent 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.016s] horae-core importers::harvest::keys::tests::occurrence_counter_numbers_repeats_from_zero horae-tests-0.1.0> PASS [ 0.011s] horae-core importers::harvest::types::tests::archived_errors_and_new_inline_errors_reconcile_across_batches horae-tests-0.1.0> PASS [ 0.020s] horae-core importers::harvest::convert::tests::money_round_trip_against_exporter_transform horae-tests-0.1.0> PASS [ 0.027s] horae-core importers::harvest::convert::tests::hours_round_trip_against_exporter_transform horae-tests-0.1.0> PASS [ 0.008s] horae-core importers::harvest::types::tests::import_modes_display_their_wire_names horae-tests-0.1.0> PASS [ 0.020s] horae-core importers::harvest::keys::tests::client_key_equal_across_case_and_whitespace horae-tests-0.1.0> PASS [ 0.017s] horae-core importers::harvest::keys::tests::normalize_matches_sql_harvest_norm_contract horae-tests-0.1.0> PASS [ 0.014s] horae-core importers::harvest::keys::tests::task_key_shared_across_projects horae-tests-0.1.0> PASS [ 0.015s] horae-core importers::harvest::keys::tests::project_key_prefers_code_when_present horae-tests-0.1.0> PASS [ 0.011s] 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.011s] horae-core importers::harvest::keys::tests::time_entry_key_distinguishes_and_matches horae-tests-0.1.0> PASS [ 0.020s] horae-core importers::harvest::convert::tests::negative_is_rejected horae-tests-0.1.0> PASS [ 0.017s] horae-core importers::harvest::keys::tests::project_key_falls_back_to_client_and_name horae-tests-0.1.0> PASS [ 0.009s] horae-core importers::harvest::types::tests::does_not_reconcile_when_an_errored_count_has_no_reported_error horae-tests-0.1.0> PASS [ 0.020s] horae-core importers::harvest::keys::tests::normalize_trims_and_case_folds horae-tests-0.1.0> PASS [ 0.009s] horae-core invoice::tests::line_amount_accepts_large_representable_amounts horae-tests-0.1.0> PASS [ 0.010s] horae-core invoice::tests::discount_allocation_supports_maximum_representable_subtotal horae-tests-0.1.0> PASS [ 0.012s] horae-core importers::harvest::types::tests::reconciles_when_errored_counts_match_collected_errors horae-tests-0.1.0> PASS [ 0.013s] horae-core invoice::tests::discount_allocation_rejects_negative_lines_and_subtotal_overflow horae-tests-0.1.0> PASS [ 0.013s] horae-core invoice::tests::line_amount_half_hour horae-tests-0.1.0> PASS [ 0.013s] horae-core invoice::tests::line_amount_exact_hour horae-tests-0.1.0> PASS [ 0.014s] horae-core invoice::tests::invoice_adjustments_apply_discount_before_non_compounding_taxes horae-tests-0.1.0> PASS [ 0.018s] horae-core invoice::tests::line_amount_90_minutes horae-tests-0.1.0> Running [ 00:00:00] ===> 87/191: 16 running, 87 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 rse_cents_is_exact_where_a_float_would_drift horae-tests-0.1.0> [ 00:00:00] horae-core rse_cents_reads_whole_and_fractional_amounts horae-tests-0.1.0> [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent horae-tests-0.1.0> [ 00:00:00] horae-core atalog_grants_cannot_substitute_for_approval horae-tests-0.1.0> [ 00:00:00] horae-core not_remove_identity_or_explicit_grant_checks horae-tests-0.1.0> [ 00:00:00] horae-core se_read_is_needed_when_there_are_no_expenses horae-tests-0.1.0> [ 00:00:00] horae-core foreign_provenance_deny_even_with_all_grants horae-tests-0.1.0> PASS [ 0.017s] horae-core invoice::tests::discount_allocation_uses_largest_remainder_then_stable_source_order horae-tests-0.1.0> PASS [ 0.017s] horae-core invoice::tests::line_amount_odd_minutes 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.006s] horae-core invoice::tests::line_amount_zero_rate horae-tests-0.1.0> PASS [ 0.022s] horae-core invoice::tests::discount_allocation_handles_empty_zero_and_full_discounts horae-tests-0.1.0> PASS [ 0.023s] horae-core invoice::tests::invoice_adjustments_round_components_half_up 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.013s] horae-core invoice::tests::resolve_rate_cascade horae-tests-0.1.0> PASS [ 0.026s] horae-core invoice::tests::discounted_fee_contribution_leaves_discount_available horae-tests-0.1.0> PASS [ 0.019s] horae-core invoice::tests::selected_rate_keeps_zero_and_explicit_missing_project_rate horae-tests-0.1.0> PASS [ 0.019s] horae-core invoice::tests::selected_rate_mode_ignores_unselected_rate_sources horae-tests-0.1.0> PASS [ 0.020s] horae-core invoice::tests::line_amount_zero_minutes horae-tests-0.1.0> PASS [ 0.006s] horae-core permissions::approvals::tests::all_records_need_approval_scope_even_when_both_domains_are_readable horae-tests-0.1.0> PASS [ 0.015s] horae-core money::tests::addition_retains_currency_checks_and_representable_boundaries horae-tests-0.1.0> PASS [ 0.015s] horae-core money::tests::format_cents_plain_keeps_sign_below_one_unit horae-tests-0.1.0> PASS [ 0.034s] horae-core invoice::tests::discount_allocation_conserves_header_amount_and_bounds_each_line horae-tests-0.1.0> PASS [ 0.016s] horae-core money::tests::format_cents_groups_thousands_and_keeps_sign horae-tests-0.1.0> PASS [ 0.008s] horae-core money::tests::parse_cents_tolerates_grouping_spaces_and_signs horae-tests-0.1.0> PASS [ 0.017s] horae-core money::tests::addition_rejects_overflow_in_both_directions horae-tests-0.1.0> PASS [ 0.027s] horae-core invoice::tests::line_amount_rejects_unrepresentable_results horae-tests-0.1.0> Running [ 00:00:00] ===> 87/191: 16 running, 87 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 rse_cents_is_exact_where_a_float_would_drift horae-tests-0.1.0> [ 00:00:00] horae-core rse_cents_reads_whole_and_fractional_amounts horae-tests-0.1.0> [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent horae-tests-0.1.0> [ 00:00:00] horae-core atalog_grants_cannot_substitute_for_approval horae-tests-0.1.0> [ 00:00:00] horae-core not_remove_identity_or_explicit_grant_checks horae-tests-0.1.0> [ 00:00:00] horae-core se_read_is_needed_when_there_are_no_expenses horae-tests-0.1.0> [ 00:00:00] horae-core foreign_provenance_deny_even_with_all_grants horae-tests-0.1.0> Running [ 00:00:00] ====> 116/191: 16 running, 87 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 rse_cents_is_exact_where_a_float_would_drift horae-tests-0.1.0> [ 00:00:00] horae-core rse_cents_reads_whole_and_fractional_amounts horae-tests-0.1.0> [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent horae-tests-0.1.0> [ 00:00:00] horae-core atalog_grants_cannot_substitute_for_approval horae-tests-0.1.0> [ 00:00:00] horae-core not_remove_identity_or_explicit_grant_checks horae-tests-0.1.0> [ 00:00:00] horae-core se_read_is_needed_when_there_are_no_expenses horae-tests-0.1.0> [ 00:00:00] horae-core foreign_provenance_deny_even_with_all_grants horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::approvals::tests::missing_dimensions_and_input_duplicates_do_not_infer_scope horae-tests-0.1.0> PASS [ 0.019s] horae-core money::tests::parse_cents_rejects_what_it_cannot_represent horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::approvals::tests::catalog_grants_cannot_substitute_for_approval horae-tests-0.1.0> PASS [ 0.023s] horae-core money::tests::parse_cents_is_exact_where_a_float_would_drift horae-tests-0.1.0> PASS [ 0.019s] horae-core money::tests::parse_cents_reads_whole_and_fractional_amounts horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::catalog::stored_tests::rejects_duplicate_grants_instead_of_silently_deduplicating horae-tests-0.1.0> PASS [ 0.008s] horae-core permissions::approvals::tests::inactive_and_foreign_provenance_deny_even_with_all_grants horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::approvals::tests::empty_record_sets_do_not_remove_identity_or_explicit_grant_checks horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::approvals::tests::reevaluation_does_not_reuse_prior_read_or_approval_success horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::approvals::tests::removing_the_last_matching_relationship_revokes_both_domains horae-tests-0.1.0> PASS [ 0.007s] horae-core permissions::catalog::tests::adding_all_catalog_grants_produces_exactly_the_catalog horae-tests-0.1.0> PASS [ 0.018s] horae-core permissions::approvals::tests::no_expense_read_is_needed_when_there_are_no_expenses horae-tests-0.1.0> PASS [ 0.009s] horae-core permissions::catalog::stored_tests::restores_custom_selection_without_reapplying_profile_defaults horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::catalog::stored_tests::rejects_unsupported_versions_even_for_valid_grants horae-tests-0.1.0> PASS [ 0.009s] horae-core permissions::catalog::tests::approve_all_includes_read_scopes_but_not_write_or_expense_management horae-tests-0.1.0> PASS [ 0.022s] horae-core permissions::approvals::tests::one_unreadable_expense_denies_the_whole_supplied_set 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.018s] horae-core permissions::catalog::stored_tests::restores_each_builtin_selection_without_changing_grants horae-tests-0.1.0> PASS [ 0.025s] horae-core permissions::catalog::stored_tests::rejects_empty_saved_selection_instead_of_adding_member_floor horae-tests-0.1.0> PASS [ 0.024s] horae-core permissions::catalog::stored_tests::rejects_every_missing_prerequisite_without_repairing_input horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::catalog::tests::catalog_has_fifty_distinct_known_grants horae-tests-0.1.0> PASS [ 0.032s] horae-core permissions::catalog::stored_tests::rejects_each_missing_floor_grant horae-tests-0.1.0> PASS [ 0.024s] horae-core permissions::catalog::stored_tests::stored_order_does_not_change_the_selected_set horae-tests-0.1.0> Running [ 00:00:00] ====> 130/191: 16 running, 130 passed, 0 skipped 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 _name_decodes_without_legacy_role_conversion 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 r_grant_keeps_the_remaining_selection_closed horae-tests-0.1.0> [ 00:00:00] horae-core :any_compatible_grant_suffices_in_every_pair horae-tests-0.1.0> [ 00:00:00] horae-core val_need_neither_grants_nor_a_separate_actor horae-tests-0.1.0> [ 00:00:00] horae-core s_last_compatible_grant_loss_and_restoration horae-tests-0.1.0> [ 00:00:00] horae-core _do_not_create_person_management_eligibility horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::catalog::tests::direct_profile_defaults_match_the_known_reference_catalog horae-tests-0.1.0> PASS [ 0.011s] 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::empty_selection_includes_member_floor horae-tests-0.1.0> PASS [ 0.035s] horae-core permissions::approvals::tests::expense_read_scope_and_approval_scope_form_an_intersection horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::catalog::tests::every_profile_includes_floor_and_is_closed_under_dependencies horae-tests-0.1.0> PASS [ 0.034s] horae-core permissions::approvals::tests::only_expense_reads_or_their_write_prerequisites_make_others_expenses_visible horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::catalog::tests::finance_profiles_cannot_edit_rates_and_project_manager_has_no_financial_grants horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::catalog::tests::floor_cannot_be_removed_or_partially_modified horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::catalog::tests::report_and_withdrawal_grants_do_not_add_unrelated_authority horae-tests-0.1.0> PASS [ 0.115s] horae-core importers::harvest::convert::tests::conversion_matches_exact_scaled_rationals horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::catalog::tests::removing_one_financial_permission_preserves_unrelated_families horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::catalog::tests::member_has_only_own_time_and_expense_access horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::catalog::tests::removing_absent_permission_is_an_idempotent_no_op horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::catalog::tests::removing_invoice_draft_write_keeps_read_but_removes_managed_and_all_write horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::catalog::tests::template_names_reject_empty_and_overlong_unicode_names horae-tests-0.1.0> PASS [ 0.031s] horae-core permissions::catalog::tests::dependency_graph_matches_the_reference_edges_without_extra_cross_resource_grants horae-tests-0.1.0> PASS [ 0.015s] horae-core permissions::catalog::tests::removing_managed_time_read_also_removes_all_reads_writes_and_approvals horae-tests-0.1.0> PASS [ 0.010s] horae-core permissions::catalog::tests::template_names_trim_without_changing_display_or_internal_spaces horae-tests-0.1.0> PASS [ 0.010s] horae-core permissions::catalog::tests::unknown_permission_names_are_rejected horae-tests-0.1.0> PASS [ 0.019s] horae-core permissions::catalog::tests::profiles_reject_legacy_rank_names_and_unknown_values horae-tests-0.1.0> Running [ 00:00:00] ====> 130/191: 16 running, 130 passed, 0 skipped 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 _name_decodes_without_legacy_role_conversion 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 r_grant_keeps_the_remaining_selection_closed horae-tests-0.1.0> [ 00:00:00] horae-core :any_compatible_grant_suffices_in_every_pair horae-tests-0.1.0> [ 00:00:00] horae-core val_need_neither_grants_nor_a_separate_actor horae-tests-0.1.0> [ 00:00:00] horae-core s_last_compatible_grant_loss_and_restoration horae-tests-0.1.0> [ 00:00:00] horae-core _do_not_create_person_management_eligibility horae-tests-0.1.0> Running [ 00:00:00] =====> 147/191: 16 running, 130 passed, 0 skipped 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 _name_decodes_without_legacy_role_conversion 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 r_grant_keeps_the_remaining_selection_closed horae-tests-0.1.0> [ 00:00:00] horae-core :any_compatible_grant_suffices_in_every_pair horae-tests-0.1.0> [ 00:00:00] horae-core val_need_neither_grants_nor_a_separate_actor horae-tests-0.1.0> [ 00:00:00] horae-core s_last_compatible_grant_loss_and_restoration horae-tests-0.1.0> [ 00:00:00] horae-core _do_not_create_person_management_eligibility horae-tests-0.1.0> PASS [ 0.022s] horae-core permissions::catalog::tests::removing_any_non_floor_grant_keeps_the_remaining_selection_closed horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::person_management::tests::own_tracking_floor_does_not_qualify horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::rates::tests::billable_owner_never_uses_the_other_management_dimension horae-tests-0.1.0> PASS [ 0.016s] horae-core permissions::rates::tests::all_six_defaults_have_the_approved_financial_access horae-tests-0.1.0> PASS [ 0.032s] horae-core permissions::catalog::tests::known_permission_name_decodes_without_legacy_role_conversion horae-tests-0.1.0> PASS [ 0.013s] horae-core permissions::rates::tests::grant_removal_denies_without_mutating_the_remaining_selection horae-tests-0.1.0> PASS [ 0.028s] 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.023s] horae-core permissions::rates::tests::explicit_rate_edits_require_write_even_for_zero_or_an_equal_value horae-tests-0.1.0> PASS [ 0.011s] horae-core permissions::rates::tests::removing_read_prerequisites_denies_both_actions horae-tests-0.1.0> PASS [ 0.012s] horae-core permissions::rates::tests::read_only_cost_grant_cannot_authorize_an_explicit_rate_edit horae-tests-0.1.0> PASS [ 0.011s] horae-core permissions::rates::tests::unchanged_rate_edit_requires_no_financial_write_grant horae-tests-0.1.0> PASS [ 0.028s] horae-core permissions::person_management::tests::eligibility_tracks_last_compatible_grant_loss_and_restoration horae-tests-0.1.0> PASS [ 0.014s] horae-core permissions::rates::tests::identity_and_tenant_mismatches_deny_even_all_financial_grants horae-tests-0.1.0> PASS [ 0.028s] horae-core permissions::person_management::tests::each_catalog_grant_has_the_specified_compatibility_without_changing_grants 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.018s] horae-core permissions::rates::tests::unrelated_catalog_grants_never_authorize_ordinary_financial_fields horae-tests-0.1.0> PASS [ 0.010s] horae-core permissions::tests::assignments_do_not_grant_scope_and_missing_assignments_do_not_match horae-tests-0.1.0> PASS [ 0.043s] horae-core permissions::person_management::tests::combined_unrelated_grants_do_not_create_person_management_eligibility horae-tests-0.1.0> PASS [ 0.040s] horae-core permissions::rates::tests::cost_and_billable_grants_are_independent_and_read_does_not_allow_write horae-tests-0.1.0> PASS [ 0.007s] horae-core project::tests::basics_reject_blank_and_overlong_names horae-tests-0.1.0> PASS [ 0.044s] horae-core permissions::person_management::tests::any_compatible_grant_suffices_in_every_pair horae-tests-0.1.0> PASS [ 0.016s] horae-core permissions::tests::assignment_matching_searches_all_members_and_is_insensitive_to_duplicates horae-tests-0.1.0> PASS [ 0.016s] horae-core permissions::tests::every_scope_combination_matches_only_explicitly_granted_dimensions horae-tests-0.1.0> Running [ 00:00:00] =====> 162/191: 16 running, 162 passed, 0 skipped 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 mpotent_order_independent_and_duplicate_free horae-tests-0.1.0> [ 00:00:00] horae-core ct_missing_overlong_and_excessive_milestones horae-tests-0.1.0> [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials horae-tests-0.1.0> [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months horae-tests-0.1.0> [ 00:00:00] horae-core tests::percentage_preserves_exact_hundredths horae-tests-0.1.0> [ 00:00:00] horae-core inutes_respect_frozen_history_including_zero horae-tests-0.1.0> [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs horae-tests-0.1.0> PASS [ 0.043s] horae-core permissions::rates::tests::billable_actions_use_only_their_own_grant_and_owner_scope horae-tests-0.1.0> PASS [ 0.015s] horae-core project::tests::basics_accept_supported_currencies_and_optional_dates horae-tests-0.1.0> PASS [ 0.006s] horae-core project::tests::basics_reject_overlong_code_and_unsupported_currency horae-tests-0.1.0> PASS [ 0.018s] horae-core permissions::tests::scope_union_obeys_set_laws horae-tests-0.1.0> PASS [ 0.019s] horae-core project::tests::basics_accept_same_day_but_reject_reversed_dates horae-tests-0.1.0> PASS [ 0.024s] horae-core permissions::tests::inactive_or_foreign_context_is_denied_for_every_scope_combination horae-tests-0.1.0> PASS [ 0.052s] horae-core permissions::person_management::tests::self_link_rejects_the_proposal_in_every_position_without_filtering_it horae-tests-0.1.0> PASS [ 0.012s] horae-core project::tests::fee_schedules_validate_amounts_and_milestone_total horae-tests-0.1.0> PASS [ 0.011s] horae-core project::tests::payment_terms_support_receipt_and_checked_days horae-tests-0.1.0> Running [ 00:00:00] =====> 162/191: 16 running, 162 passed, 0 skipped 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 mpotent_order_independent_and_duplicate_free horae-tests-0.1.0> [ 00:00:00] horae-core ct_missing_overlong_and_excessive_milestones horae-tests-0.1.0> [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials horae-tests-0.1.0> [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months horae-tests-0.1.0> [ 00:00:00] horae-core tests::percentage_preserves_exact_hundredths horae-tests-0.1.0> [ 00:00:00] horae-core inutes_respect_frozen_history_including_zero horae-tests-0.1.0> [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs horae-tests-0.1.0> PASS [ 0.007s] horae-core state::tests::invoiced_is_final horae-tests-0.1.0> PASS [ 0.016s] horae-core project::tests::monthly_fee_dates_follow_calendar_months horae-tests-0.1.0> PASS [ 0.017s] horae-core project::tests::monetary_budgets_are_only_available_for_time_and_materials horae-tests-0.1.0> PASS [ 0.015s] horae-core project::tests::monthly_fee_dates_reject_invalid_calendar_inputs horae-tests-0.1.0> PASS [ 0.015s] horae-core rounding::tests::identity_when_inc_zero horae-tests-0.1.0> PASS [ 0.077s] horae-core permissions::catalog::tests::normalization_is_idempotent_order_independent_and_duplicate_free horae-tests-0.1.0> PASS [ 0.017s] horae-core rounding::tests::effective_minutes_respect_frozen_history_including_zero horae-tests-0.1.0> PASS [ 0.017s] horae-core project::tests::percentage_rejects_invalid_precision_range_and_syntax horae-tests-0.1.0> PASS [ 0.015s] horae-core rounding::tests::result_is_multiple_of_inc horae-tests-0.1.0> PASS [ 0.026s] horae-core project::tests::fee_schedules_reject_missing_overlong_and_excessive_milestones horae-tests-0.1.0> PASS [ 0.011s] horae-core state::tests::managers_invoice_open_and_approved_time horae-tests-0.1.0> PASS [ 0.006s] horae-core time_of_day::tests::format_round_trips horae-tests-0.1.0> PASS [ 0.015s] horae-core rounding::tests::up_and_down horae-tests-0.1.0> PASS [ 0.010s] horae-core state::tests::only_manager_can_approve 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.110s] horae-core permissions::catalog::stored_tests::restores_each_valid_grant_pair_and_its_revoked_selection 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.025s] horae-core project::tests::percentage_preserves_exact_hundredths horae-tests-0.1.0> PASS [ 0.008s] horae-core time_of_day::tests::parse_rejects_out_of_range_and_garbage horae-tests-0.1.0> PASS [ 0.010s] horae-core time_of_day::tests::parse_reads_24h horae-tests-0.1.0> PASS [ 0.025s] horae-core rounding::tests::nearest_ties_round_up horae-tests-0.1.0> PASS [ 0.016s] horae-core state::tests::member_submit_and_reopen horae-tests-0.1.0> PASS [ 0.011s] horae-core time_of_day::tests::parse_reads_12h_including_edges horae-tests-0.1.0> PASS [ 0.010s] horae-core time_of_day::tests::snap_rounds_to_nearest_step 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.006s] horae-core week::tests::configured_week_can_start_in_the_previous_year horae-tests-0.1.0> PASS [ 0.006s] horae-core week::tests::configured_week_contains_each_day_for_all_seven_start_days horae-tests-0.1.0> PASS [ 0.009s] horae-core types::tests::budget_kind_wire_strings_match_db_enum horae-tests-0.1.0> Running [ 00:00:00] ======= 191/191: 16 running, 162 passed, 0 skipped 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 mpotent_order_independent_and_duplicate_free horae-tests-0.1.0> [ 00:00:00] horae-core ct_missing_overlong_and_excessive_milestones horae-tests-0.1.0> [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials horae-tests-0.1.0> [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months horae-tests-0.1.0> [ 00:00:00] horae-core tests::percentage_preserves_exact_hundredths horae-tests-0.1.0> [ 00:00:00] horae-core inutes_respect_frozen_history_including_zero horae-tests-0.1.0> [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs horae-tests-0.1.0> PASS [ 0.008s] horae-core week::tests::maps_any_weekday_to_its_monday horae-tests-0.1.0> ------------ horae-tests-0.1.0> Summary [ 0.223s] 191 tests run: 191 passed, 0 skipped horae-tests-0.1.0> Running [ 00:00:00] ======= 191/191: 16 running, 162 passed, 0 skipped 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 mpotent_order_independent_and_duplicate_free horae-tests-0.1.0> [ 00:00:00] horae-core ct_missing_overlong_and_excessive_milestones horae-tests-0.1.0> [ 00:00:00] horae-core ts_are_only_available_for_time_and_materials horae-tests-0.1.0> [ 00:00:00] horae-core ts::monthly_fee_dates_follow_calendar_months horae-tests-0.1.0> [ 00:00:00] horae-core tests::percentage_preserves_exact_hundredths horae-tests-0.1.0> [ 00:00:00] horae-core inutes_respect_frozen_history_including_zero horae-tests-0.1.0> [ 00:00:00] horae-core hly_fee_dates_reject_invalid_calendar_inputs 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.txp7ZKNmZr ... 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.txp7ZKNmZr -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 9m 39s 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_subject_match_is_denied ... ok horae-tests-0.1.0> test auth::oidc::tests::deactivated_email_match_is_denied ... 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::no_account_is_denied_not_provisioned ... 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::extra_audiences_are_trusted_only_when_listed ... 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_connection_closed_without_response_remains_indeterminate ... 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::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::csv_named_pipe_is_rejected_without_waiting_for_a_writer ... 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::missing_and_mismatched_jobs_fail_without_substitution ... 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::ordinary_json_is_bounded_and_invalid_replies_are_not_echoed ... 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_plaintext_remote_and_credential_bearing_urls ... ok horae-tests-0.1.0> test cli::imports::tests::session_rejects_public_permissions_and_symlinks ... 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 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::existing_subject_wins_over_another_accounts_email ... 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 cli::tests::environment_probe ... 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::remote_import_and_job_commands_accept_the_documented_arguments ... ok horae-tests-0.1.0> test cli::tests::remote_commands_reject_conflicting_or_unbounded_options ... 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 components::permission_description::tests::permission_descriptions_cover_each_grant_distinctly ... 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 config::tests::environment::environment_probe ... 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 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 config::tests::environment::obsolete_authentication_variables_do_not_configure_the_server ... 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::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 config::tests::environment::partial_oidc_configuration_remains_disabled_without_a_callback ... ok horae-tests-0.1.0> test db::tests::pool_connections_force_custom_plans ... ok horae-tests-0.1.0> test config::tests::environment::invalid_job_attempt_limits_reject_startup ... 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 config::tests::environment::secure_cookies_use_the_documented_prefixed_variable ... 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 harvest::pagination_tests::client_permissions::client_api_allows_read_only_grants_without_legacy_management ... ok horae-tests-0.1.0> test db::tests::reset_empties_the_database_and_reapplies_migrations ... 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_rejects_unavailable_policy_and_inactive_sessions ... ok horae-tests-0.1.0> test cli::imports::tests::small_csv_upload_preserves_immediate_authorization_rejections ... 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::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_does_not_inherit_legacy_role_or_related_workflow_authority ... 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_empty_and_out_of_range_pages_keep_the_contract ... 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_task_access_filters_counts_and_preserves_rate_free_history ... 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::harvest_project_cost_overrides_require_admin_without_fabricated_fallback ... 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_malformed_filters_are_client_errors ... 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::project_permissions::canonical_project_api_managed_scope_requires_current_designation ... 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::client_permissions::client_api_preserves_filters_counts_and_foreign_id_denial ... 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_excludes_foreign_projects_and_foreign_client_parents ... 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_filters_archived_tasks_and_preserves_total_past_last_page ... 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::project_permissions::concurrency::project_api_rejects_actor_deactivated_after_session_lookup ... 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::task_permissions::task_api_rejects_malformed_canonical_state_without_legacy_fallback ... 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::task_permissions::task_api_does_not_inherit_legacy_admin_or_tracking_identity ... 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::project_permissions::concurrency::project_api_refreshes_scope_and_money_after_authority_wait ... ok horae-tests-0.1.0> test harvest::tests::a_manager_sees_the_whole_org ... 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_cannot_filter_to_a_colleague ... ok horae-tests-0.1.0> test harvest::tests::a_member_cannot_fetch_a_colleagues_entry ... ok horae-tests-0.1.0> test harvest::tests::a_member_cannot_list_users ... 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::task_permissions::task_api_rechecks_catalog_and_financial_grants_after_authority_wait ... 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::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::pagination_tests::task_permissions::task_api_rechecks_deactivation_after_session_lookup ... 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 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 harvest::pagination_tests::task_permissions::task_api_rechecks_global_rate_access_independently_of_catalog ... 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::account_switch::tests::competing_callbacks_and_confirmations_have_one_winner ... 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 importers::harvest::account_switch::tests::disconnect_and_reconnect_fence_callbacks_but_not_same_account_work ... 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::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::http_retries_429_but_never_follows_redirects_or_shortens_long_backoff ... 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_rejects_oversized_malformed_and_cyclic_pages ... 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 importers::harvest::account_switch::tests::competing_change_and_submission_cannot_both_succeed ... 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::assembled_rows_convert_to_exact_minutes ... 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::json_exponents_expand_exactly_with_bounded_output ... 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::account_switch::tests::running_jobs_block_change_and_old_execution_never_reaches_http ... 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::retry_and_change_are_serialized ... 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 harvest::tests::imported_legacy_rates_survive_retry_in_harvest_list_and_detail ... 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::credentials::tests::same_account_reconnect_rotates_encryption_without_resetting_watermarks ... 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::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::credentials::authority_tests::connection_changes_require_current_tenant_bound_administrator ... 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::engine_tests::api_sync_adopts_entries_from_a_prior_csv_import ... 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::bad_records_are_reported_and_run_continues ... 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::concurrent_imports_reject_overlap_without_collapsing_repeated_entries ... 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::credentials::authority_tests::disconnected_noop_still_requires_authority ... 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::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::cancelling_a_csv_waiting_for_more_bytes_releases_its_session ... 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::credentials::authority_tests::failed_connection_changes_roll_back_and_release_authority_and_reservation ... 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::completed_imports_allow_immediate_retries ... 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_cancel_joins_parser_and_preserves_committed_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_preview_cancel_preserves_simulation_for_manual_retry ... ok 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_report_metadata_is_bounded_after_recovery ... 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::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_preview_resumes_after_a_crash_without_recounting_rows ... 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::csv_streaming::durable_csv_preview_rejects_a_stale_next_batch ... 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::full_import_creates_all_levels_with_exact_minutes ... 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_resumes_committed_batches_without_recounting_duplicate_rows ... 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::csv_streaming::durable_csv_reclaimed_lease_cannot_commit_the_next_batch ... 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::lookup_cache::cold_query_callsite_on_untraced_thread_is_still_captured ... 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::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::lookup_cache::project_task_cache_distinguishes_both_sides_of_the_link ... 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::csv_streaming::csv_measurement_recovers_a_complete_batch_without_recounting ... 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::natural_key_reimport_normalizes_whitespace_and_ascii_case ... 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::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::submission_barrier_blocks_imported_time_entries ... 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::rejects_foreign_parent_snapshots_before_restoring_any_rows ... 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::resolve::preview::tests::checkpoint_retains_link_activity_and_derives_missing_legacy_field ... 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::tests::import_batches_join_the_access_gate_before_resource_locks ... 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::api_rejects_ambiguous_email_without_advancing_watermark ... 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_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::large_run_reuses_parents_and_reconciles_totals ... 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::sync_tests::checkpoints::durable_api_preview_resumes_catalog_download ... 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_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_remembers_an_earlier_missing_timestamp ... 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_preview_preserves_adoptions_and_repeated_ids_across_recovery ... 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::checkpoints::durable_api_resumes_committed_pages_and_preserves_the_high_watermark ... 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::dry_run_leaves_data_provenance_and_watermark_unchanged ... 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::empty_sync_does_not_invent_a_watermark ... 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::exact_api_decimals_survive_preview_commit_and_reimport ... 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::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::missing_source_timestamp_keeps_the_previous_watermark ... 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::paging::cancelled_page_consumer_retains_lock_until_worker_exits_and_rolls_back ... 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::durable_api_stale_commit_cannot_advance_data_or_watermark ... 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_catalog_preserves_metadata_and_counts_each_entity_once ... 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::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::watermark_write_failure_rolls_back_imported_data ... 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::successful_sync_only_marks_the_incrementally_fetched_entity ... 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::acknowledges_confirmed_delivery_without_reclaiming_it ... 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::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 jobs::report::stream_tests::download_denies_revocation_before_first_page_and_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_keeps_its_snapshot_when_later_progress_archives_the_inline_tail ... 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_reports_missing_fragments_after_its_buffered_page ... 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::tests::concurrent_legacy_converters_archive_each_error_once ... 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::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::tests::legacy_converter_gate_allows_a_job_locked_workers_chunk_foreign_keys ... 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_reads_only_when_consumed_and_releases_its_connection ... 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::tests::cancellation_and_retry_are_scoped_and_idempotent ... 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::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 jobs::report::tests::upgrading_legacy_reports_preserves_errors_and_fences_old_attempts ... 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::report_fragments_survive_until_the_owning_job_expires ... 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::tests::expired_final_attempt_fails_without_claiming_again ... 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::api_job_keeps_its_policy_across_duplicate_enqueue_and_manual_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::history_paginates_tied_timestamps_and_rejects_foreign_cursors ... 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::expired_lease_cannot_renew_or_commit_using_an_old_transaction_timestamp ... 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::invalid_policy_cannot_enqueue_a_job_or_upload ... 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::missing_configuration_records_error_and_requeues ... 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::outbox_delivery_is_idempotent ... 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::failed_csv_commit_retains_confirmed_report_through_history_and_retry ... 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_stored_payloads_reach_a_terminal_error ... 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::import_adapters_reject_a_lease_from_another_organization ... 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::outbox_rollback_does_not_publish_an_event ... 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::synthetic_job_executes_through_claim_and_completion ... 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::upload_organization_must_match_its_job ... 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::outbox_same_kind_consumers_cannot_claim_the_same_lease ... 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::outbox_stale_claims_cannot_acknowledge_or_reschedule_delivery ... ok horae-tests-0.1.0> test jobs::tests::cleanup_retains_retryable_uploads_and_deletes_expired_jobs ... 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_rechecks_claim_and_clock_after_final_wait ... 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 jobs::tests::submission_key_cannot_change_csv_bytes_or_mode ... 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 notifications::tests::authority::budget_delivery_skips_project_drift_or_disappearance ... ok horae-tests-0.1.0> test jobs::tests::stopped_worker_leaves_queued_jobs_unclaimed ... 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 notifications::tests::authority::budget_delivery_waits_for_organization_and_rechecks_recipient ... 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 jobs::tests::reclaimed_attempt_rejects_stale_results_even_with_the_same_worker_name ... 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::authority::budget_preparation_cancellation_and_deadline_release_single_connection ... 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::sendmail_failure_does_not_expose_program_output ... 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_receives_fixed_arguments_and_stable_message_identity ... ok horae-tests-0.1.0> test notifications::tests::failed_email_retries_same_identity_and_eventually_stops ... ok horae-tests-0.1.0> test notifications::tests::foreign_notification_payload_is_terminal_and_never_sent ... 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 notifications::tests::verbose_sender_output_is_discarded_without_blocking_delivery ... 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::billing::tests::budget_errors_target_a_control_that_can_be_corrected ... 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::an_empty_form_is_not_reported_as_saved ... 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::any_saved_draft_wins_over_context_including_empty_or_matching_client ... 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::draft::tests::context_prefills_only_a_new_form_without_fixing_its_currency ... 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::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::new_project::team::tests::exceeding_the_team_limit_does_not_partially_add_people ... 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::cost_total_uses_organization_currency_across_billing_currencies ... 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_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::settings::own_permissions::tests::own_permissions_view_admin_identity_is_explicit_not_derived_from_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_the_wrong_first_subject_or_requester ... ok horae-tests-0.1.0> test pages::timesheet::data::tests::rejects_rows_repeated_across_pages ... 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 pages::timesheet::refresh_tests::discarding_a_row_removes_its_drafts_only_for_the_captured_week ... 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_shows_monday_to_friday ... 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_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::refresh_tests::typing_in_another_cell_survives_a_save_refresh ... 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::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::only_a_blank_duration_can_start_an_eligible_timer ... 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::terminal_stop_recovery_is_owner_only_when_tracking_is_lost ... 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::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::legacy_historical_edits_do_not_create_new_tracking_eligibility ... 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::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::today_offset_is_six_on_the_sunday ... 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::value_cell_class_marks_today_when_nonzero ... 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::weekend_style_follows_the_date_not_the_column_offset ... 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::revoked_recipient_does_not_receive_a_pending_email ... 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::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 notifications::tests::sendmail_timeout_kills_and_reaps_the_child ... 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::database::tests::application_database_owner_is_not_a_plugin_identity ... 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::project_membership_payload_excludes_private_configuration ... 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::role_change_event_carries_previous_role ... ok horae-tests-0.1.0> test plugin::event::tests::us2_events_have_stable_hook_names ... ok horae-tests-0.1.0> test plugin::event::tests::submission_event_serializes_payload ... 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_cannot_execute_security_definer_functions ... 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::database::tests::reader_accepts_optional_first_party_rounding_helper ... ok horae-tests-0.1.0> test plugin::database::tests::reader_cannot_have_access_to_credentials ... 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::database::tests::reader_cannot_switch_into_another_role ... 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::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::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::writes_are_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::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::host::tests::wrap_select::strips_a_trailing_semicolon_before_wrapping ... 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::reject_empty_hooks ... ok horae-tests-0.1.0> test plugin::manifest::tests::reject_unknown_hook ... ok horae-tests-0.1.0> test plugin::manifest::tests::parses_optional_config_table ... 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_queries_preserve_parameters_and_rollback_session_settings ... 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> test plugin::host::tests::database_tests::query_results_are_bounded_without_silent_truncation ... 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.38s 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.42s 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.45s 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.37s 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::registry::tests::initialization::instruction_budget_is_replenished_for_each_call ... 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::isolation::cancelling_a_waiter_keeps_capacity_reserved_until_the_host_call_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::isolation::confirmed_dispatch_returns_overload_for_retry ... 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::confirmed_dispatch_waits_for_the_plugin_to_finish ... 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::events_execute_outside_the_async_worker ... 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::loaded_plugins_cannot_start_with_excessive_memory ... 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::oversized_event_payloads_are_not_queued ... 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::pending_capacity_rejects_new_work_without_spawning_tasks ... ok horae-tests-0.1.0> test plugin::registry::tests::load_empty_directory ... 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_nonexistent_directory ... ok horae-tests-0.1.0> test plugin::registry::tests::collect_widgets_from_echo_plugin ... 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 reports::bounded::tests::renderer_errors_and_panics_release_admission ... ok horae-tests-0.1.0> test plugin::registry::tests::load_test_plugins ... 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 render::tests::invoice_template_formats_large_minor_units_exactly ... 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 plugin::registry::tests::dispatch_event_with_no_subscribers ... 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::download_policy_binding_rejects_unknown_and_repeated_modes ... 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::plural_filters_preserve_every_dimension_and_deduplicate_ids ... 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::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_accepts_legacy_links_and_matching_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 reports::limits::tests::authorization::materialized_exports_deny_revoked_managers ... 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::bounded::tests::timed_out_export_keeps_its_slot_until_the_renderer_exits ... ok horae-tests-0.1.0> test reports::limits::tests::authorization::materialized_exports_deny_winning_legacy_revocations ... 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::dispatch_invoice_sent_to_echo_plugin ... ok horae-tests-0.1.0> test plugin::registry::tests::failing_plugin_does_not_block_caller ... 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::authorization::materialized_exports_release_rendered_body_when_final_check_is_interrupted ... 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::bounded_entries_reject_large_fields_and_combined_text ... 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_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::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::export_size_checks_and_reads_share_a_repeatable_read_snapshot ... 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_cancel_loading_without_retaining_authority ... 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_refresh_release_scope_after_parent_wait ... 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::project_authorization::project_exports_refresh_scope_after_winning_relationship_changes ... 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::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::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_release_cancelled_and_timed_out_checks ... 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::limits::tests::bounded_invoice_limits_include_branding_and_preserve_tenant_scope ... 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::project_canonical::canonical_project_workbook_rejects_financial_revocation_during_render ... 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::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::time_authorization::grouped::grouped_xlsx_budget_includes_contexts_in_addition_to_names ... 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::invoice_exports_show_saved_adjustments_and_exact_large_amounts ... 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_canonical::canonical_project_export_withholds_ordinary_monetary_budget ... 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::scoped_xlsx_deletion_keeps_recorded_scope_but_loss_of_person_access_denies ... 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_legacy_manager_role_does_not_expand_canonical_scope ... 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::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_rejects_paged_reversed_or_wrong_requester_queries ... 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_reauthorizes_captured_project_not_reassigned_source ... 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::scoped_xlsx_source_refreshes_grant_gains_and_losses_after_org_wait ... 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::grouped::grouped_xlsx_limits_groups_not_source_entries_and_preserves_scope ... 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::limits::tests::tag_filter_applies_before_xlsx_size_checks_and_rendering ... 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::privacy_tests::project_downloads_follow_progress_visibility ... 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::project_authorization::project_exports_share_one_size_and_payload_snapshot ... 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::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_authority_releases_successful_locks_and_overrides_inherited_settings ... 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::streaming::database_tests::authorization::streamed_header_and_total_blocks_recheck_manager_after_capacity ... 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_pending_project_block_checks_all_captured_ids_after_capacity ... ok 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::limits::tests::time_authorization::scoped_xlsx_revoked_grants_after_render_deny_other_peoples_captured_rows ... 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::a_real_database_error_interrupts_the_csv_body ... 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_timesheet_rechecks_after_backpressure_without_retaining_locks ... 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::authorization::streamed_source_stays_frozen_across_batches_while_authority_is_fresh ... 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::authorization::streamed_exports_refresh_after_organization_or_actor_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::dropping_streamed_timesheet_closes_its_database_connection ... 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::authorization::streamed_project_release_refreshes_scope_after_parent_wait ... 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::billability::billability_csv_uses_the_captured_source_after_entry_changes ... 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::authorization::streamed_native_projection_mismatch_fails_instead_of_coercing ... 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_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::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_matches_detailed_and_grouped_downloads ... 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_has_no_workbook_source_entry_cap ... 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::scoped_csv_empty_header_rechecks_policy_and_state_after_capacity ... 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_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_invalid_captured_state_cannot_be_repaired_before_fetch ... 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::scoped_time::scoped_csv_member_downloads_own_rows_without_financial_grants ... 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::scoped_csv_source_uses_management_edges_at_declare ... 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 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_revocation_under_backpressure_interrupts_body_without_holding_locks ... 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::scoped_time::grouped::grouped_csv_checks_last_context_before_emitting_any_group_bytes ... 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::database_tests::streamed_fee_invoice_has_no_fabricated_hours_or_hourly_rate ... 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::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::streamed_tag_filter_excludes_other_projects_without_duplicating_rows ... 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::tests::csv_timeout_interrupts_an_already_started_body ... 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::late_seed_failure_rolls_back_all_demo_data ... ok horae-tests-0.1.0> test seed::tests::repeated_seed_preserves_every_row_and_user_edits ... ok horae-tests-0.1.0> test seed::tests::concurrent_seed_runs_create_only_one_demo ... 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 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 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::grouped::grouped_csv_invalid_source_authority_cannot_be_repaired_after_declare ... ok horae-tests-0.1.0> test seed::tests::concurrent_initializers_cannot_create_two_organizations ... 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::approvals::submission_tests::admitted_submission_finishes_before_access_change ... 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 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_accepts_the_organizations_sunday_start ... 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::concurrent_init_and_seed_cannot_mix_organizations ... 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 seed::tests::seed_leaves_an_older_or_partial_demo_unchanged ... 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 server_fns::approvals::submission_tests::submission_uses_one_pool_connection ... 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::submission_tests::submission_waits_for_a_new_timer_before_checking_the_week ... 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::approvals::tests::sees_a_running_timer_inside_the_week ... 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 seed::tests::seed_refuses_a_second_organization_even_when_the_demo_exists ... 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::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::budget_tests::configured_alerts_deduplicate_concurrent_checks_and_recrossing ... 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::approvals::isolation_tests::own_organization_can_reopen_without_unlocking_invoiced_entries ... 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_budget_sweep_recovers_missed_checks_without_duplicates ... 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::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::configured_monthly_budget_excludes_other_months_and_nonbillable_time ... 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_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::budget_tests::overview_budget_progress_is_current_period_scoped_and_authorized ... 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::budget_tests::overview_budget_progress_includes_people_without_an_allowance ... 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::clients::page_tests::legacy_workflow_readers_are_unchanged_under_policy_one ... 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::project_counts_follow_the_policy_one_project_reader ... 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::tests::both_activation_transitions_change_once_and_preserve_details ... 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::unrelated_grants_and_legacy_roles_do_not_open_the_catalog ... 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_default_rate_allows_detail_edits_and_equivalent_currency ... 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::unavailable_permission_state_and_inactive_actors_fail_closed ... 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_hold_authority_until_the_read_finishes ... 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_summaries_exclude_foreign_clients_and_unreadable_project_currencies ... 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_details_keep_catalog_identity_but_omit_member_billing ... 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_require_manager_authority_even_without_invoices ... 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::client_summaries_keep_catalog_without_projects_and_count_archived_projects ... 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::profile_create_persists_normalized_identity_and_exact_optional_rate ... 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::missing_and_foreign_clients_are_not_noops ... 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::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_update_rechecks_financial_snapshot_after_waiting_for_a_concurrent_edit ... 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_rejects_stale_currency_even_when_the_rate_is_still_unset ... 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_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::repeating_a_competing_edit_does_not_report_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::restoring_values_after_a_competing_edit_reports_a_change ... 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::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::import_access_rechecks_revocation_after_organization_and_actor_waits ... 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::requester::duplicates_and_job_lifecycle_never_replace_or_invent_the_original_requester ... 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::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::requester_migration_preserves_unknown_authors_in_all_job_states ... 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::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::conflicting_and_stale_commands_preserve_payload_policy_and_retained_state ... 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::invoices::fee_tests::concurrent_discounted_invoice_retries_return_one_invoice ... 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::authorized_job_lifecycle_and_duplicate_retention_work_with_one_connection ... 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::draft_fee_edit_serializes_retries_and_rejects_stale_revisions ... 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::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::draft_fee_edit_rejects_invalid_lines_and_current_unauthorized_actors ... 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::fee_preview_discount_ties_follow_source_keys_not_display_dates ... 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::invoice_preview_does_not_materialize_fees_and_preserves_released_snapshots ... 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_status_rechecks_authority_after_waiting_for_the_invoice_lock ... 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::monthly_fees_use_calendar_dates_and_skip_already_claimed_months ... 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::monthly_first_and_fifteenth_respect_partial_period_and_project_end ... 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::invoices::fee_tests::prepared_fee_selection_rejects_invalid_values_and_empty_generation ... 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::invoices::fee_tests::removing_discount_and_billing_the_remainder_cannot_both_succeed ... 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_requires_exact_excess_and_current_authority ... 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::single_fee_can_be_invoiced_without_time ... 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::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::fee_balance_migration_allocates_discount_without_rewriting_invoice_snapshots ... 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::editor::editor_snapshots_deny_winning_legacy_revocation ... 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::draft_fee_edit_requires_current_balance_and_exact_excess_confirmation ... 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_bills_partial_fees_and_rejects_stale_balances ... 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::snapshot_tests::races::financial_snapshots_hold_authority_until_materialization ... 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_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::races::financial_snapshots_deny_winning_actor_revocation_without_organization_change ... 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::snapshot_tests::races::financial_snapshots_retry_organization_row_change_and_refresh_amounts ... 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::races::financial_snapshots_release_cancelled_reads_for_one_connection ... 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::authority::invoice_generation_and_user_revocation_commit_in_gate_order ... 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::tests::authority::invoice_edit_and_transition_observe_user_revocation_order ... 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::authority::invoice_writers_override_readonly_defaults_without_changing_the_session ... 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::snapshot_tests::editor::editor_snapshots_preserve_rows_and_override_inherited_read_only ... 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::invoice_defaults_apply_exact_adjustments_and_payment_terms ... 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::invoice_defaults_legacy_insert_preserves_dates_and_exact_total ... 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_line_overflow_leaves_time_unbilled ... 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_selection_rejects_unavailable_projects_before_claiming ... 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::invoices::tests::invoice_preview_requires_explicit_resolution_and_scopes_selected_projects ... 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::imported_rates::imported_task_rates_require_matching_currency_only_for_new_configured_links ... 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::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::authority::cancelled_invoice_writers_roll_back_and_release_single_connection ... 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::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::mixed_project_currencies_cannot_partially_create_an_invoice ... 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::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::invoice_preview_keeps_time_rates_and_defaults_in_one_snapshot ... 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::organization::tests::branding_rechecks_authority_after_the_organization_wait ... 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::organization::tests::each_branding_field_changes_once_including_null_and_empty ... 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::invoices::tests::invoice_preview_matches_generation_without_claiming_time ... 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::organization::tests::branding_holds_actor_authority_until_its_write_commits ... 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::organization::tests::branding_requires_current_tenant_bound_authority_even_for_noops ... 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::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::permissions::audit_tests::browsing::history_page_rejects_malformed_history_without_partial_success ... 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::administrator_reads_historical_template_without_intent_or_replay_result ... 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::current_administrator_reads_inactive_authors_history_without_live_state ... 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::organization::tests::branding_rechecks_authority_after_an_actor_only_wait ... 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::direct_deactivation_winning_user_lock_denies_audit_read ... 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::permissions::audit_tests::profile_and_project_history_decode_exact_changes_and_noops ... 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::legacy_admin_and_all_grants_without_explicit_identity_cannot_read_audit ... 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::revocation_winning_gate_denies_waiting_historical_reader ... 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::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_legacy_mode_never_discloses_staging ... 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::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::browsing::cancelling_history_page_releases_both_authority_gates ... 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::own_tests::own_permissions_scope_is_sorted_and_excludes_membership_and_other_managers ... 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::preflight_tests::preflight_approval_diagnostics_preserve_stored_history ... 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::preflight_tests::preflight_lock_failure_releases_organization_without_mutating_data ... 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::audit_tests::profile_history_keeps_removed_relationships_after_grants_change_again ... 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::own_tests::own_permissions_wait_for_current_actor_deactivation ... 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::preflight_tests::preflight_separates_unknown_import_requesters_without_changing_artifacts ... 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::preflight_tests::preflight_requires_current_legacy_administrator_not_staged_grants ... 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::audit_tests::reader_winning_gate_finishes_before_revocation_and_later_reads_fail ... 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::concurrent_self_demotions_leave_one_active_explicit_administrator ... 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::profile_tests::canonical_actor_policy_tenant_and_target_checks_precede_mutation ... 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::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::own_tests::own_permissions_reload_after_winning_gate_under_repeatable_read_defaults ... 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::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_rechecks_grant_revocation_and_direct_deactivation_after_wait ... 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::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::editor_tests::editor_loss_names_cover_only_current_outgoing_effects ... 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::profile_tests::editor_tests::every_builtin_preview_matches_its_actual_save ... 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::cancelled_profile_save_rolls_back_effects_and_releases_single_connection ... 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::editor_tests::editor_preview_matches_saved_effects_without_writing ... 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::malformed_person_or_remaining_administrator_state_fails_closed ... 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::invalid_confirmations_and_noncanonical_grants_are_not_silently_repaired ... 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_overrides_readonly_defaults_locally ... 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::profile_command_waits_for_direct_actor_deactivation_even_on_replay ... 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_rechecks_remaining_administrator_after_deactivation_wait ... 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_rechecks_grants_and_direct_deactivation_after_wait ... 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_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::existing_user_share_lock_does_not_block_profile_command ... 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::read_only_retention_and_explicit_keep_project_access_preserve_independent_person_losses ... 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::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::project_people_tests::project_people_rechecks_designation_after_waiting_for_revocation ... 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::subjects_tests::subject_discovery_rechecks_revocation_after_gate_wait_and_between_pages ... 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::project_people_tests::project_people_cancellation_releases_connection_and_preserves_pool_defaults ... 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::revocation_winning_gate_denies_new_and_replayed_changes ... 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_discovery_rechecks_direct_deactivation ... 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::time_entries_tests::time_reads_exclude_foreign_parents_but_preserve_archived_history ... 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::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_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_finish_before_competing_revocation_when_read_admitted_first ... 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::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::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_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::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::billability_narrows_every_grouping_before_totals_and_cursor ... 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::subjects_tests::subject_discovery_cancellation_releases_connection_and_preserves_pool_defaults ... 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_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_preserve_dimensions_own_scope_and_rounding ... 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::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::grouped_reports_round_each_entry_before_summing_a_group ... 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::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_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_reports_tests::detailed_report_keeps_archived_history_and_report_rounding ... 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_profiles_and_custom_scope_union_do_not_duplicate_rows ... 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::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_uses_own_scope_without_directory_or_financial_grants ... 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::timesheet_context_tests::sheet_holds_selected_activity_through_entry_delivery_and_releases_on_cancel ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_context_tests::sheet_rechecks_selected_activity_after_waiting_for_archive ... 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::time_reports_tests::detailed_report_keyset_exhausts_ties_without_repeating_rows ... 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::time_reports_tests::detailed_report_rechecks_direct_actor_deactivation_after_wait ... 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::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::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_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_billability_preserves_billed_status_and_frozen_minutes_after_configuration_changes ... 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 horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_people_tests::admitted_discovery_finishes_before_competing_revocation ... 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::unchanged_edit_preserves_identity_source_timestamp_and_revisions ... 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::project_management_tests::cancelled_project_delegation_rolls_back_and_releases_single_connection ... 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::project_management_tests::concurrent_replacements_commit_only_one_current_revision ... 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::project_management_tests::audit_failure_rolls_back_removal_addition_and_revision ... 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::project_management_tests::designation_is_required_before_managed_editor_can_delegate ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::actual_template_command_receipt_cannot_be_reused_for_project_delegation ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::historical_replay_does_not_reapply_removed_or_now_ineligible_designations ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::timesheet_people_tests::profiles_and_custom_grants_use_time_scope_not_legacy_role_or_directory ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::legacy_user_share_locks_allow_manager_and_receipt_foreign_keys ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::foreign_missing_inactive_and_malformed_additions_fail_without_disclosure ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::project_delegation_overrides_readonly_defaults_locally ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::canonical_actor_grants_activity_tenant_and_policy_are_required ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::mixed_invalid_addition_preserves_entire_previous_set ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::project_delegation_denies_actor_deactivated_before_check ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::project_delegation_denies_manager_deactivated_before_check ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::project_delegation_retains_added_manager_activity_until_commit ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::reader_tests::manager_reader_observes_direct_deactivation_before_its_actor_lock ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::project_delegation_retains_actor_activity_until_commit ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::reader_tests::manager_reader_materializes_before_a_waiting_actor_deactivation ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::project_editor_delegates_existing_read_grants_without_promotion ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::reader_tests::manager_reader_holds_authority_and_cancellation_releases_it ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::reader_tests::manager_reader_requires_current_project_edit_scope_not_identity_or_membership ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::receipt_conflicts_precede_decoding_and_replay_requires_current_authority ... ok horae-tests-0.1.0> test server_fns::permissions::profile_tests::unchanged_and_unrelated_edits_do_not_clean_up_preexisting_incompatible_links ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::stale_duplicate_and_exhausted_revisions_never_replace_the_set ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::reader_tests::manager_reader_rechecks_revocation_after_the_organization_wait ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::reader_tests::manager_reader_preserves_the_complete_retained_set_without_private_fields ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::transaction_tests::delegation_reuses_editor_gate_without_upgrading_past_foreign_keys ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::additive_migration_preserves_populated_legacy_records ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::retained_ineligible_managers_and_archived_projects_allow_noop_and_removal ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::malformed_stored_grants_fail_without_repair ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::concurrent_equivalent_names_create_only_one_template ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::transaction_tests::project_and_manager_changes_commit_with_the_same_receipt ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::person_grants_and_identity_round_trip_independently_of_source ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::legacy_project_lock_returns_busy_instead_of_forming_an_org_fk_cycle ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::storage_does_not_activate_or_infer_legacy_roles ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::source_shape_and_revision_constraints_reject_invalid_rows ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::managed_scope_never_uses_another_project_or_legacy_membership ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::person_state_rejects_duplicates_and_foreign_users_and_templates ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::actor_share_lock_does_not_block_template_command ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::unicode_name_migration_preserves_existing_templates ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::replacement_audits_exact_delta_and_preserves_membership_history_and_other_scopes ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::concurrent_exact_retry_creates_one_receipt_without_changing_people ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::unicode_name_collision_rolls_back_migration_without_changing_profiles ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::template_names_are_case_insensitive_and_tenant_local ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::create_canonical_retry_returns_one_historical_change ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::delete_preserves_adjusted_grants_identity_and_business_rows ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::concurrent_creators_never_exceed_fifty_profiles ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::failed_audit_insert_rolls_back_creation_and_detachment ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::transaction_tests::project_rollback_discards_managers_revision_and_receipt ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::delete_replay_does_not_touch_a_same_name_replacement ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::equivalent_names_and_invalid_confirmed_selections_roll_back ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::revocation_winning_org_gate_denies_pending_replay_and_new_command ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::stale_foreign_and_exhausted_revisions_never_partially_delete ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::legacy_future_missing_foreign_and_non_admin_authority_deny ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::template_command_waits_for_direct_actor_deactivation_on_replay ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::unknown_grants_and_authority_fields_cannot_deserialize_as_commands ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::command_receipts_are_not_shared_between_administrators ... ok horae-tests-0.1.0> test server_fns::project_creation::assignment_tests::finalization_reuses_catalog_and_keeps_lead_overrides_local_on_retry ... ok horae-tests-0.1.0> test server_fns::permissions::project_management_tests::revocation_winning_gate_denies_waiting_delegation ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::receipts_enforce_tenant_exclusive_principal_and_request_uniqueness ... ok horae-tests-0.1.0> test server_fns::project_creation::assignment_tests::invalid_assignment_graphs_leave_no_partial_creation_or_draft_change ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::template_command_overrides_readonly_defaults_and_keeps_stricter_timeouts ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_concurrency::canonical_read_discards_snapshot_after_concurrent_revocation ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::invalid_stored_authority_and_template_grants_fail_closed ... ok horae-tests-0.1.0> test server_fns::permissions::storage_tests::referenced_template_deletion_requires_detaching_without_grant_or_identity_loss ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::malformed_assignee_aborts_all_detachments ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_cost_reader_does_not_require_legacy_administrator ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_concurrency::canonical_editor_operations_finish_before_waiting_designation_revocation ... ok horae-tests-0.1.0> test server_fns::permissions::template_tests::unsupported_receipt_version_fails_without_repeating_the_change ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_concurrency::canonical_save_rechecks_authority_after_concurrent_revocation ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_editor_keeps_hour_budgets_without_financial_grants ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_editor_managed_rates_require_designation_and_withhold_catalog_defaults ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_concurrency::canonical_replay_rechecks_recorded_effects_after_concurrent_revocation ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_editor_never_projects_stale_task_money_as_hours ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_editor_cannot_save_after_switching_to_another_authorized_person ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_editor_without_rate_read_withholds_stored_task_rate ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_member_removal_recomputes_hour_budget_without_financial_writes ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_financial_grants_do_not_replace_project_editing_authority ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_project_editor_is_not_rejected_by_legacy_member_role ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_managed_editor_requires_the_project_designation ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_blank_task_removal_preserves_stale_fee_total_without_financial_writes ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_save_preserves_withheld_fields_and_original_retry_intent ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_save_rejects_equal_value_edit_without_write_authority ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_new_task_alias_cannot_bypass_billable_write_authority ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_task_removal_recomputes_fee_budget_with_financial_authority ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_fee_to_hours_requires_financial_authority_on_save_and_replay ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_hour_budget_edits_preserve_inactive_parent_money ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::project_editor_keeps_inactive_member_budgets_on_name_save_and_replay ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_managers::canonical_form_cannot_reuse_an_independent_delegation_receipt ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_save_requires_the_requester_that_opened_the_editor ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_task_removal_recomputes_hour_budget_without_financial_writes ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::project_editor_explicit_hour_budget_change_clears_inactive_member_budget ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_read_only_billable_grant_rejects_task_rate_update ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_editor_withholds_monetary_settings_without_billable_read ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_managers::canonical_form_saves_managers_without_changing_legacy_membership_roles ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::catalog::editor_catalog_filters_candidates_before_bounded_literal_search_pages ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_managers::canonical_form_rejects_invalid_or_stale_manager_selection_atomically ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_managers::canonical_form_receipt_failure_rolls_back_delegation_and_project ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::catalog::editor_catalog_rechecks_revocation_after_waiting_for_the_organization ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_editor_uses_designations_instead_of_legacy_team_roles ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::catalog::editor_catalog_requires_operation_authority_not_legacy_role_or_rate_grant ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_managers::canonical_form_self_removal_commits_but_cannot_replay_without_authority ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::catalog::editor_catalog_withholds_defaults_without_their_financial_authority ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::concurrent_edits_have_one_winner_and_association_writes_invalidate_open_forms ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::editing_milestones_keeps_invoice_snapshots_and_fee_identities_immutable ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_fields::canonical_task_rate_zero_reset_and_revoked_retry_remain_distinct ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::catalog::editor_catalog_managed_scope_needs_designation_but_never_opens_global_rates ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::editor_keeps_archived_selected_identities_and_nullable_overrides ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::editor_loads_legacy_values_without_fabricating_a_billing_mode_or_draft ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::editor_preserves_fee_schedule_and_operational_milestone_ids ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::editor_load_uses_current_role_across_all_billing_configurations ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::editor_rechecks_tenant_role_and_active_status ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::editor_recovers_each_budget_scope_without_turning_absence_into_zero ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::editor_recovers_full_configuration_and_redacts_private_values_after_role_change ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::cost_edits_distinguish_zero_override_from_reset_without_changing_person_default ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::foreign_actor_cannot_save_or_retry_another_organizations_edit ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::manager_edit_preserves_private_settings_and_cannot_remove_them_indirectly ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::save_edits_the_same_legacy_project_and_never_creates_a_draft_or_configuration ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::save_preserves_recorded_time_and_rejects_removing_its_task_or_person ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::saves_recheck_current_authority_and_do_not_repeat_noops ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_managers::canonical_form_retains_archived_manager_with_different_legacy_role ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::save_updates_configured_sections_atomically_and_rejects_stale_or_invalid_edits ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::task_catalog_and_graph_changes_roll_back_together_on_duplicate_resolution ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::canonical_managers::canonical_form_manager_only_change_and_historical_replay_do_not_need_team_changes ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::task_activity::project_task_archive_restore_preserves_hidden_configuration_history_and_replays ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::billing_schema_rejects_partial_fee_schedules ... ok horae-tests-0.1.0> test server_fns::project_creation::import_tests::imported_catalog_rate_cannot_be_relabelled_as_workspace_currency ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::client_dialog_validates_details_and_persists_an_explicit_zero_rate ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::creation_actor_is_revalidated_inside_the_transaction ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::creation_client_must_be_active_and_in_the_same_organization ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::task_activity::invalid_task_activity_targets_and_global_restore_order_rollback_the_whole_edit ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::draft_ownership_discard_and_role_changes_are_enforced ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::creation_options_are_scoped_bounded_and_redact_manager_costs ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::draft_save_retries_do_not_overwrite_a_newer_revision ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::draft_schema_enforces_one_current_draft_per_creator ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::draft_schema_rejects_foreign_creator_and_completed_project ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::draft_validation_preserves_incomplete_input_but_bounds_its_size ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::final_validation_checks_invoice_defaults_and_scoped_budget_totals ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::final_validation_preserves_exact_budgets_and_rejects_unavailable_email ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::final_validation_requires_complete_fee_schedules_and_distinct_entities ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::final_validation_requires_real_details_and_ignores_hidden_type_settings ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::draft_schema_rejects_oversize_payload_and_invalid_revision ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::existing_projects_have_no_implicit_new_billing_configuration ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::finalization_persists_task_access_and_project_only_financial_overrides ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::finalization_rechecks_client_role_revision_and_rate_currency ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::managers_cannot_store_administrator_notes_or_costs_in_a_draft ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::invalid_task_rolls_back_project_and_keeps_the_draft ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::finalize_is_atomic_and_repeated_submission_returns_one_project ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::missing_draft_responses_do_not_disclose_foreign_ownership ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::selected_catalog_bounds_requests_and_excludes_inactive_people ... ok horae-tests-0.1.0> test server_fns::project_creation::import_tests::imports_preserve_finalized_project_configuration_and_restricted_access ... ok horae-tests-0.1.0> test server_fns::project_creation::validation::tests::assignment_rejections_identify_the_invalid_row ... ok horae-tests-0.1.0> test server_fns::project_creation::validation::tests::basic_rejections_identify_the_field_without_echoing_input ... ok horae-tests-0.1.0> test server_fns::project_creation::validation::tests::billing_rejections_identify_the_active_control ... ok horae-tests-0.1.0> test server_fns::project_creation::validation::tests::inactive_billing_inputs_remain_in_the_draft_without_blocking_creation ... ok horae-tests-0.1.0> test server_fns::project_creation::validation::tests::invoice_rejections_identify_the_field_without_echoing_input ... ok horae-tests-0.1.0> test server_fns::project_creation::validation::tests::milestone_rejections_target_the_invalid_row_by_identity ... ok horae-tests-0.1.0> test server_fns::project_creation::validation::tests::non_billable_projects_ignore_hidden_invoice_inputs ... ok horae-tests-0.1.0> test server_fns::project_creation::validation::tests::task_name_and_access_rejections_identify_the_invalid_row ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::selected_catalog_is_scoped_deduplicated_and_redacts_manager_costs ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::selected_client_lookup_is_scoped_and_keeps_archived_identity ... ok horae-tests-0.1.0> test server_fns::project_creation::tests::simultaneous_draft_updates_have_one_winner ... ok horae-tests-0.1.0> test server_fns::project_creation::locking_tests::every_project_entry_gates_before_actor_and_rechecks_revocation ... ok horae-tests-0.1.0> test server_fns::projects::assignment_tests::removal_preserves_foreign_and_malformed_assignments ... ok horae-tests-0.1.0> test server_fns::projects::assignment_tests::project_membership_and_task_callers_wait_before_authorizing ... ok horae-tests-0.1.0> test server_fns::projects::assignment_tests::stale_administrator_cannot_create_or_remove_after_revocation ... ok horae-tests-0.1.0> test server_fns::projects::bulk_tests::bulk_accepts_one_hundred_projects_and_mixed_status_noops ... ok horae-tests-0.1.0> test server_fns::projects::bulk_tests::bulk_ids_validate_before_writes_and_normalize_duplicates ... ok horae-tests-0.1.0> test server_fns::projects::bulk_tests::bulk_database_failure_rolls_back_earlier_changes ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::task_activity::project_settings_save_without_activity_intent_does_not_restore_archived_links ... ok horae-tests-0.1.0> test server_fns::projects::bulk_tests::bulk_missing_or_foreign_project_rolls_back_earlier_changes ... ok horae-tests-0.1.0> test server_fns::projects::bulk_tests::bulk_reversed_overlapping_batches_finish_without_deadlock ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::catalog::editor_catalog_has_no_implicit_legacy_policy_fallback ... ok horae-tests-0.1.0> test server_fns::projects::bulk_tests::bulk_preserves_invoiced_history_assignments_and_spend ... ok horae-tests-0.1.0> test server_fns::projects::bulk_tests::bulk_status_preserves_details_history_and_noop_versions ... ok horae-tests-0.1.0> test server_fns::project_creation::editing::tests::catalog::editor_catalog_rejects_switched_requesters_and_out_of_scope_projects ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::budgets::canonical_budget_financial_revocation_withholds_allowance_and_consumption ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::budgets::canonical_budget_summaries_exclude_unallocated_hours_and_money_but_not_zero ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::budgets::canonical_budget_managed_financial_scope_is_independent_of_project_read_all ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::budgets::canonical_shared_budget_does_not_disclose_other_person_allocations ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::budgets::canonical_shared_budget_does_not_disclose_individual_task_allocations ... ok horae-tests-0.1.0> test server_fns::projects::assignment_tests::creation_rejects_foreign_and_unknown_project_or_person ... ok horae-tests-0.1.0> test server_fns::projects::assignment_tests::assignment_mutations_wait_for_revocation_and_recheck_authority ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::budgets::canonical_budget_skips_hidden_monetary_overflow ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::budgets::canonical_budget_reader_does_not_require_legacy_management ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_managed_project_reads_require_current_designation ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::budgets::canonical_budget_managed_scope_requires_current_designation ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_own_only_member_does_not_inherit_legacy_manager_project_list ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_project_financial_projection_matches_owning_project_evaluator ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_project_reader_lists_without_legacy_management_or_tracking ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_project_read_does_not_inherit_legacy_admin_financial_fields ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_project_reads_exclude_foreign_client_parent_links ... ok horae-tests-0.1.0> test server_fns::projects::assignment_tests::own_assignment_lifecycle_preserves_role_and_duplicate_behavior ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::concurrency::project_readers_hold_authority_until_materialization_before_deactivation ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_project_reader_opens_without_legacy_management_or_tracking ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::concurrency::cancelling_project_readers_releases_organization_and_actor_fences ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::concurrency::project_readers_observe_grant_revocation_after_waiting_for_organization ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_tags_follow_project_reads_and_revocation ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_project_details_withhold_legacy_admin_notes_and_rate_controls ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::overview::legacy_overview_uses_current_role_not_the_captured_user_role ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::detail::detail_view_shared_member_gets_own_identity_not_other_people_or_legacy_actions ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::concurrency::project_readers_observe_deactivation_after_waiting_for_actor ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_shared_report_and_historical_tracking_are_distinct ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::detail::detail_view_rejects_changed_requester_and_current_resource_denial ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::overview::overview_observes_edit_revocation_after_waiting_for_organization ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_project_reads_reject_unknown_policy_and_invalid_grants ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::overview::overview_resolves_only_visible_client_identity_without_directory_or_rates ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::overview::overview_rejects_changed_requester_including_empty_results ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::overview::overview_edit_affordance_requires_current_project_write_scope ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::canonical_own_only_member_does_not_inherit_legacy_manager_project_details ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::spend::canonical_spend_reads_do_not_require_a_legacy_manager_role ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::spend::canonical_shared_progress_and_report_permissions_do_not_open_ordinary_money ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::overview::overview_denies_unavailable_actor_instead_of_binding_an_empty_success ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::spend::hidden_spend_overflow_does_not_prevent_authorized_hour_totals ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::detail::detail_view_contains_only_scoped_workflow_labels_and_current_edit_authority ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::spend::canonical_spend_managed_scope_requires_current_project_designation ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::spend::spend_rechecks_financial_only_revocation_after_organization_wait ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::spend::canonical_spend_withholds_money_after_financial_revocation ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::spend::canonical_spend_zero_and_withheld_money_remain_distinct_without_entries ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::project_task_labels_require_project_scope_not_global_task_scope ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::task_catalog_refreshes_permissions_after_organization_wait ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::task_catalog_uses_current_actor_and_never_foreign_tasks ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::assigned_tracking_task_survives_private_progress_without_catalog_grant ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::task_catalog_accepts_current_read_grant_without_legacy_role ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::task_reads_do_not_inherit_legacy_administrator_catalog ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::spend::canonical_spend_excludes_entries_with_foreign_person_parents ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::tracking_history_is_not_task_catalog_authority ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::team::canonical_member_does_not_inherit_legacy_admin_team_or_rates ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::project_task_reader_requires_current_manager_designation ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::task_catalog_withholds_global_rates_without_all_rate_read ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::team::team_reader_rejects_malformed_canonical_state_including_empty_projects ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::team::team_reader_does_not_disclose_cross_tenant_assignment_targets ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::task_catalog_all_rate_grant_is_independent_of_legacy_role ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::team::project_team_and_override_rates_follow_independent_current_project_scope ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::both_activation_transitions_preserve_details_and_change_once ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::task_reader_rejects_unknown_policy_even_with_legacy_admin ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::team::project_reader_can_read_retained_team_without_people_directory_or_rates ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::concurrent_deletion_is_rejected_by_both_mutations ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::budgets_and_rates_distinguish_null_zero_and_normalized_values ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::tasks::task_workflow_identity_rejects_foreign_client_parents ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::configured_edits_recheck_settings_after_waiting_for_the_project ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::configured_edits_preserve_non_hourly_billing ... ok horae-tests-0.1.0> test server_fns::projects::canonical_read_tests::team::team_reader_denies_foreign_projects_and_unavailable_actors ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::configured_edits_preserve_compatible_changes_and_idempotence ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::configured_edits_reject_incompatible_financial_changes_atomically ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::inactive_project_edits_preserve_identity_and_reject_implicit_migrations ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::invalid_project_fields_leave_the_row_unchanged ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::repeating_a_competing_deactivation_reports_no_transition ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::missing_and_foreign_rows_are_not_noops ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::repeating_a_competing_edit_requires_a_fresh_revision ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::restoring_a_competing_deactivation_reports_reactivation ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::restoring_a_competing_edit_does_not_overwrite_the_other_session ... ok horae-tests-0.1.0> test server_fns::projects::details_tests::project_details_only_offer_task_rate_currency_to_current_managers ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::unchanged_activation_preserves_the_row ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::project::unchanged_edit_preserves_the_row ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::both_activation_transitions_preserve_details_and_change_once ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::concurrent_deletion_returns_not_found_for_both_mutations ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::each_detail_field_changes_once_and_preserves_inactive_status ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::missing_and_foreign_rows_are_not_noops ... ok horae-tests-0.1.0> test server_fns::projects::details_tests::unlinked_and_private_project_tags_do_not_leak_into_filters ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::rate_edits_set_currency_without_relabelling_renames_or_noops ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::repeating_a_competing_deactivation_reports_no_transition ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::repeating_a_competing_edit_does_not_report_a_change ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::restoring_a_competing_deactivation_reports_reactivation ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::restoring_a_competing_edit_reports_a_change ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::unchanged_activation_preserves_the_row ... ok horae-tests-0.1.0> test server_fns::projects::mutation_tests::task::unchanged_edit_preserves_the_row ... ok horae-tests-0.1.0> test server_fns::projects::privacy_tests::client_project_filter_preserves_progress_access_and_rate_redaction ... ok horae-tests-0.1.0> test server_fns::projects::details_tests::project_details_and_tags_follow_current_progress_and_private_permissions ... ok horae-tests-0.1.0> test server_fns::projects::privacy_tests::legacy_members_retain_progress_without_new_settings ... ok horae-tests-0.1.0> test server_fns::projects::privacy_tests::outsiders_and_inactive_viewers_have_no_project_reads ... ok horae-tests-0.1.0> test server_fns::projects::privacy_tests::private_progress_does_not_prevent_tracking_or_reveal_financial_fields ... ok horae-tests-0.1.0> test server_fns::projects::privacy_tests::revoked_membership_preserves_only_own_historical_tracking_identity ... ok horae-tests-0.1.0> test server_fns::projects::privacy_tests::project_reads_use_current_authority_and_reject_foreign_scope ... ok horae-tests-0.1.0> test server_fns::projects::privacy_tests::project_members_and_leads_receive_progress_without_rates ... ok horae-tests-0.1.0> test server_fns::projects::task_activity_tests::activity_observes_revocation_after_organization_wait ... ok horae-tests-0.1.0> test server_fns::projects::task_activity_tests::activity_separates_session_rates_from_events_and_preserves_noops ... ok horae-tests-0.1.0> test server_fns::projects::task_activity_tests::archive_waits_for_existing_time_writer_and_observes_committed_timer ... ok horae-tests-0.1.0> test server_fns::projects::task_edit_tests::task_edit_holds_authority_while_waiting_for_task_and_commit ... ok horae-tests-0.1.0> test server_fns::projects::task_edit_tests::task_edit_observes_task_and_rate_revocation_after_organization_wait ... ok horae-tests-0.1.0> test server_fns::projects::task_activity_tests::activity_rejects_unavailable_authority_even_for_noops ... ok horae-tests-0.1.0> test server_fns::projects::task_activity_tests::project_task_activity_migration_preserves_legacy_and_archives_canonical_links ... ok horae-tests-0.1.0> test server_fns::projects::task_edit_tests::task_name_editor_preserves_unknown_currency_and_hides_rate_even_on_noop ... ok horae-tests-0.1.0> test server_fns::projects::task_edit_tests::task_rate_edit_does_not_rewrite_project_overrides_or_time_history ... ok horae-tests-0.1.0> test server_fns::projects::task_edit_tests::explicit_task_rate_noops_still_require_global_write_authority ... ok horae-tests-0.1.0> test server_fns::projects::task_link_tests::link_does_not_restore_archived_associations_or_touch_foreign_records ... ok horae-tests-0.1.0> test server_fns::projects::task_catalog::tests::catalog_pages_keep_duplicate_names_and_filter_activity_without_foreign_rows ... ok horae-tests-0.1.0> test server_fns::projects::task_link_tests::link_noops_reject_unavailable_authority_without_changing_storage ... ok horae-tests-0.1.0> test server_fns::projects::task_edit_tests::task_edit_rejects_actor_deactivated_after_waiting_for_actor_lock ... ok horae-tests-0.1.0> test server_fns::projects::task_edit_tests::task_rate_edit_refuses_stale_currency_after_organization_wait ... ok horae-tests-0.1.0> test server_fns::projects::task_link_tests::link_holds_authority_while_waiting_for_task ... ok horae-tests-0.1.0> test server_fns::projects::task_activity_tests::global_restore_does_not_restore_project_tracking_and_archive_invalidates_editor ... ok horae-tests-0.1.0> test server_fns::projects::task_catalog::tests::catalog_observes_revocation_after_waiting_for_current_authority ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::global_task_creation_does_not_inherit_legacy_administrator_authority ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::global_task_creation_accepts_current_grant_without_legacy_manager ... ok horae-tests-0.1.0> test server_fns::projects::task_edit_tests::task_edit_validates_currency_amount_name_and_foreign_targets_atomically ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::linked_task_creation_requires_both_current_grants_and_managed_scope ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::global_task_creation_rejects_unknown_policy_without_inserting ... ok horae-tests-0.1.0> test server_fns::projects::task_link_tests::link_requires_matching_default_currency_even_without_project_settings ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::initial_task_rate_and_project_link_commit_together_with_service_payload ... ok horae-tests-0.1.0> test server_fns::projects::task_link_tests::link_rechecks_project_rate_and_designation_after_organization_wait ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::new_task_link_obeys_nonbillable_project_without_changing_catalog_default ... ok horae-tests-0.1.0> test server_fns::projects::task_activity_tests::archive_excludes_new_tracking_writers_before_task_lock_and_commit ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::task_creation_rechecks_revoked_grants_after_organization_wait ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::project_edit_authority_does_not_create_global_tasks ... ok horae-tests-0.1.0> test server_fns::projects::tests::assignments_are_scoped_to_the_viewers_organization ... ok horae-tests-0.1.0> test server_fns::projects::tests::creating_a_project_task_enables_it_with_its_defaults ... ok horae-tests-0.1.0> test server_fns::projects::tests::enabling_is_tenant_scoped_even_for_existing_links_and_preserves_overrides ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::initial_task_rate_requires_global_financial_and_task_authority ... ok horae-tests-0.1.0> test server_fns::projects::tests::enabling_tasks_accepts_exact_project_currency_rates_and_preserves_existing_links ... ok horae-tests-0.1.0> test server_fns::projects::tests::enabling_tasks_rejects_explicit_rates_unused_by_the_project ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::unavailable_project_rolls_back_new_catalog_task ... ok horae-tests-0.1.0> test server_fns::projects::tests::enabling_tasks_rejects_incompatible_catalog_currency ... ok horae-tests-0.1.0> test server_fns::projects::tests::enabling_tasks_only_inherits_rates_used_by_configured_projects ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::task_creation_cannot_link_with_global_task_authority_alone ... ok horae-tests-0.1.0> test server_fns::projects::tests::project_rate_distinguishes_inheritance_zero_and_exact_amounts ... ok horae-tests-0.1.0> test server_fns::projects::tests::enabling_tasks_rejects_invalid_or_wrong_currency_explicit_rates_without_linking ... ok horae-tests-0.1.0> test server_fns::projects::tests::failed_project_task_creation_leaves_no_orphan_task ... ok horae-tests-0.1.0> test server_fns::projects::tests::managers_and_admins_can_read_assignment_rates ... ok horae-tests-0.1.0> test server_fns::projects::tests::members_can_list_identities_but_not_assignment_rates ... ok horae-tests-0.1.0> test server_fns::projects::tests::project_rate_helper_has_no_public_execute_grant ... ok horae-tests-0.1.0> test server_fns::projects::tests::unknown_catalog_currency_requires_explicit_configured_rates_but_preserves_legacy ... ok horae-tests-0.1.0> test server_fns::projects::tests::project_rate_sql_matches_rust_for_missing_zero_and_present_sources ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::task_creation_rechecks_revoked_project_designation_after_wait ... ok horae-tests-0.1.0> test server_fns::reports::tests::tag_filters_keep_report_dimensions_and_details_in_sync ... ok horae-tests-0.1.0> test server_fns::reports::tests::manager_report_omits_groups_containing_private_project_costs ... ok horae-tests-0.1.0> test server_fns::reports::tests::filters_and_renames_keep_report_identity_and_totals ... ok horae-tests-0.1.0> test server_fns::snapshot::reader_tests::legacy_readers_deny_writer_first_revocation ... ok horae-tests-0.1.0> test server_fns::reports::tests::report_uses_current_active_actor_and_tenant_for_every_filter ... ok horae-tests-0.1.0> test server_fns::snapshot::reader_tests::legacy_invoice_detail_keeps_metadata_and_lines_in_one_snapshot ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::task_creation_fails_closed_for_unavailable_actor_permissions ... ok horae-tests-0.1.0> test server_fns::projects::task_write_tests::initial_task_rate_rechecks_financial_authority_and_currency_after_wait ... ok horae-tests-0.1.0> test server_fns::snapshot::reader_tests::legacy_readers_cancel_without_retaining_authority_or_pool_connection ... ok horae-tests-0.1.0> test server_fns::time_entries::activity_tests::admitted_time_writer_finishes_before_account_deactivation ... ok horae-tests-0.1.0> test server_fns::time_entries::activity_tests::cancelled_time_writer_releases_fences_and_preserves_pool_defaults ... ok horae-tests-0.1.0> test server_fns::snapshot::reader_tests::legacy_readers_preserve_inherited_connection_settings ... ok horae-tests-0.1.0> test server_fns::time_entries::activity_tests::waiting_time_writer_rechecks_committed_or_rolled_back_deactivation ... ok horae-tests-0.1.0> test server_fns::time_entries::activity_tests::every_time_mutation_denies_inactive_and_missing_owners_without_changes ... ok horae-tests-0.1.0> test server_fns::reports::tests::same_names_keep_separate_groups_for_every_dimension ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::delegated_commands_keep_owner_and_apply_each_ordinary_intent ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::guards::all_intents_reject_read_only_inactive_and_stale_identities_atomically ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::guards::bulk_sets_do_not_partially_modify_foreign_locked_or_duplicate_entries ... ok horae-tests-0.1.0> test server_fns::snapshot::reader_tests::legacy_readers_hold_reader_first_authority_until_materialized ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::guards::delegated_stop_requires_restored_tracking_but_owner_keeps_terminal_recovery ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::guards::coverage_conflicts_are_explicit_pending_submitted_editing_integration ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::guards::legacy_own_history_is_editable_without_becoming_new_tracking_authority ... ok horae-tests-0.1.0> test server_fns::snapshot::reader_tests::legacy_readers_preserve_actor_tenant_filters_and_missing_resources ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::guards::no_op_emits_no_effects_and_changed_payload_uses_normalized_effective_values ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::guards::project_management_covers_only_its_project_and_checks_both_move_ends ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::guards::task_grants_archives_and_canonical_admin_role_do_not_bypass_tracking ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::a_limit_bounds_a_listing_on_its_own ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::revocation::cancelling_waiting_command_releases_authority_and_subject_barriers ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::revocation::admitted_delegated_stop_finishes_before_assignment_revocation ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::archived_project_task_excludes_choices_and_new_time_without_changing_global_task ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::a_reorder_rejects_foreign_missing_timed_and_duplicate_ids ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::an_unlimited_listing_needs_both_ends_of_the_range ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::revocation::delegated_stop_waits_for_revocation_and_observes_commit_or_rollback ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::clamps_duration_against_the_snapped_start ... ok horae-tests-0.1.0> test server_fns::time_entries::commands::tests::tracking_is_subject_eligible_and_actor_writable_without_financial_fields ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::a_running_timer_cannot_be_moved_to_another_day ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::admin_may_log_time_without_assignment ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::an_open_entry_can_move_into_a_day_with_locked_time ... ok horae-tests-0.1.0> test server_fns::reports::tests::shared_person_and_task_are_partitioned_by_currency ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::concurrent_timer_starts_insert_exactly_one_entry ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::assigned_member_may_log_time ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::rejects_out_of_range_start ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::snaps_unaligned_start_to_the_grid ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::moving_locked_time_rejects_the_entire_reorder ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::edits_preserve_archived_time_but_cannot_override_non_billability ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::inactive_project_cannot_accept_new_time_even_for_admin ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::untimed_start_is_left_untouched ... ok horae-tests-0.1.0> test server_fns::snapshot::reader_tests::legacy_readers_reject_revoked_session_identity ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::new_time_and_picker_require_a_project_task_link ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::new_time_and_picker_reject_inactive_or_foreign_contexts ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::submission_barrier_blocks_edits_and_cross_week_reorders ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::unassigned_member_is_forbidden ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::submission_barrier_blocks_manual_entries_and_timer_starts ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::competing_edit_that_restores_old_values_still_reports_a_change ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::competing_identical_edit_is_a_noop_after_the_first_commit ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::assignment_cascade_allows_an_inflight_entry_project_fk_to_finish ... ok horae-tests-0.1.0> test server_fns::time_entries::tests::new_time_uses_effective_billability_for_manual_entries_and_timers ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::concurrent_lock_or_delete_is_rechecked_before_editing ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::effective_billability_noop_preserves_the_row ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::each_editable_field_changes_once_including_nulls ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::inactive_owner_cannot_edit_time_after_session_lookup ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::normalized_noop_preserves_the_row_and_updated_at ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::missing_foreign_and_locked_entries_are_not_noops ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::restricted_empty_task_rejects_picker_manual_and_timer_starts ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::restricted_empty_task_rejects_changes_and_noop_edits ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::restricted_reordering_rejects_the_whole_batch ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::restricted_task_rejects_reschedule_and_delete ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::revoked_grant_does_not_trap_an_own_running_timer ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::revoked_timer_stop_preserves_the_open_state_guard ... ok horae-tests-0.1.0> test server_fns::users::tests::authority::access_transaction_holds_actor_authority_until_commit ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::task_grant_revocation_committed_during_an_edit_is_rechecked ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::restriction_changes_are_rechecked_before_manual_or_timer_insertion ... ok horae-tests-0.1.0> test server_fns::users::tests::authority::revoked_administrator_cannot_create_change_roles_or_deactivate ... ok horae-tests-0.1.0> test server_fns::time_entries::update_tests::task_grants_allow_tracking_and_archived_history_for_every_role ... ok horae-tests-0.1.0> test server_fns::users::tests::concurrency::access_changes_cannot_target_another_organization ... ok horae-tests-0.1.0> test server_fns::users::tests::concurrency::concurrent_deactivations_keep_an_active_admin ... ok horae-tests-0.1.0> test server_fns::users::tests::authority::duplicate_creation_rolls_back_and_leaves_access_changes_usable ... ok horae-tests-0.1.0> test server_fns::users::tests::concurrency::demotion_and_deactivation_keep_an_active_admin ... ok horae-tests-0.1.0> test server_fns::users::tests::concurrency::concurrent_demotions_keep_an_active_admin ... ok horae-tests-0.1.0> test server_fns::users::tests::authority::foreign_and_unknown_actors_cannot_change_local_user_access ... ok horae-tests-0.1.0> test server_fns::users::tests::concurrency::deactivation_and_demotion_keep_an_active_admin ... ok horae-tests-0.1.0> test server_fns::users::tests::concurrency::the_last_admin_cannot_be_demoted_or_deactivated ... ok horae-tests-0.1.0> test server_fns::users::tests::authority::active_administrator_can_create_change_roles_and_deactivate ... ok horae-tests-0.1.0> test server_fns::users::tests::concurrency::unchanged_admin_access_is_allowed ... ok horae-tests-0.1.0> test server_fns::users::tests::authority::project_editor_and_user_revocation_commit_in_gate_order ... ok horae-tests-0.1.0> test server_fns::users::tests::concurrency::repeatable_read_default_cannot_remove_every_administrator ... ok horae-tests-0.1.0> test server_fns::users::tests::authority::user_mutations_recheck_revocation_after_waiting_for_organization_lock ... ok horae-tests-0.1.0> test server_fns::users::tests::authority::user_mutations_wait_for_actor_revocation_and_recheck_after_commit ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 1493 passed; 0 failed; 11 ignored; 0 measured; 0 filtered out; finished in 585.76s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/admin_shell.rs (target/debug/deps/admin_shell-49ded7c279af1a9d) horae-tests-0.1.0> horae-tests-0.1.0> running 12 tests horae-tests-0.1.0> test members_and_managers_never_mount_admin_content ... ok horae-tests-0.1.0> test importers_preserves_legacy_authority_when_canonical_projection_fails ... ok horae-tests-0.1.0> test canonical_people_does_not_require_a_legacy_admin_role ... ok horae-tests-0.1.0> test audit_gate_hides_internal_authentication_failures ... ok horae-tests-0.1.0> test audit_route_uses_canonical_authority_without_replacing_legacy_page_checks ... ok horae-tests-0.1.0> test failed_user_does_not_mount_admin_content ... ok horae-tests-0.1.0> test failed_or_future_people_projection_keeps_only_recovery ... ok horae-tests-0.1.0> test legacy_admin_cannot_bypass_canonical_people_scope ... ok horae-tests-0.1.0> test resolved_admin_mounts_the_workspace_and_outlet ... ok horae-tests-0.1.0> test retry_waits_for_fresh_authorization_then_recovers ... ok horae-tests-0.1.0> test pending_user_does_not_mount_admin_content ... ok horae-tests-0.1.0> test task_catalog_navigation_is_independent_of_people_and_legacy_roles ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/approval_labels_ui.rs (target/debug/deps/approval_labels_ui-db0cb58251daf55e) horae-tests-0.1.0> horae-tests-0.1.0> running 3 tests horae-tests-0.1.0> test single_approval_action_keeps_the_record_id_not_the_person_label ... ok horae-tests-0.1.0> test approval_loading_error_empty_and_denied_states_need_no_directory ... ok horae-tests-0.1.0> test approval_names_render_from_rows_without_directory_and_escape_markup ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/cli_imports.rs (target/debug/deps/cli_imports-e6fb01f5330dad2a) horae-tests-0.1.0> horae-tests-0.1.0> running 5 tests horae-tests-0.1.0> test invalid_remote_arguments_have_a_machine_readable_exit ... ok horae-tests-0.1.0> test remote_configuration_errors_are_json_and_do_not_load_server_configuration ... ok horae-tests-0.1.0> test executable_commands_use_the_documented_authenticated_wire_contract ... ok horae-tests-0.1.0> test interrupting_the_executable_waiter_keeps_job_identity_and_never_sends_cancel ... ok horae-tests-0.1.0> test executable_wait_and_failure_exit_codes_match_the_json_contract ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.92s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/cli_restart.rs (target/debug/deps/cli_restart-a9f6054f1c17bfa4) horae-tests-0.1.0> horae-tests-0.1.0> running 1 test horae-tests-0.1.0> test detached_csv_recovers_after_the_server_process_is_killed ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.33s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/detail_navigation.rs (target/debug/deps/detail_navigation-4f5d1c8dd3a46a4a) horae-tests-0.1.0> horae-tests-0.1.0> running 68 tests horae-tests-0.1.0> test client_tests::denied_list_is_neither_empty_nor_populated ... ok horae-tests-0.1.0> test client_project_failure_preserves_billing_and_invoices ... ok horae-tests-0.1.0> test client_detail_distinguishes_unset_rate_from_known_zero_project_totals ... ok horae-tests-0.1.0> test client_project_totals_failure_does_not_invent_zero_or_hide_project_links ... ok horae-tests-0.1.0> test client_navigation_cancels_previous_pending_invoice_panel ... ok horae-tests-0.1.0> test client_tests::client_project_context_keeps_its_existing_reader ... ok horae-tests-0.1.0> test client_detail_links_use_current_client_and_preserve_member_boundaries ... ok horae-tests-0.1.0> test client_tests::hidden_or_missing_client_detail_reveals_no_identity ... ok horae-tests-0.1.0> test client_tests::legacy_manager_list_keeps_rows_and_management_actions ... ok horae-tests-0.1.0> test client_detail_navigation_loads_current_identity_billing_and_work ... ok horae-tests-0.1.0> test client_tests::list_loading_and_errors_never_claim_empty_or_denied ... ok horae-tests-0.1.0> test client_tests::legacy_member_and_policy_one_readers_get_rows_without_legacy_writes ... ok horae-tests-0.1.0> test client_tests::policy_one_rate_reader_sees_rate_without_management_or_invoices ... ok horae-tests-0.1.0> test clients::filters::tests::clearing_query_preserves_selected_currency_and_lifecycle ... ok horae-tests-0.1.0> test clients::filters::tests::lifecycle_counts_share_query_and_currency_filters ... ok horae-tests-0.1.0> test client_tests::policy_one_detail_distinguishes_restricted_from_unset_rate ... ok horae-tests-0.1.0> test client_tests::readable_empty_list_is_a_genuine_empty_state ... ok horae-tests-0.1.0> test clients::filters::tests::preferred_or_visible_project_currency_matches_but_query_still_applies ... ok horae-tests-0.1.0> test clients::form::tests::absent_billing_authority_never_produces_an_edit_payload ... ok horae-tests-0.1.0> test clients::form::tests::ambiguous_creation_errors_require_explicit_recovery ... ok horae-tests-0.1.0> test clients::filters::tests::name_search_ignores_case_and_surrounding_whitespace ... ok horae-tests-0.1.0> test clients::form::tests::clearing_a_rate_is_explicit_and_needs_no_currency_confirmation ... ok horae-tests-0.1.0> test clients::form::tests::invalid_fields_are_not_rewritten_by_validation ... ok horae-tests-0.1.0> test clients::form::tests::rate_replacement_requires_confirmation_in_the_current_currency ... ok horae-tests-0.1.0> test client_tests::pending_refresh_withholds_previous_manager_controls_and_editor ... ok horae-tests-0.1.0> test clients::form::tests::untouched_fields_keep_zero_rate_and_original_snapshot ... ok horae-tests-0.1.0> test client_tests::list_refresh_rejects_changed_account_organization_or_policy ... ok horae-tests-0.1.0> test detail_tests::detail_uses_bound_labels_and_existing_editor_without_directory_or_duplicate_forms ... ok horae-tests-0.1.0> test invoices::defaults_form::tests::invoice_fields_bound_metadata_by_characters_and_reject_nul ... ok horae-tests-0.1.0> test detail_tests::detail_refresh_removes_edit_affordance_without_losing_authorized_labels ... ok horae-tests-0.1.0> test detail_tests::pending_and_denied_detail_never_mount_sensitive_children_or_render_raw_errors ... ok horae-tests-0.1.0> test failed_client_invoices_keep_identity_and_projects_without_claiming_empty_results ... ok horae-tests-0.1.0> test invoices::defaults_form::tests::invoice_fields_preserve_exact_percentages_and_custom_terms ... ok horae-tests-0.1.0> test invoices::defaults_form::tests::invoice_fields_preserve_receipt_terms_and_empty_optional_percentages ... ok horae-tests-0.1.0> test invoice_detail_shows_saved_adjustments_and_payment_metadata ... ok horae-tests-0.1.0> test invoices::defaults_form::tests::invoice_fields_reject_invalid_percentages_terms_and_second_tax ... ok horae-tests-0.1.0> test invoices::preparation::tests::invoice_review_requires_matching_sources_and_valid_values ... ok horae-tests-0.1.0> test invoices::preparation::tests::unavailable_or_malformed_invoice_context_never_uses_the_first_client ... ok horae-tests-0.1.0> test invoices::preparation::tests::invoice_context_selects_only_the_exact_available_client ... ok horae-tests-0.1.0> test invoices::preparation::fees::tests::fee_inputs_require_exact_amounts_and_an_explicit_positive_charge ... ok horae-tests-0.1.0> test invoices::preparation::fees::tests::refresh_keeps_raw_edits_and_does_not_select_new_sources ... ok horae-tests-0.1.0> test invoices::preparation::fees::tests::refresh_preserves_missing_or_relabelled_edits_until_explicit_removal ... ok horae-tests-0.1.0> test detail_tests::late_fee_access_denial_hides_loaded_detail_and_retry_keeps_original_identity ... ok horae-tests-0.1.0> test overview_tests::pending_or_denied_overview_starts_no_auxiliary_reads_or_actions ... ok horae-tests-0.1.0> test detail_tests::detail_refresh_keeps_initial_identity_and_rejects_wrong_project_or_policy ... ok horae-tests-0.1.0> test member_client_detail_never_requests_invoices_or_displays_default_rates ... ok horae-tests-0.1.0> test pending_or_failed_navigation_never_shows_the_previous_invoice ... ok horae-tests-0.1.0> test empty_project_list_links_to_the_importer_route ... ok horae-tests-0.1.0> test navigating_between_invoice_ids_loads_the_current_invoice ... ok horae-tests-0.1.0> test overview_tests::overview_uses_workflow_client_labels_and_binds_auxiliary_reads ... ok horae-tests-0.1.0> test navigating_between_project_ids_loads_current_assignments_and_tasks ... ok horae-tests-0.1.0> test pending_or_failed_project_assignments_never_show_previous_assignments ... ok horae-tests-0.1.0> test project_creation::tests::unauthorized_catalog_cost_is_absent_from_serialized_options ... ok horae-tests-0.1.0> test project_creation::tests::draft_roundtrip_preserves_incomplete_input_without_demo_data ... ok horae-tests-0.1.0> test project_creation::tests::unknown_draft_fields_are_rejected ... ok horae-tests-0.1.0> test project_creation::tests::legacy_project_edit_roundtrip_keeps_omitted_identity_and_intent ... ok horae-tests-0.1.0> test pending_or_failed_client_navigation_never_shows_previous_identity_or_work ... ok horae-tests-0.1.0> test projects::budget_display_tests::configured_summary_does_not_recompute_totals_from_private_breakdown ... ok horae-tests-0.1.0> test projects::budget_display_tests::display_preserves_units_sign_and_large_integer_values ... ok horae-tests-0.1.0> test projects::budget_display_tests::project_spend_keeps_withheld_money_distinct_from_zero_and_visible_hours ... ok horae-tests-0.1.0> test project_managers::tests::command_preserves_durable_intent_and_strictly_decodes_its_discriminator ... ok horae-tests-0.1.0> test pending_or_failed_project_details_never_show_previous_metadata ... ok horae-tests-0.1.0> test projects::budget_display_tests::tag_filter_matches_identity_without_duplicates_or_name_collisions ... ok horae-tests-0.1.0> test projects::budget_display_tests::unallocated_zero_and_overflow_budgets_are_not_conflated ... ok horae-tests-0.1.0> test task::tests::rate_transport_distinguishes_preserve_clear_and_zero ... ok horae-tests-0.1.0> test task::tests::rate_transport_rejects_ambiguous_or_imprecise_intent ... ok horae-tests-0.1.0> test overview_tests::overview_refresh_rejects_changed_account_organization_or_policy_without_old_rows ... ok horae-tests-0.1.0> test project_creation_links_use_the_static_new_project_route ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 68 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.19s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/import_jobs_ui.rs (target/debug/deps/import_jobs_ui-e2a6d04b0c50203b) horae-tests-0.1.0> horae-tests-0.1.0> running 35 tests horae-tests-0.1.0> test configured_unbound_connection_explains_read_only_access ... ok horae-tests-0.1.0> test account_change_is_busy_then_reports_recoverable_authorization_failure ... ok horae-tests-0.1.0> test account_change_explains_every_blocker ... ok horae-tests-0.1.0> test connection_actions_prevent_duplicate_submissions_and_keep_errors_local ... ok horae-tests-0.1.0> test cancellation_errors_are_visible_and_acceptance_does_not_acknowledge_completion ... ok horae-tests-0.1.0> test account_change_confirmation_can_cancel_without_mutation_in_both_binding_states ... ok horae-tests-0.1.0> test connection_picker_distinguishes_loading_unavailable_and_unconfigured ... ok horae-tests-0.1.0> test archived_report_shows_total_errors_and_a_job_scoped_download ... ok horae-tests-0.1.0> test blocked_retry_keeps_partial_reports_and_explains_the_missing_prerequisite ... ok horae-tests-0.1.0> test api_preview_confirmation_is_bound_to_the_original_account_generation ... ok horae-tests-0.1.0> test connection_management_groups_actions_and_never_promises_automatic_repair ... ok horae-tests-0.1.0> test history_failure_can_be_refreshed_and_restores_an_active_job ... ok horae-tests-0.1.0> test failed_poll_can_resume_without_replaying_its_old_error ... ok horae-tests-0.1.0> test importers::presentation::tests::interrupted_report_is_partial_regardless_of_retry_prerequisites ... ok horae-tests-0.1.0> test historical_preview_is_read_only_and_selecting_another_job_clears_it ... ok horae-tests-0.1.0> test importers::presentation::tests::no_selection_does_not_claim_no_import_history ... ok horae-tests-0.1.0> test importers::presentation::tests::source_labels_do_not_guess_unknown_importers ... ok horae-tests-0.1.0> test importers::presentation::tests::states_and_phases_have_readable_unknown_fallbacks ... ok horae-tests-0.1.0> test importers::presentation::tests::summaries_distinguish_zero_skipped_and_mixed_outcomes ... ok horae-tests-0.1.0> test history_labels_selection_and_unknown_metadata_are_readable ... ok horae-tests-0.1.0> test history_can_page_back_and_return_to_the_latest_imports ... ok horae-tests-0.1.0> test progress_uses_observed_counts_and_readable_phase_without_an_eta ... ok horae-tests-0.1.0> test missing_job_stops_polling_and_explains_that_status_is_unavailable ... ok horae-tests-0.1.0> test reopening_importer_restores_queued_and_running_jobs_from_history ... ok horae-tests-0.1.0> test pending_connect_is_single_submission_and_failure_keeps_a_recovery_action ... ok horae-tests-0.1.0> test navigating_away_invalidates_a_pending_preview_confirmation ... ok horae-tests-0.1.0> test failed_and_cancelled_history_shows_partial_outcomes_without_success_actions ... ok horae-tests-0.1.0> test replacing_a_file_during_preview_does_not_change_the_committed_source ... ok horae-tests-0.1.0> test retry_errors_are_visible_and_success_restarts_monitoring ... ok horae-tests-0.1.0> test newly_submitted_failed_preview_cannot_be_confirmed ... ok horae-tests-0.1.0> test selecting_another_job_drops_the_previous_pending_status_request ... ok horae-tests-0.1.0> test unselected_connected_importer_does_not_claim_an_empty_history ... ok horae-tests-0.1.0> test submission_displays_its_acknowledged_state_before_status_polling_returns ... ok horae-tests-0.1.0> test stale_confirmation_keeps_the_dialog_and_shows_the_error ... ok horae-tests-0.1.0> test result_copy_distinguishes_preview_zero_skipped_and_mixed_outcomes ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/integration.rs (target/debug/deps/integration-018b041b5f5a001f) horae-tests-0.1.0> horae-tests-0.1.0> running 36 tests horae-tests-0.1.0> test approval_hours_aggregate_billable_within_period ... ok horae-tests-0.1.0> test approved_entries_are_invoiceable ... ok horae-tests-0.1.0> test generate_invoice_totals_match ... ok horae-tests-0.1.0> test approval_workflow_approve_and_reject ... ok horae-tests-0.1.0> test invoiced_entries_cannot_be_rebilled ... ok horae-tests-0.1.0> test inactive_project_hidden_from_picker_but_kept_on_history ... ok horae-tests-0.1.0> test admin_changes_user_role ... ok horae-tests-0.1.0> test invoicing_update_skips_already_invoiced_entries ... ok horae-tests-0.1.0> test duplicate_invoice_numbers_rejected ... ok horae-tests-0.1.0> test line_amount_cents_sql_matches_rust ... ok horae-tests-0.1.0> test new_task_becomes_loggable_on_project ... ok horae-tests-0.1.0> test line_amount_cents_sql_and_rust_reject_final_overflow ... ok horae-tests-0.1.0> test one_timer_per_user_enforced ... ok horae-tests-0.1.0> test project_spend_grouped_in_sql_matches_the_rust_fold ... ok horae-tests-0.1.0> test rate_resolution_cascade ... ok horae-tests-0.1.0> test a_second_running_timer_is_refused_by_the_insert ... ok horae-tests-0.1.0> test reorder_untimed_orders_and_moves_across_days ... ok horae-tests-0.1.0> test admin_creates_user_and_duplicate_rejected ... ok horae-tests-0.1.0> test resubmit_after_approve_is_refused ... ok horae-tests-0.1.0> test role_gating_member_vs_manager_vs_admin ... ok horae-tests-0.1.0> test rounding_applied_on_submit ... ok horae-tests-0.1.0> test reject_after_approve_reopens_entries ... ok horae-tests-0.1.0> test start_minute_round_trips_and_is_constrained ... ok horae-tests-0.1.0> test deactivated_user_blocked_and_history_preserved ... ok horae-tests-0.1.0> test submitted_entries_cannot_be_updated ... ok horae-tests-0.1.0> test submit_week_with_running_timer_is_refused ... ok horae-tests-0.1.0> test stopping_timer_records_start_minute ... ok horae-tests-0.1.0> test last_active_admin_cannot_be_removed ... ok horae-tests-0.1.0> test the_long_timer_sweep_claims_each_timer_once ... ok horae-tests-0.1.0> test unassigned_user_cannot_create_entry ... ok horae-tests-0.1.0> test timer_start_stop_records_minutes ... ok horae-tests-0.1.0> test timer_under_a_minute_records_zero ... ok horae-tests-0.1.0> test totals_unaffected_by_start_minute ... ok horae-tests-0.1.0> test reschedule_moves_open_entry_and_rejects_locked ... ok horae-tests-0.1.0> test stop_timer_refuses_entry_that_left_open ... ok horae-tests-0.1.0> test void_invoice_restores_entries ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 36 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 20.55s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/new_project_screen.rs (target/debug/deps/new_project_screen-3ad8e9846e501bb1) horae-tests-0.1.0> horae-tests-0.1.0> running 75 tests horae-tests-0.1.0> test an_input_can_link_its_validation_error_without_changing_its_value_or_class ... ok horae-tests-0.1.0> test canonical_add_everyone_discards_the_editor_if_a_later_page_switches_session ... ok horae-tests-0.1.0> test a_real_code_suggestion_does_not_replace_recovered_input ... ok horae-tests-0.1.0> test administrative_notes_only_render_for_an_authorized_editor ... ok horae-tests-0.1.0> test canonical_editor_rejects_a_catalog_from_another_requester ... ok horae-tests-0.1.0> test billing_and_visibility_keep_native_radios_inside_designed_option_cards ... ok horae-tests-0.1.0> test assignment_controls_reuse_searchable_picker_and_compact_task_entry ... ok horae-tests-0.1.0> test canonical_add_everyone_discards_the_editor_after_a_requester_switch ... ok horae-tests-0.1.0> test canonical_add_everyone_rejects_over_capacity_without_partial_selection ... ok horae-tests-0.1.0> test canonical_editor_searches_and_add_everyone_never_use_creation_catalogs ... ok horae-tests-0.1.0> test canonical_route_change_cancels_the_previous_projects_pending_save ... ok horae-tests-0.1.0> test canonical_invalidation_cancels_delayed_save_success_before_fresh_reload ... ok horae-tests-0.1.0> test checkbox_error_identity_is_opt_in_without_changing_its_behavior ... ok horae-tests-0.1.0> test canonical_route_change_starts_a_fresh_editor_after_access_loss ... ok horae-tests-0.1.0> test compact_input_adds_utilities_and_accessible_name_without_losing_native_state ... ok horae-tests-0.1.0> test archived_team_manager_can_be_unchecked_without_unlocking_tracking_settings ... ok horae-tests-0.1.0> test archived_nonmanager_cannot_acquire_a_designation_from_the_team_checkbox ... ok horae-tests-0.1.0> test client_and_currency_use_labelled_form_dropdowns ... ok horae-tests-0.1.0> test edit_prefills_legacy_currency_and_type_without_reading_or_saving_a_draft ... ok horae-tests-0.1.0> test empty_form_has_labelled_fields_no_demo_data_and_no_spurious_save ... ok horae-tests-0.1.0> test canonical_session_invalidation_cancels_old_people_reads_before_reload ... ok horae-tests-0.1.0> test canonical_add_everyone_follows_identity_cursors_without_default_rates ... ok horae-tests-0.1.0> test navigation_icons_keep_default_dimensions_and_allow_opt_in_sizing ... ok horae-tests-0.1.0> test new_project::basics::tests::a_batch_that_would_exceed_the_tag_limit_is_rejected ... ok horae-tests-0.1.0> test new_project::basics::tests::a_full_tag_list_still_accepts_a_duplicate ... ok horae-tests-0.1.0> test new_project::basics::tests::overlong_tags_are_rejected_without_truncation ... ok horae-tests-0.1.0> test new_project::basics::tests::tags_trim_and_deduplicate_without_changing_existing_spelling ... ok horae-tests-0.1.0> test new_project::basics::tests::tag_length_counts_characters_instead_of_bytes ... ok horae-tests-0.1.0> test new_project::draft::tests::a_mismatched_acknowledgement_does_not_lose_pending_input ... ok horae-tests-0.1.0> test new_project::draft::tests::a_retry_keeps_the_unacknowledged_payload_and_revision ... ok horae-tests-0.1.0> test invoice_defaults_restore_custom_terms_and_named_second_tax ... ok horae-tests-0.1.0> test new_project::draft::tests::a_validation_rejection_allows_corrected_input_at_the_same_revision ... ok horae-tests-0.1.0> test new_project::draft::tests::an_empty_form_is_not_reported_as_saved ... ok horae-tests-0.1.0> test new_project::draft::tests::any_saved_draft_wins_over_context_including_empty_or_matching_client ... ok horae-tests-0.1.0> test new_project::draft::tests::context_prefills_only_a_new_form_without_fixing_its_currency ... ok horae-tests-0.1.0> test new_project::draft::tests::resuming_preserves_the_server_identity_and_incomplete_fields ... ok horae-tests-0.1.0> test new_project::team::tests::adding_everyone_deduplicates_without_replacing_project_overrides ... ok horae-tests-0.1.0> test new_project::billing::tests::budget_errors_target_a_control_that_can_be_corrected ... ok horae-tests-0.1.0> test new_project::team::tests::legacy_manager_checkbox_needs_no_canonical_selection ... ok horae-tests-0.1.0> test new_project::team::tests::removing_a_member_keeps_an_empty_restricted_task_restricted ... ok horae-tests-0.1.0> test new_project::team::tests::manager_checkbox_updates_complete_selection_without_dropping_outside_managers ... ok horae-tests-0.1.0> test new_project::tests::a_rejected_creation_can_be_edited_but_an_uncertain_commit_must_be_retried ... ok horae-tests-0.1.0> test new_project::team::tests::tracking_removal_and_readdition_keep_independent_manager_intent ... ok horae-tests-0.1.0> test new_project::tests::only_known_validation_fields_can_target_a_control ... ok horae-tests-0.1.0> test new_project::team::tests::exceeding_the_team_limit_does_not_partially_add_people ... ok horae-tests-0.1.0> test nonbillable_hides_fee_rate_and_invoice_controls_without_erasing_the_draft ... ok horae-tests-0.1.0> test project_creation::tests::draft_roundtrip_preserves_incomplete_input_without_demo_data ... ok horae-tests-0.1.0> test project_creation::tests::legacy_project_edit_roundtrip_keeps_omitted_identity_and_intent ... ok horae-tests-0.1.0> test project_creation::tests::unauthorized_catalog_cost_is_absent_from_serialized_options ... ok horae-tests-0.1.0> test project_creation::tests::unknown_draft_fields_are_rejected ... ok horae-tests-0.1.0> test project_managers::tests::command_preserves_durable_intent_and_strictly_decodes_its_discriminator ... ok horae-tests-0.1.0> test nonbillable_budget_picker_omits_fee_modes ... ok horae-tests-0.1.0> test planning_dates_restore_readable_shared_calendar_fields_without_saving ... ok horae-tests-0.1.0> test fixed_fee_restores_each_schedule_and_never_shows_hourly_rate_controls ... ok horae-tests-0.1.0> test protected_editor_cost_read_is_independent_of_private_notes ... ok horae-tests-0.1.0> test manager_only_edit_is_dirty_and_cancel_requires_confirmation ... ok horae-tests-0.1.0> test canonical_save_ordinary_rejections_keep_the_current_form ... ok horae-tests-0.1.0> test manager_checkbox_save_and_uncertain_retry_preserve_complete_original_intent ... ok horae-tests-0.1.0> test protected_editor_keeps_monetary_budget_and_task_rates_by_row_identity ... ok horae-tests-0.1.0> test protected_editor_hour_budget_edit_does_not_require_a_billable_write ... ok horae-tests-0.1.0> test protected_editor_withholds_finance_controls_but_keeps_hour_budgets ... ok horae-tests-0.1.0> test recovered_client_outside_the_catalog_page_keeps_its_currency_and_name ... ok horae-tests-0.1.0> test recovered_tags_use_the_shared_inline_chip_field_without_saving ... ok horae-tests-0.1.0> test shared_input_without_options_keeps_its_original_class_and_external_label ... ok horae-tests-0.1.0> test recovered_tasks_and_people_outside_the_catalog_page_keep_their_identity ... ok horae-tests-0.1.0> test protected_editor_cost_zero_and_reset_stay_explicit_without_billable_or_notes_writes ... ok horae-tests-0.1.0> test textarea_and_selector_error_links_are_opt_in_and_preserve_controls ... ok horae-tests-0.1.0> test protected_editor_untouched_editable_task_blank_is_not_a_reset ... ok horae-tests-0.1.0> test removed_teammates_manager_control_remains_available_until_save ... ok horae-tests-0.1.0> test tasks_and_team_restore_scoped_settings_without_exposing_costs_to_managers ... ok horae-tests-0.1.0> test time_and_materials_restores_project_rate_and_budget_without_enabling_unconfigured_email ... ok horae-tests-0.1.0> test protected_editor_preserves_unwritable_fields_on_save_and_retry ... ok horae-tests-0.1.0> test retained_manager_outside_the_team_can_be_removed_without_membership_changes ... ok horae-tests-0.1.0> test task_rate_placeholders_use_source_currency_not_workspace_currency ... ok horae-tests-0.1.0> test canonical_save_access_loss_discards_pending_intent_until_explicit_reload ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 75 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.99s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/own_permissions_ui.rs (target/debug/deps/own_permissions_ui-d9ee7fdb08acfec5) horae-tests-0.1.0> horae-tests-0.1.0> running 11 tests horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_loading_hides_previous_snapshot ... ok horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_distinguishes_authentication_forbidden_and_failure ... ok horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_empty_grants_are_not_normalized ... ok horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_does_not_disclose_internal_fields_or_offer_edits ... ok horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_admin_identity_is_explicit_not_derived_from_grants ... ok horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_grants_do_not_promise_unavailable_features ... ok horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_preserves_exact_grants_without_profile_inference ... ok horae-tests-0.1.0> test permission_description::tests::permission_descriptions_cover_each_grant_distinctly ... ok horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_legacy_is_not_empty_or_a_profile ... ok horae-tests-0.1.0> test own_permissions::tests::own_permissions_view_unsupported_catalog_hides_uninterpretable_grants ... ok horae-tests-0.1.0> test refresh_uses_a_fresh_read_hides_stale_grants_and_recovers_from_errors ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/permission_audit_ui.rs (target/debug/deps/permission_audit_ui-79d8ca877a58a2e7) horae-tests-0.1.0> horae-tests-0.1.0> running 5 tests horae-tests-0.1.0> test permission_description::tests::permission_descriptions_cover_each_grant_distinctly ... ok horae-tests-0.1.0> test different_requester_response_is_never_rendered_or_adopted ... ok horae-tests-0.1.0> test initial_empty_and_failed_responses_are_distinct_and_sanitized ... ok horae-tests-0.1.0> test history_details_preserve_recorded_grants_sources_detachment_and_operator_identity ... ok horae-tests-0.1.0> test pages_bind_requester_replace_history_and_hide_stale_content_during_refresh ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/permission_editor_ui.rs (target/debug/deps/permission_editor_ui-4c01e01f28057761) horae-tests-0.1.0> horae-tests-0.1.0> running 55 tests horae-tests-0.1.0> test deleting_a_template_requires_its_current_affected_people_preview ... ok horae-tests-0.1.0> test another_request_cannot_be_overwritten_or_cleared_by_the_live_editor ... ok horae-tests-0.1.0> test creating_a_template_captures_final_grants_and_retries_without_saving_the_person ... ok horae-tests-0.1.0> test cancelling_template_creation_keeps_the_unsaved_person_draft ... ok horae-tests-0.1.0> test acknowledged_person_cleanup_retries_without_resubmitting ... ok horae-tests-0.1.0> test directory_paging_filtering_and_errors_hide_stale_rows ... ok horae-tests-0.1.0> test acknowledged_cleanup_does_not_erase_a_replacement_record ... ok horae-tests-0.1.0> test first_editor_response_cannot_replace_the_directory_requester ... ok horae-tests-0.1.0> test clean_dismissal_needs_no_confirmation ... ok horae-tests-0.1.0> test cancelling_a_loaded_deletion_preview_preserves_person_edits_without_mutation ... ok horae-tests-0.1.0> test directory_keeps_requester_on_paging_filters_refresh_and_initial_editor_load ... ok horae-tests-0.1.0> test empty_profile_deletion_requires_confirmation_and_keeps_exact_retry ... ok horae-tests-0.1.0> test loading_and_reloading_protect_navigation_until_success_or_error ... ok horae-tests-0.1.0> test initial_editor_selection_pins_requester_across_reload ... ok horae-tests-0.1.0> test permission_description::tests::permission_descriptions_cover_each_grant_distinctly ... ok horae-tests-0.1.0> test permission_editor::draft::tests::all_grants_do_not_make_an_individual_an_administrator ... ok horae-tests-0.1.0> test permission_editor::draft::tests::dirty_state_includes_template_revision_and_independent_identity ... ok horae-tests-0.1.0> test deletion_never_confirms_mismatched_or_denied_previews ... ok horae-tests-0.1.0> test permission_editor::draft::tests::editing_invalidates_preview_and_confirmation ... ok horae-tests-0.1.0> test permission_editor::draft::tests::dirty_state_tracks_reverted_grants_and_profile_provenance ... ok horae-tests-0.1.0> test permission_editor::draft::tests::keeping_project_access_is_explicit_and_requires_new_effects ... ok horae-tests-0.1.0> test permission_editor::draft::tests::joint_losses_need_confirmation_and_retry_preserves_exact_command ... ok horae-tests-0.1.0> test permission_editor::draft::tests::malformed_loaded_grants_are_not_normalized ... ok horae-tests-0.1.0> test permission_editor::draft::tests::load_keeps_exact_grants_and_explicit_edit_intent ... ok horae-tests-0.1.0> test permission_editor::draft::tests::member_floor_and_explicit_administrator_are_not_customizable ... ok horae-tests-0.1.0> test permission_editor::tests::known_rejections_require_recovery_and_hide_authentication_diagnostics ... ok horae-tests-0.1.0> test permission_editor::draft::tests::stale_or_mismatched_preview_cannot_be_confirmed ... ok horae-tests-0.1.0> test permission_editor::tests::review_explains_identity_loss_and_both_exact_management_sets ... ok horae-tests-0.1.0> test permission_editor::tests::unknown_save_failure_is_not_treated_as_a_definite_rejection ... ok horae-tests-0.1.0> test permission_editor::tests::no_op_preview_does_not_invent_permission_changes ... ok horae-tests-0.1.0> test pending_or_failed_session_check_never_exposes_permission_controls ... ok horae-tests-0.1.0> test invalid_or_misbound_storage_is_preserved_without_rendering_its_contents ... ok horae-tests-0.1.0> test permission_revocation_hides_the_form_without_reporting_success ... ok horae-tests-0.1.0> test navigation_tracks_reverted_edits_and_cancelled_template_inputs ... ok horae-tests-0.1.0> test rejected_template_reload_fetches_and_explicitly_discards_the_person_draft ... ok horae-tests-0.1.0> test real_controls_review_once_and_retry_the_identical_uncertain_save ... ok horae-tests-0.1.0> test keeping_projects_requires_new_review_and_confirmation_of_remaining_people ... ok horae-tests-0.1.0> test storage_load_failure_blocks_new_edits_and_retry_restores_them ... ok horae-tests-0.1.0> test subject_picker_empty_and_failed_pages_offer_read_only_recovery ... ok horae-tests-0.1.0> test subject_picker_pages_hide_stale_choices_and_keep_duplicate_names_by_id ... ok horae-tests-0.1.0> test missing_storage_acknowledgement_never_sends_a_command_and_reuses_its_record ... ok horae-tests-0.1.0> test reload_cannot_adopt_another_requester_after_a_rejected_subject_load ... ok horae-tests-0.1.0> test remount_recovers_the_same_person_command_without_automatic_submission_or_target_load ... ok horae-tests-0.1.0> test dirty_close_requires_confirmation_and_failure_preserves_the_draft ... ok horae-tests-0.1.0> test subject_picker_cannot_switch_during_preview_or_uncertain_save ... ok horae-tests-0.1.0> test subject_picker_rejects_a_changed_requester_on_next_page_and_selected_load ... ok horae-tests-0.1.0> test template_creation_is_disabled_for_administrator_identity_or_fifty_profiles ... ok horae-tests-0.1.0> test template_editor_cleanup_failure_never_reissues_the_acknowledged_command ... ok horae-tests-0.1.0> test template_save_revocation_hides_the_selection_and_does_not_report_success ... ok horae-tests-0.1.0> test switching_accounts_or_workspaces_does_not_load_or_erase_the_original_request ... ok horae-tests-0.1.0> test template_recovery_survives_remount_and_cleanup_failure_without_saving_a_person ... ok horae-tests-0.1.0> test subject_picker_preserves_dirty_draft_until_confirmed_and_reloads_selected_person ... ok horae-tests-0.1.0> test template_creation_reports_duplicate_limit_and_validation_errors_without_success ... ok horae-tests-0.1.0> test uncertain_recovery_keeps_retry_available_without_discard_or_permanent_aria_busy ... ok horae-tests-0.1.0> test rejected_recovery_keeps_the_record_until_explicit_checked_discard ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 55 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.79s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/scoped_reports_ui.rs (target/debug/deps/scoped_reports_ui-d2103d147f92a867) horae-tests-0.1.0> horae-tests-0.1.0> running 20 tests horae-tests-0.1.0> test denied_or_failed_access_never_falls_back_to_legacy ... ok horae-tests-0.1.0> test a_mismatched_page_identity_never_displays_results_or_downloads ... ok horae-tests-0.1.0> test date_changes_reset_paging_hide_stale_results_and_do_not_fetch_invalid_ranges ... ok horae-tests-0.1.0> test legacy_catalogs_wait_for_explicit_authenticated_legacy_access ... ok horae-tests-0.1.0> test canonical_pages_use_current_identity_and_full_period_totals_without_legacy_reads ... ok horae-tests-0.1.0> test grouped_tabs_reauthorize_and_hour_drilldown_binds_detail_and_download_filters ... ok horae-tests-0.1.0> test active_project_filter_resets_detail_paging_and_binds_grouped_downloads ... ok horae-tests-0.1.0> test grouped_navigation_hides_stale_rows_and_rejects_changed_identity ... ok horae-tests-0.1.0> test grouped_period_changes_preserve_dimension_reset_cursor_and_replace_ready_data ... ok horae-tests-0.1.0> test reports::tests::mixed_currencies_are_not_added_even_when_the_numbers_would_overflow ... ok horae-tests-0.1.0> test reports::tests::monetary_total_overflow_is_visible_instead_of_panicking ... ok horae-tests-0.1.0> test reports::tests::cost_total_uses_organization_currency_across_billing_currencies ... ok horae-tests-0.1.0> test reports::tests::single_currency_totals_are_formatted_and_empty_reports_have_no_amount ... ok horae-tests-0.1.0> test reports::tests::redacted_costs_do_not_become_zero_or_partial_totals ... ok horae-tests-0.1.0> test unresolved_access_mounts_no_identity_catalog_or_report_resources ... ok horae-tests-0.1.0> test project_task_expansion_keeps_every_filter_in_detailed_requests_and_downloads ... ok horae-tests-0.1.0> test billability_resets_both_pagers_and_binds_drilldown_and_downloads ... ok horae-tests-0.1.0> test refresh_keeps_requester_and_policy_across_errors_and_child_remounts ... ok horae-tests-0.1.0> test individual_reports_use_the_documented_tabs_and_bind_grouped_downloads ... ok horae-tests-0.1.0> test nested_breakdowns_bind_all_contexts_and_discard_late_or_mismatched_pages ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.35s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/task_catalog_ui.rs (target/debug/deps/task_catalog_ui-375292257c9d32df) horae-tests-0.1.0> horae-tests-0.1.0> running 10 tests horae-tests-0.1.0> test pending_denied_and_read_only_catalogs_do_not_offer_mutations_or_hidden_rates ... ok horae-tests-0.1.0> test refresh_binds_requester_discards_editor_and_rejects_account_switch ... ok horae-tests-0.1.0> test task::tests::rate_transport_distinguishes_preserve_clear_and_zero ... ok horae-tests-0.1.0> test name_edit_preserves_rates_and_keeps_input_on_validation_failure ... ok horae-tests-0.1.0> test refresh_discards_new_form_and_rejects_another_accounts_catalog ... ok horae-tests-0.1.0> test task::tests::rate_transport_rejects_ambiguous_or_imprecise_intent ... ok horae-tests-0.1.0> test archive_requires_confirmation_uses_loaded_identity_and_invalidates_denied_editor ... ok horae-tests-0.1.0> test financial_editor_sends_explicit_zero_in_current_currency_and_explicit_clear ... ok horae-tests-0.1.0> test creation_validates_exact_rate_blocks_duplicate_submit_and_discards_revoked_form ... ok horae-tests-0.1.0> test creation_without_rates_keeps_validation_input_and_refreshes_after_success ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/timer_widget.rs (target/debug/deps/timer_widget-51c5dadefbea0a89) horae-tests-0.1.0> horae-tests-0.1.0> running 1 test horae-tests-0.1.0> test timer_names_reuse_lookups_and_follow_resource_changes ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s horae-tests-0.1.0> horae-tests-0.1.0> Running tests/trigger_utilities.rs (target/debug/deps/trigger_utilities-9a6f864b3bd25aee) horae-tests-0.1.0> horae-tests-0.1.0> running 8 tests horae-tests-0.1.0> test combobox_composes_trigger_utilities ... ok horae-tests-0.1.0> test disabled_checked_checkbox_is_natively_disabled ... ok horae-tests-0.1.0> test combobox_keeps_compact_defaults ... ok horae-tests-0.1.0> test checkbox_keeps_labelled_unchecked_defaults ... ok horae-tests-0.1.0> test menu_composes_trigger_utilities ... ok horae-tests-0.1.0> test compact_mixed_checkbox_keeps_an_accessible_name ... ok horae-tests-0.1.0> test menu_keeps_compact_defaults ... ok horae-tests-0.1.0> test menu_can_disable_its_native_trigger ... ok horae-tests-0.1.0> horae-tests-0.1.0> test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s horae-tests-0.1.0> horae-tests-0.1.0> waiting for server to shut down.... done horae-tests-0.1.0> server stopped horae-tests-0.1.0> buildPhase completed in 20 minutes 13 seconds horae-tests-0.1.0> Running phase: installPhase upload niks3: ok