horae-tests-0.1.0
checks.x86_64-linux.tests
· build #232
· raw
unpackPhase
1unpacking source archive /nix/store/rnfs9lr04475n8zmz8xxbb0bmf7rqk0k-source2source root is sourcepatchPhase
3Executing configureCargoCommonVars4decompressing cargo artifacts from /nix/store/p0fga5r55aw5iwdy8h0dpr32lhcczl5i-horae-checks-deps-0.1.0/target.tar.zst to target5patchPhase completed in 1 minutes 15 secondsconfigurePhase
6will append /build/source/.cargo-home/config.toml with contents of /nix/store/i0bj632any4bjpvnl84zc2h7cq8zn0mz-vendor-cargo-deps/config.toml7default configurePhase, nothing to dobuildPhase
8+++ command cargo nextest run -p horae-core9 Compiling proc-macro2 v1.0.10610 Compiling serde_core v1.0.22811 Compiling serde v1.0.22812 Compiling num-traits v0.2.1913 Compiling quote v1.0.4614 Compiling syn v2.0.11815 Compiling uuid v1.23.416 Compiling serde_derive v1.0.22817 Compiling thiserror-impl v2.0.1818 Compiling thiserror v2.0.1819 Compiling chrono v0.4.4520 Compiling horae-core v0.1.0 (/build/source/crates/core)21 Finished `test` profile [unoptimized + debuginfo] target(s) in 27.32s22 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 23 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding24 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget25------------26 Nextest run ID 811712c6-737f-4ed2-a603-acb998178d1f with nextest profile: default27 Starting 189 tests across 1 binary28 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 29 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding30 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget31 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 32 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding33 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget34 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 35 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding36 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget37 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 38 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding39 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget40 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 41 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding42 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget43 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 44 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding45 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget46 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 47 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding48 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget49 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 50 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding51 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget52 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 53 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding54 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget55 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 56 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding57 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget58 Running [ 00:00:00] 0/189: 3 running, 0 passed, 0 skipped 59 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding60 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget61 Running [ 00:00:00] 0/189: 48 running, 0 passed, 0 skipped 62 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding63 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget64 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band65 [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values66 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows67 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached68 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once69 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets70 Running [ 00:00:00] 0/189: 48 running, 0 passed, 0 skipped 71 [ 00:00:00] horae-core ed_alert_threshold_is_exact_without_rounding72 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget73 [ 00:00:00] horae-core ::a_single_jump_announces_every_crossed_band74 [ 00:00:00] horae-core jects_invalid_inputs_and_widens_large_values75 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows76 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached77 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once78 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets79 Running [ 00:00:00] > 21/189: 48 running, 21 passed, 0 skipped 80 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget81 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows82 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached83 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once84 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets85 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget86 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow87 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts88 PASS [ 0.047s] horae-core duration::tests::parse_round_trips_each_minute_in_a_day89 PASS [ 0.082s] horae-core budget::tests::configured_alert_threshold_is_exact_without_rounding90 PASS [ 0.077s] horae-core importers::harvest::keys::tests::normalize_matches_sql_harvest_norm_contract91 PASS [ 0.074s] horae-core importers::harvest::convert::tests::hours_round_trip_against_exporter_transform92 PASS [ 0.070s] horae-core importers::harvest::convert::tests::money_rounds_third_decimal_half_up93 PASS [ 0.071s] horae-core importers::harvest::convert::tests::conversion_rejects_unrepresentable_scaled_values_without_panicking94 PASS [ 0.074s] horae-core duration::tests::parse_rejects_colon_overflow_without_panicking95 PASS [ 0.070s] horae-core importers::harvest::convert::tests::high_precision_fraction_straddles_the_half_minute_exactly96 PASS [ 0.071s] horae-core importers::harvest::keys::tests::normalize_trims_and_case_folds97 PASS [ 0.073s] horae-core importers::harvest::convert::tests::hours_common_values_are_exact98 PASS [ 0.071s] horae-core importers::harvest::keys::tests::client_key_equal_across_case_and_whitespace99 PASS [ 0.072s] horae-core duration::tests::parse_rejects_negative_non_finite_and_malformed_values100 PASS [ 0.052s] horae-core importers::harvest::convert::tests::conversion_handles_high_precision_without_intermediate_overflow101 PASS [ 0.050s] horae-core client::tests::optional_text_normalizes_only_blank_fields102 PASS [ 0.050s] horae-core duration::tests::format_round_trip103 PASS [ 0.050s] horae-core importers::harvest::convert::tests::conversion_reports_precision_and_numerator_limits104 PASS [ 0.046s] horae-core importers::harvest::convert::tests::conversion_preserves_the_i64_boundary_and_rejects_rounding_past_it105 PASS [ 0.071s] horae-core importers::harvest::convert::tests::leading_and_trailing_forms_parse106 PASS [ 0.073s] horae-core duration::tests::parse_preserves_u32_boundary_without_saturating107 PASS [ 0.016s] horae-core budget::tests::a_single_jump_announces_every_crossed_band108 PASS [ 0.016s] horae-core budget::tests::configured_alert_rejects_invalid_inputs_and_widens_large_values109 Running [ 00:00:00] > 21/189: 48 running, 21 passed, 0 skipped 110 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget111 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows112 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached113 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once114 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets115 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget116 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow117 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts118 Running [ 00:00:00] > 21/189: 48 running, 21 passed, 0 skipped 119 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget120 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows121 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached122 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once123 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets124 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget125 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow126 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts127 Running [ 00:00:00] > 21/189: 48 running, 21 passed, 0 skipped 128 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget129 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows130 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached131 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once132 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets133 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget134 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow135 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts136 Running [ 00:00:00] > 22/189: 48 running, 21 passed, 0 skipped 137 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget138 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows139 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached140 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once141 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets142 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget143 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow144 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts145 Running [ 00:00:00] > 22/189: 48 running, 21 passed, 0 skipped 146 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget147 [ 00:00:00] horae-core percentage_rounds_clamps_and_never_overflows148 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached149 [ 00:00:00] horae-core dget::tests::each_crossing_is_announced_once150 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets151 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget152 [ 00:00:00] horae-core budget::tests::large_values_do_not_overflow153 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts154 PASS [ 0.042s] horae-core duration::tests::parse_decimal_rounds_half_minutes_exactly155 PASS [ 0.022s] horae-core budget::tests::display_percentage_rounds_clamps_and_never_overflows156 PASS [ 0.067s] horae-core budget::tests::each_crossing_is_announced_once157 PASS [ 0.066s] horae-core budget::tests::large_values_do_not_overflow158 PASS [ 0.067s] horae-core client::tests::profile_accepts_supported_currencies_and_unicode_character_limit159 PASS [ 0.067s] horae-core duration::tests::format_hhmm_pads_minutes160 Running [ 00:00:00] => 27/189: 48 running, 27 passed, 0 skipped 161 [ 00:00:00] horae-core ert_accepts_zero_percent_but_not_zero_budget162 [ 00:00:00] horae-core ::tests::current_band_is_the_highest_reached163 [ 00:00:00] horae-core elow_a_band_does_not_fire_but_current_resets164 [ 00:00:00] horae-core t::tests::no_band_for_zero_or_missing_budget165 [ 00:00:00] horae-core eserves_absence_zero_and_exact_large_amounts166 [ 00:00:00] horae-core get_fires_even_without_a_configured_100_band167 [ 00:00:00] horae-core ve_fractional_cent_overflow_and_invalid_text168 [ 00:00:00] horae-core rofile_rejects_blank_overlong_and_null_names169 Running [ 00:00:00] ==> 52/189: 48 running, 52 passed, 0 skipped 170 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero171 [ 00:00:00] horae-core duration::tests::parse_colon172 [ 00:00:00] horae-core sts::occurrence_counter_keys_are_independent173 [ 00:00:00] horae-core keys::tests::task_key_shared_across_projects174 [ 00:00:00] horae-core s::project_key_falls_back_to_client_and_name175 [ 00:00:00] horae-core tests::project_key_prefers_code_when_present176 [ 00:00:00] horae-core quires_binding_and_no_imports_or_active_work177 [ 00:00:00] horae-core _when_an_errored_count_has_no_reported_error178 PASS [ 0.260s] horae-core invoice::tests::invoice_adjustments_apply_discount_before_non_compounding_taxes179 PASS [ 0.323s] horae-core importers::harvest::keys::tests::composite_components_do_not_collide180 PASS [ 0.280s] horae-core client::tests::profile_rejects_unsupported_currency_and_null_billing_fields181 PASS [ 0.323s] horae-core importers::harvest::convert::tests::negative_is_rejected182 PASS [ 0.335s] horae-core importers::harvest::convert::tests::garbage_is_rejected183 PASS [ 0.336s] horae-core importers::harvest::convert::tests::round_half_up_at_the_boundary184 PASS [ 0.330s] horae-core duration::tests::parse_rejects_excessive_decimal_precision_and_numerator185 PASS [ 0.324s] horae-core importers::harvest::convert::tests::money_common_values_are_exact186 PASS [ 0.258s] horae-core importers::harvest::keys::tests::time_entry_key_distinguishes_and_matches187 PASS [ 0.265s] horae-core budget::tests::current_band_is_the_highest_reached188 PASS [ 0.305s] horae-core duration::tests::minutes_between_is_exact_no_minimum189 PASS [ 0.280s] horae-core budget::tests::no_band_for_zero_or_missing_budget190 PASS [ 0.261s] horae-core invoice::tests::discount_allocation_handles_empty_zero_and_full_discounts191 PASS [ 0.305s] horae-core budget::tests::drop_below_a_band_does_not_fire_but_current_resets192 PASS [ 0.305s] horae-core budget::tests::over_budget_fires_even_without_a_configured_100_band193 PASS [ 0.281s] horae-core duration::tests::parse_decimal194 PASS [ 0.306s] horae-core client::tests::default_rate_preserves_absence_zero_and_exact_large_amounts195 PASS [ 0.311s] horae-core client::tests::default_rate_rejects_negative_fractional_cent_overflow_and_invalid_text196 PASS [ 0.312s] horae-core budget::tests::configured_alert_accepts_zero_percent_but_not_zero_budget197 PASS [ 0.330s] horae-core importers::harvest::convert::tests::money_round_trip_against_exporter_transform198 PASS [ 0.336s] horae-core importers::harvest::convert::tests::conversion_matches_exact_scaled_rationals199 PASS [ 0.261s] horae-core importers::harvest::types::tests::archived_errors_and_new_inline_errors_reconcile_across_batches200 PASS [ 0.266s] horae-core client::tests::profile_rejects_blank_overlong_and_null_names201 PASS [ 0.260s] horae-core invoice::tests::discount_allocation_uses_largest_remainder_then_stable_source_order202 PASS [ 0.260s] horae-core importers::harvest::keys::tests::occurrence_counter_numbers_repeats_from_zero203 Running [ 00:00:00] ==> 52/189: 48 running, 52 passed, 0 skipped 204 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero205 [ 00:00:00] horae-core duration::tests::parse_colon206 [ 00:00:00] horae-core sts::occurrence_counter_keys_are_independent207 [ 00:00:00] horae-core keys::tests::task_key_shared_across_projects208 [ 00:00:00] horae-core s::project_key_falls_back_to_client_and_name209 [ 00:00:00] horae-core tests::project_key_prefers_code_when_present210 [ 00:00:00] horae-core quires_binding_and_no_imports_or_active_work211 [ 00:00:00] horae-core _when_an_errored_count_has_no_reported_error212 Running [ 00:00:00] ==> 64/189: 48 running, 52 passed, 0 skipped 213 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero214 [ 00:00:00] horae-core duration::tests::parse_colon215 [ 00:00:00] horae-core sts::occurrence_counter_keys_are_independent216 [ 00:00:00] horae-core keys::tests::task_key_shared_across_projects217 [ 00:00:00] horae-core s::project_key_falls_back_to_client_and_name218 [ 00:00:00] horae-core tests::project_key_prefers_code_when_present219 [ 00:00:00] horae-core quires_binding_and_no_imports_or_active_work220 [ 00:00:00] horae-core _when_an_errored_count_has_no_reported_error221 PASS [ 0.271s] horae-core importers::harvest::types::tests::does_not_reconcile_when_an_errored_count_has_no_reported_error222 PASS [ 0.274s] horae-core importers::harvest::types::tests::import_modes_display_their_wire_names223 PASS [ 0.273s] horae-core invoice::tests::discount_allocation_rejects_negative_lines_and_subtotal_overflow224 PASS [ 0.275s] horae-core importers::harvest::types::account_switch_tests::account_switch_requires_binding_and_no_imports_or_active_work225 PASS [ 0.263s] horae-core invoice::tests::line_amount_90_minutes226 PASS [ 0.264s] horae-core invoice::tests::invoice_adjustments_round_components_half_up227 PASS [ 0.308s] horae-core duration::tests::parse_colon228 PASS [ 0.033s] horae-core invoice::tests::line_amount_rounds_half_cents_up_not_to_even229 PASS [ 0.296s] horae-core importers::harvest::keys::tests::project_key_prefers_code_when_present230 PASS [ 0.047s] horae-core invoice::tests::line_amount_half_hour231 PASS [ 0.045s] horae-core invoice::tests::line_amount_accepts_large_representable_amounts232 PASS [ 0.045s] horae-core invoice::tests::line_amount_exact_hour233 Running [ 00:00:00] ==> 64/189: 48 running, 64 passed, 0 skipped 234 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero235 [ 00:00:00] horae-core sts::occurrence_counter_keys_are_independent236 [ 00:00:00] horae-core keys::tests::task_key_shared_across_projects237 [ 00:00:00] horae-core s::project_key_falls_back_to_client_and_name238 [ 00:00:00] horae-core s_when_errored_counts_match_collected_errors239 [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line240 [ 00:00:00] horae-core tion_supports_maximum_representable_subtotal241 [ 00:00:00] horae-core d_fee_contribution_leaves_discount_available242 Running [ 00:00:00] ===> 74/189: 48 running, 74 passed, 0 skipped 243 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero244 [ 00:00:00] horae-core sts::occurrence_counter_keys_are_independent245 [ 00:00:00] horae-core s::project_key_falls_back_to_client_and_name246 [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line247 [ 00:00:00] horae-core d_fee_contribution_leaves_discount_available248 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes249 [ 00:00:00] horae-core ed_rate_mode_ignores_unselected_rate_sources250 [ 00:00:00] horae-core invoice::tests::line_amount_zero_rate251 PASS [ 0.054s] horae-core permissions::catalog::stored_tests::stored_order_does_not_change_the_selected_set252 PASS [ 0.080s] horae-core permissions::approvals::tests::no_expense_read_is_needed_when_there_are_no_expenses253 PASS [ 0.079s] horae-core permissions::approvals::tests::all_records_need_approval_scope_even_when_both_domains_are_readable254 PASS [ 0.080s] horae-core permissions::catalog::stored_tests::rejects_duplicate_grants_instead_of_silently_deduplicating255 PASS [ 0.085s] horae-core invoice::tests::line_amount_odd_minutes256 PASS [ 0.347s] horae-core importers::harvest::types::tests::reconciles_when_errored_counts_match_collected_errors257 PASS [ 0.087s] horae-core invoice::tests::line_amount_rejects_unrepresentable_results258 PASS [ 0.352s] horae-core invoice::tests::discount_allocation_supports_maximum_representable_subtotal259 PASS [ 0.361s] horae-core invoice::tests::invoice_adjustments_reject_negative_subtotal_and_overflow260 PASS [ 0.360s] horae-core importers::harvest::keys::tests::task_key_shared_across_projects261 Running [ 00:00:00] ===> 74/189: 48 running, 74 passed, 0 skipped 262 [ 00:00:00] horae-core ation::tests::format_clamps_negative_to_zero263 [ 00:00:00] horae-core sts::occurrence_counter_keys_are_independent264 [ 00:00:00] horae-core s::project_key_falls_back_to_client_and_name265 [ 00:00:00] horae-core conserves_header_amount_and_bounds_each_line266 [ 00:00:00] horae-core d_fee_contribution_leaves_discount_available267 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes268 [ 00:00:00] horae-core ed_rate_mode_ignores_unselected_rate_sources269 [ 00:00:00] horae-core invoice::tests::line_amount_zero_rate270 Running [ 00:00:00] ===> 100/189: 48 running, 100 passed, 0 skipped 271 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes272 [ 00:00:00] horae-core ed_rate_mode_ignores_unselected_rate_sources273 [ 00:00:00] horae-core invoice::tests::line_amount_zero_rate274 [ 00:00:00] horae-core keeps_zero_and_explicit_missing_project_rate275 [ 00:00:00] horae-core format_cents_plain_keeps_sign_below_one_unit276 [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent277 [ 00:00:00] horae-core cope_and_approval_scope_form_an_intersection278 [ 00:00:00] horae-core ions_and_input_duplicates_do_not_infer_scope279 PASS [ 0.027s] horae-core permissions::catalog::tests::empty_selection_includes_member_floor280 PASS [ 0.025s] horae-core permissions::catalog::tests::finance_profiles_cannot_edit_rates_and_project_manager_has_no_financial_grants281 PASS [ 0.028s] horae-core permissions::catalog::tests::every_profile_includes_floor_and_is_closed_under_dependencies282 PASS [ 0.028s] horae-core permissions::catalog::tests::every_declared_dependency_is_added_and_removing_it_removes_the_dependent283 PASS [ 0.031s] horae-core permissions::catalog::tests::dependency_graph_matches_the_reference_edges_without_extra_cross_resource_grants284 PASS [ 0.028s] horae-core permissions::catalog::tests::floor_cannot_be_removed_or_partially_modified285 PASS [ 0.087s] horae-core permissions::catalog::stored_tests::rejects_empty_saved_selection_instead_of_adding_member_floor286 PASS [ 0.406s] horae-core duration::tests::format_clamps_negative_to_zero287 PASS [ 0.026s] horae-core permissions::catalog::tests::known_permission_name_decodes_without_legacy_role_conversion288 PASS [ 0.135s] horae-core permissions::approvals::tests::removing_the_last_matching_relationship_revokes_both_domains289 PASS [ 0.397s] horae-core invoice::tests::discounted_fee_contribution_leaves_discount_available290 PASS [ 0.397s] horae-core invoice::tests::discount_allocation_conserves_header_amount_and_bounds_each_line291 PASS [ 0.396s] horae-core importers::harvest::keys::tests::project_key_falls_back_to_client_and_name292 PASS [ 0.396s] horae-core importers::harvest::keys::tests::occurrence_counter_keys_are_independent293 PASS [ 0.126s] horae-core permissions::approvals::tests::empty_record_sets_do_not_remove_identity_or_explicit_grant_checks294 PASS [ 0.127s] horae-core permissions::approvals::tests::catalog_grants_cannot_substitute_for_approval295 PASS [ 0.127s] horae-core permissions::approvals::tests::reevaluation_does_not_reuse_prior_read_or_approval_success296 PASS [ 0.129s] horae-core permissions::approvals::tests::only_expense_reads_or_their_write_prerequisites_make_others_expenses_visible297 PASS [ 0.133s] horae-core money::tests::parse_cents_is_exact_where_a_float_would_drift298 PASS [ 0.133s] horae-core money::tests::parse_cents_reads_whole_and_fractional_amounts299 PASS [ 0.134s] horae-core money::tests::format_cents_groups_thousands_and_keeps_sign300 PASS [ 0.134s] horae-core money::tests::addition_retains_currency_checks_and_representable_boundaries301 PASS [ 0.134s] horae-core money::tests::parse_cents_tolerates_grouping_spaces_and_signs302 PASS [ 0.123s] horae-core invoice::tests::resolve_rate_cascade303 Running [ 00:00:00] ===> 100/189: 48 running, 100 passed, 0 skipped 304 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes305 [ 00:00:00] horae-core ed_rate_mode_ignores_unselected_rate_sources306 [ 00:00:00] horae-core invoice::tests::line_amount_zero_rate307 [ 00:00:00] horae-core keeps_zero_and_explicit_missing_project_rate308 [ 00:00:00] horae-core format_cents_plain_keeps_sign_below_one_unit309 [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent310 [ 00:00:00] horae-core cope_and_approval_scope_form_an_intersection311 [ 00:00:00] horae-core ions_and_input_duplicates_do_not_infer_scope312 PASS [ 0.137s] horae-core permissions::approvals::tests::one_unreadable_expense_denies_the_whole_supplied_set313 PASS [ 0.146s] horae-core money::tests::addition_rejects_overflow_in_both_directions314 Running [ 00:00:00] ===> 100/189: 48 running, 100 passed, 0 skipped 315 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes316 [ 00:00:00] horae-core ed_rate_mode_ignores_unselected_rate_sources317 [ 00:00:00] horae-core invoice::tests::line_amount_zero_rate318 [ 00:00:00] horae-core keeps_zero_and_explicit_missing_project_rate319 [ 00:00:00] horae-core format_cents_plain_keeps_sign_below_one_unit320 [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent321 [ 00:00:00] horae-core cope_and_approval_scope_form_an_intersection322 [ 00:00:00] horae-core ions_and_input_duplicates_do_not_infer_scope323 Running [ 00:00:00] =====> 138/189: 48 running, 100 passed, 0 skipped 324 [ 00:00:00] horae-core invoice::tests::line_amount_zero_minutes325 [ 00:00:00] horae-core ed_rate_mode_ignores_unselected_rate_sources326 [ 00:00:00] horae-core invoice::tests::line_amount_zero_rate327 [ 00:00:00] horae-core keeps_zero_and_explicit_missing_project_rate328 [ 00:00:00] horae-core format_cents_plain_keeps_sign_below_one_unit329 [ 00:00:00] horae-core parse_cents_rejects_what_it_cannot_represent330 [ 00:00:00] horae-core cope_and_approval_scope_form_an_intersection331 [ 00:00:00] horae-core ions_and_input_duplicates_do_not_infer_scope332 PASS [ 0.020s] horae-core permissions::catalog::tests::removing_absent_permission_is_an_idempotent_no_op333 PASS [ 0.147s] horae-core invoice::tests::line_amount_zero_minutes334 PASS [ 0.149s] horae-core invoice::tests::line_amount_zero_rate335 PASS [ 0.147s] horae-core invoice::tests::selected_rate_keeps_zero_and_explicit_missing_project_rate336 PASS [ 0.149s] horae-core permissions::approvals::tests::expense_read_scope_and_approval_scope_form_an_intersection337 PASS [ 0.023s] horae-core permissions::catalog::tests::report_and_withdrawal_grants_do_not_add_unrelated_authority338 PASS [ 0.027s] horae-core permissions::catalog::tests::removing_invoice_draft_write_keeps_read_but_removes_managed_and_all_write339 PASS [ 0.161s] horae-core money::tests::format_cents_plain_keeps_sign_below_one_unit340 PASS [ 0.157s] horae-core money::tests::parse_cents_rejects_what_it_cannot_represent341 PASS [ 0.168s] horae-core permissions::approvals::tests::inactive_and_foreign_provenance_deny_even_with_all_grants342 PASS [ 0.032s] horae-core permissions::rates::tests::cost_and_billable_grants_are_independent_and_read_does_not_allow_write343 PASS [ 0.033s] horae-core permissions::person_management::tests::self_link_rejects_the_proposal_in_every_position_without_filtering_it344 PASS [ 0.035s] horae-core permissions::person_management::tests::other_people_and_empty_removal_need_neither_grants_nor_a_separate_actor345 PASS [ 0.168s] horae-core invoice::tests::selected_rate_mode_ignores_unselected_rate_sources346 PASS [ 0.033s] horae-core permissions::catalog::tests::unknown_permission_names_are_rejected347 PASS [ 0.031s] horae-core permissions::rates::tests::identity_and_tenant_mismatches_deny_even_all_financial_grants348 PASS [ 0.032s] horae-core permissions::rates::tests::all_six_defaults_have_the_approved_financial_access349 PASS [ 0.035s] horae-core permissions::catalog::tests::template_names_trim_without_changing_display_or_internal_spaces350 PASS [ 0.040s] horae-core permissions::person_management::tests::each_catalog_grant_has_the_specified_compatibility_without_changing_grants351 PASS [ 0.031s] horae-core permissions::rates::tests::read_only_cost_grant_cannot_authorize_an_explicit_rate_edit352 PASS [ 0.035s] horae-core permissions::person_management::tests::eligibility_tracks_last_compatible_grant_loss_and_restoration353 PASS [ 0.146s] horae-core permissions::catalog::stored_tests::rejects_each_missing_floor_grant354 PASS [ 0.031s] horae-core permissions::rates::tests::grant_removal_denies_without_mutating_the_remaining_selection355 PASS [ 0.031s] horae-core permissions::rates::tests::removing_read_prerequisites_denies_both_actions356 Running [ 00:00:00] =====> 138/189: 48 running, 138 passed, 0 skipped 357 [ 00:00:00] horae-core ions_and_input_duplicates_do_not_infer_scope358 [ 00:00:00] horae-core missing_prerequisite_without_repairing_input359 [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection360 [ 00:00:00] horae-core ion_covers_known_catalog_without_unknown_ids361 [ 00:00:00] horae-core sts::catalog_has_fifty_distinct_known_grants362 [ 00:00:00] horae-core d_scopes_but_not_write_or_expense_management363 [ 00:00:00] horae-core e_defaults_match_the_known_reference_catalog364 [ 00:00:00] horae-core :member_has_only_own_time_and_expense_access365 PASS [ 0.040s] horae-core permissions::person_management::tests::combined_unrelated_grants_do_not_create_person_management_eligibility366 PASS [ 0.046s] horae-core permissions::rates::tests::billable_actions_use_only_their_own_grant_and_owner_scope367 PASS [ 0.036s] horae-core permissions::rates::tests::unchanged_rate_edit_requires_no_financial_write_grant368 PASS [ 0.045s] horae-core permissions::rates::tests::billable_owner_never_uses_the_other_management_dimension369 PASS [ 0.057s] horae-core permissions::catalog::tests::removing_managed_time_read_also_removes_all_reads_writes_and_approvals370 PASS [ 0.165s] horae-core permissions::catalog::tests::adding_all_catalog_grants_produces_exactly_the_catalog371 PASS [ 0.170s] horae-core permissions::catalog::stored_tests::restores_custom_selection_without_reapplying_profile_defaults372 PASS [ 0.053s] horae-core permissions::rates::tests::explicit_rate_edits_require_write_even_for_zero_or_an_equal_value373 PASS [ 0.042s] horae-core permissions::tests::assignments_do_not_grant_scope_and_missing_assignments_do_not_match374 PASS [ 0.043s] horae-core permissions::rates::tests::unrelated_catalog_grants_never_authorize_ordinary_financial_fields375 PASS [ 0.170s] horae-core permissions::catalog::stored_tests::rejects_unsupported_versions_even_for_valid_grants376 PASS [ 0.042s] horae-core permissions::tests::assignment_matching_searches_all_members_and_is_insensitive_to_duplicates377 PASS [ 0.171s] horae-core permissions::catalog::stored_tests::restores_each_builtin_selection_without_changing_grants378 PASS [ 0.065s] horae-core permissions::catalog::tests::removing_one_financial_permission_preserves_unrelated_families379 Running [ 00:00:00] =====> 138/189: 48 running, 138 passed, 0 skipped 380 [ 00:00:00] horae-core ions_and_input_duplicates_do_not_infer_scope381 [ 00:00:00] horae-core missing_prerequisite_without_repairing_input382 [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection383 [ 00:00:00] horae-core ion_covers_known_catalog_without_unknown_ids384 [ 00:00:00] horae-core sts::catalog_has_fifty_distinct_known_grants385 [ 00:00:00] horae-core d_scopes_but_not_write_or_expense_management386 [ 00:00:00] horae-core e_defaults_match_the_known_reference_catalog387 [ 00:00:00] horae-core :member_has_only_own_time_and_expense_access388 Running [ 00:00:00] =====> 154/189: 35 running, 154 passed, 0 skipped 389 [ 00:00:00] horae-core missing_prerequisite_without_repairing_input390 [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection391 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free392 [ 00:00:00] horae-core _reject_legacy_rank_names_and_unknown_values393 [ 00:00:00] horae-core r_grant_keeps_the_remaining_selection_closed394 [ 00:00:00] horae-core ignment_removes_only_that_matching_dimension395 [ 00:00:00] horae-core rmissions::tests::scope_union_obeys_set_laws396 [ 00:00:00] horae-core cept_supported_currencies_and_optional_dates397 PASS [ 0.071s] horae-core permissions::person_management::tests::any_compatible_grant_suffices_in_every_pair398 PASS [ 0.111s] horae-core permissions::catalog::tests::member_has_only_own_time_and_expense_access399 PASS [ 0.023s] horae-core project::tests::fee_schedules_reject_missing_overlong_and_excessive_milestones400 PASS [ 0.210s] horae-core permissions::approvals::tests::missing_dimensions_and_input_duplicates_do_not_infer_scope401 PASS [ 0.066s] horae-core permissions::person_management::tests::own_tracking_floor_does_not_qualify402 PASS [ 0.159s] horae-core permissions::catalog::tests::catalog_has_fifty_distinct_known_grants403 PASS [ 0.038s] horae-core project::tests::monthly_fee_dates_follow_calendar_months404 PASS [ 0.135s] horae-core permissions::catalog::tests::direct_profile_defaults_match_the_known_reference_catalog405 PASS [ 0.061s] horae-core project::tests::basics_accept_same_day_but_reject_reversed_dates406 PASS [ 0.143s] horae-core permissions::catalog::tests::approve_all_includes_read_scopes_but_not_write_or_expense_management407 PASS [ 0.092s] horae-core permissions::catalog::tests::template_names_reject_empty_and_overlong_unicode_names408 PASS [ 0.183s] horae-core permissions::catalog::tests::administrator_selection_covers_known_catalog_without_unknown_ids409 PASS [ 0.077s] horae-core permissions::tests::inactive_or_foreign_context_is_denied_for_every_scope_combination410 PASS [ 0.025s] horae-core week::tests::maps_any_weekday_to_its_monday411 PASS [ 0.029s] horae-core week::tests::configured_week_reports_an_unrepresentable_start412 PASS [ 0.090s] horae-core permissions::tests::every_scope_combination_matches_only_explicitly_granted_dimensions413 Running [ 00:00:00] =====> 154/189: 35 running, 154 passed, 0 skipped 414 [ 00:00:00] horae-core missing_prerequisite_without_repairing_input415 [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection416 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free417 [ 00:00:00] horae-core _reject_legacy_rank_names_and_unknown_values418 [ 00:00:00] horae-core r_grant_keeps_the_remaining_selection_closed419 [ 00:00:00] horae-core ignment_removes_only_that_matching_dimension420 [ 00:00:00] horae-core rmissions::tests::scope_union_obeys_set_laws421 [ 00:00:00] horae-core cept_supported_currencies_and_optional_dates422 Running [ 00:00:00] ======> 168/189: 21 running, 168 passed, 0 skipped 423 [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection424 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free425 [ 00:00:00] horae-core cept_supported_currencies_and_optional_dates426 [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax427 [ 00:00:00] horae-core rounding::tests::result_is_multiple_of_inc428 [ 00:00:00] horae-core rounding::tests::nearest_ties_round_up429 [ 00:00:00] horae-core rounding::tests::up_and_down430 [ 00:00:00] horae-core state::tests::invoiced_is_final431 PASS [ 0.075s] horae-core rounding::tests::effective_minutes_respect_frozen_history_including_zero432 PASS [ 0.075s] horae-core rounding::tests::identity_when_inc_zero433 PASS [ 0.076s] horae-core project::tests::percentage_preserves_exact_hundredths434 PASS [ 0.076s] horae-core project::tests::monthly_fee_dates_reject_invalid_calendar_inputs435 PASS [ 0.076s] horae-core project::tests::payment_terms_support_receipt_and_checked_days436 PASS [ 0.076s] horae-core project::tests::monetary_budgets_are_only_available_for_time_and_materials437 PASS [ 0.081s] horae-core project::tests::basics_reject_blank_and_overlong_names438 PASS [ 0.081s] horae-core project::tests::basics_reject_overlong_code_and_unsupported_currency439 PASS [ 0.149s] horae-core permissions::catalog::tests::removing_any_non_floor_grant_keeps_the_remaining_selection_closed440 PASS [ 0.082s] horae-core project::tests::fee_schedules_validate_amounts_and_milestone_total441 PASS [ 0.149s] horae-core permissions::catalog::tests::profiles_reject_legacy_rank_names_and_unknown_values442 PASS [ 0.104s] horae-core permissions::tests::removing_an_assignment_removes_only_that_matching_dimension443 PASS [ 0.243s] horae-core permissions::catalog::stored_tests::rejects_every_missing_prerequisite_without_repairing_input444 PASS [ 0.117s] horae-core permissions::tests::scope_union_obeys_set_laws445 Running [ 00:00:00] ======> 168/189: 21 running, 168 passed, 0 skipped 446 [ 00:00:00] horae-core h_valid_grant_pair_and_its_revoked_selection447 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free448 [ 00:00:00] horae-core cept_supported_currencies_and_optional_dates449 [ 00:00:00] horae-core e_rejects_invalid_precision_range_and_syntax450 [ 00:00:00] horae-core rounding::tests::result_is_multiple_of_inc451 [ 00:00:00] horae-core rounding::tests::nearest_ties_round_up452 [ 00:00:00] horae-core rounding::tests::up_and_down453 [ 00:00:00] horae-core state::tests::invoiced_is_final454 Running [ 00:00:00] =======> 188/189: 1 running, 188 passed, 0 skipped 455 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free456457458459460461462463 PASS [ 0.110s] horae-core state::tests::member_submit_and_reopen464 PASS [ 0.111s] horae-core state::tests::only_manager_can_approve465 PASS [ 0.111s] horae-core rounding::tests::nearest_ties_round_up466 PASS [ 0.112s] horae-core project::tests::percentage_rejects_invalid_precision_range_and_syntax467 PASS [ 0.092s] horae-core week::tests::configured_week_contains_each_day_for_all_seven_start_days468 PASS [ 0.095s] horae-core time_of_day::tests::parse_rejects_out_of_range_and_garbage469 PASS [ 0.114s] horae-core rounding::tests::up_and_down470 PASS [ 0.284s] horae-core permissions::catalog::stored_tests::restores_each_valid_grant_pair_and_its_revoked_selection471 PASS [ 0.132s] horae-core project::tests::basics_accept_supported_currencies_and_optional_dates472 PASS [ 0.120s] horae-core rounding::tests::result_is_multiple_of_inc473 PASS [ 0.119s] horae-core state::tests::managers_invoice_open_and_approved_time474 PASS [ 0.119s] horae-core state::tests::invoiced_is_final475 PASS [ 0.107s] horae-core time_of_day::tests::snap_rounds_to_nearest_step476 PASS [ 0.107s] horae-core week::tests::configured_week_can_start_in_the_previous_year477 PASS [ 0.114s] horae-core time_of_day::tests::format_round_trips478 PASS [ 0.123s] horae-core time_of_day::tests::clamp_to_day_prevents_crossing_midnight479 PASS [ 0.118s] horae-core time_of_day::tests::format_12h_matches_harvest_style480 PASS [ 0.115s] horae-core types::tests::budget_kind_wire_strings_match_db_enum481 PASS [ 0.122s] horae-core time_of_day::tests::parse_reads_24h482 PASS [ 0.115s] horae-core time_of_day::tests::parse_reads_12h_including_edges483 Running [ 00:00:00] =======> 188/189: 1 running, 188 passed, 0 skipped 484 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free485486487488489490491492 Running [ 00:00:00] =======> 188/189: 1 running, 188 passed, 0 skipped 493 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free494495496497498499500501 Running [ 00:00:00] =======> 188/189: 1 running, 188 passed, 0 skipped 502 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free503504505506507508509510 Running [ 00:00:00] =======> 188/189: 1 running, 188 passed, 0 skipped 511 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free512513514515516517518519 Running [ 00:00:00] =======> 188/189: 1 running, 188 passed, 0 skipped 520 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free521522523524525526527528 PASS [ 0.372s] horae-core permissions::catalog::tests::normalization_is_idempotent_order_independent_and_duplicate_free529------------530 Summary [ 0.822s] 189 tests run: 189 passed, 0 skipped531 Running [ 00:00:00] ======== 189/189: 1 running, 188 passed, 0 skipped 532 [ 00:00:00] horae-core mpotent_order_independent_and_duplicate_free533534535536537538539540The files belonging to this database system will be owned by user "nixbld".541This user must also own the server process.542543The database cluster will be initialized with locale "C".544The default text search configuration will be set to "english".545546Data page checksums are disabled.547548fixing permissions on existing directory /build/tmp.kyYXN1KXSp ... ok549creating subdirectories ... ok550selecting dynamic shared memory implementation ... posix551selecting default "max_connections" ... 100552selecting default "shared_buffers" ... 128MB553selecting default time zone ... UTC554creating configuration files ... ok555running bootstrap script ... ok556performing post-bootstrap initialization ... ok557syncing data to disk ... ok558559initdb: warning: enabling "trust" authentication for local connections560initdb: 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.561562Success. You can now start the database server using:563564 pg_ctl -D /build/tmp.kyYXN1KXSp -l logfile start565566waiting for server to start.... done567server started568+++ command cargo test -p horae --features server569 Compiling horae v0.1.0 (/build/source/crates/horae)570 Compiling horae-core v0.1.0 (/build/source/crates/core)571 Finished `test` profile [unoptimized + debuginfo] target(s) in 8m 04s572 Running unittests src/main.rs (target/debug/deps/horae-0767924faa118e50)573574running 887 tests575test auth::oidc::tests::extra_audiences_are_trusted_only_when_listed ... ok576test auth::oidc::tests::deactivated_email_match_is_denied ... ok577test auth::oidc::tests::deactivated_subject_match_is_denied ... ok578test auth::oidc::tests::no_account_is_denied_not_provisioned ... ok579test auth::oidc::tests::first_login_links_subject_via_verified_email ... ok580test auth::oidc::tests::subject_match_logs_in_without_relinking ... ok581test auth::oidc::tests::subject_match_takes_precedence_over_email ... ok582test auth::oidc::tests::unverified_email_is_not_matched ... ok583test auth::page::tests::oidc_variant_uses_the_configured_label_and_hands_off_to_start ... ok584test auth::page::tests::dev_variant_offers_the_admin_bypass_and_no_fake_controls ... ok585test auth::page::tests::configured_label_is_html_escaped ... ok586test cli::imports::tests::retry_snapshot_is_compatible_with_missing_and_future_values ... ok587test cli::tests::environment_probe ... ok588test config::tests::dev_login_is_refused_off_loopback ... ok589test config::tests::without_dev_login_any_bind_is_fine ... ok590test harvest::pagination_tests::harvest_pagination_total_pages_does_not_overflow ... ok591test config::tests::dev_login_is_allowed_on_loopback ... ok592test cli::tests::remote_import_and_job_commands_accept_the_documented_arguments ... ok593test cli::imports::tests::missing_session_is_a_structured_configuration_failure ... ok594test cli::tests::remote_commands_reject_conflicting_or_unbounded_options ... ok595test cli::imports::tests::csv_named_pipe_is_rejected_without_waiting_for_a_writer ... ok596test config::tests::environment::environment_probe ... ok597test config::tests::environment::empty_environment_has_no_authentication_or_plugin_credentials ... ok598test config::tests::environment::example_environment_can_configure_all_required_oidc_and_harvest_fields ... ok599test cli::imports::tests::session_rejects_cookie_header_injection_without_echoing_the_value ... ok600test cli::imports::tests::malformed_submission_acknowledgement_retains_its_request_identity ... ok601test cli::imports::tests::session_rejects_plaintext_remote_and_credential_bearing_urls ... ok602test db::tests::pool_connections_force_custom_plans ... ok603test cli::imports::tests::cancellation_racing_completion_does_not_claim_cancellation_was_requested ... ok604test cli::imports::tests::report_marks_confirmed_failed_outcomes_as_incomplete ... ok605test harvest::tests::page_window_defaults_and_checked_offsets ... ok606test cli::imports::tests::redirects_are_not_followed_or_exposed_as_server_error_text ... ok607test cli::imports::tests::status_and_wait_distinguish_failed_jobs_from_failed_reads ... ok608test cli::imports::tests::missing_and_mismatched_jobs_fail_without_substitution ... ok609test cli::imports::tests::session_rejects_public_permissions_and_symlinks ... ok610test cli::tests::default_command_uses_the_same_defaults_and_environment_as_serve ... ok611test cli::imports::tests::private_session_accepts_https_and_loopback_only ... ok612test config::tests::environment::obsolete_authentication_variables_do_not_configure_the_server ... ok613test cli::imports::tests::ordinary_json_is_bounded_and_invalid_replies_are_not_echoed ... ok614test cli::tests::default_command_rejects_invalid_environment_ports ... ok615test config::tests::environment::partial_oidc_configuration_remains_disabled_without_a_callback ... ok616test config::tests::environment::job_attempt_limit_uses_the_documented_environment_variable ... ok617test importers::harvest::api_source::http::tests::cancelled_backoff_does_not_wait_or_retry ... ok618test importers::harvest::api_source::http::tests::cursor_links_are_authoritative_even_with_null_or_stale_page_numbers ... ok619test config::tests::environment::invalid_job_attempt_limits_reject_startup ... ok620test importers::harvest::api_source::http::tests::missing_next_cursor_is_not_silently_treated_as_completed ... ok621test importers::harvest::api_source::http::tests::pagination_cycle_detection_survives_restarting_after_every_page ... ok622test importers::harvest::api_source::http::tests::persisted_cursor_resumes_with_a_new_client_and_stays_complete_at_eof ... ok623test importers::harvest::api_source::http::tests::rejected_page_does_not_advance_the_cursor ... ok624test cli::imports::tests::api_submission_captures_generation_without_retrying_uncertain_acceptance ... ok625test importers::harvest::api_source::http::tests::rejects_pagination_outside_the_authenticated_endpoint ... ok626test importers::harvest::api_source::http::tests::resumed_cursor_rejects_untrusted_destinations_and_invalid_state_before_http ... ok627test importers::harvest::api_source::tests::assembled_rows_convert_to_exact_minutes ... ok628test cli::imports::tests::invalid_csv_files_fail_before_contacting_the_server ... ok629test importers::harvest::api_source::tests::hours_render_as_exact_decimals ... ok630test importers::harvest::api_source::tests::assembles_rows_joining_parents_by_id ... ok631test importers::harvest::api_source::tests::json_exponents_expand_exactly_with_bounded_output ... ok632test importers::harvest::api_source::tests::http_page_preserves_decimal_values_before_integer_conversion ... ok633test importers::harvest::credentials::tests::bad_key_length_is_rejected ... ok634test cli::imports::tests::archived_errors_publish_without_clobbering_and_preserve_the_prior_file_on_failure ... ok635test config::tests::environment::mail_environment_requires_a_complete_valid_configuration ... ok636test config::tests::environment::secure_cookies_use_the_documented_prefixed_variable ... ok637test importers::harvest::api_source::http::tests::http_pages_follow_cursor_and_preserve_headers_and_encoded_filter ... ok638test importers::harvest::credentials::tests::decode_hex_rejects_bad_input ... ok639test importers::harvest::api_source::http::tests::http_retries_429_but_never_follows_redirects_or_shortens_long_backoff ... ok640test importers::harvest::credentials::tests::encrypt_then_decrypt_round_trips ... ok641test importers::harvest::api_source::http::tests::http_rejects_oversized_malformed_and_cyclic_pages ... ok642test importers::harvest::api_source::http::tests::slow_consumer_backpressures_http_and_cancellation_stops_further_pages ... ok643test importers::harvest::credentials::tests::nonce_makes_ciphertext_nondeterministic ... ok644test cli::imports::tests::wait_deadline_caps_a_pending_request_without_cancelling_the_job ... ok645test auth::oidc::tests::linking::simultaneous_logins_with_the_same_subject_are_allowed ... ok646test importers::harvest::credentials::tests::wrong_key_fails_to_decrypt ... ok647test importers::harvest::csv_source::tests::bad_date_becomes_a_row_error_not_a_rejection ... ok648test importers::harvest::csv_source::tests::conflicting_email_aliases_error_only_the_affected_row ... ok649test importers::harvest::csv_source::tests::csv_records_preserve_multiline_unicode_across_single_byte_reads ... ok650test importers::harvest::csv_source::tests::cursor_beyond_upload_is_rejected_without_parsing_rows ... ok651test importers::harvest::csv_source::tests::cursor_resumes_after_multiline_unicode_and_preserves_error_locations ... ok652test importers::harvest::csv_source::tests::delivers_a_row_before_reading_the_rest_of_the_file ... ok653test importers::harvest::csv_source::tests::empty_file_is_rejected ... ok654test importers::harvest::csv_source::tests::identity_columns_are_required_and_cannot_repeat ... ok655test importers::harvest::csv_source::tests::invalid_utf8_errors_one_record_and_continues ... ok656test importers::harvest::csv_source::tests::missing_required_columns_is_rejected ... ok657test importers::harvest::csv_source::tests::names_stay_separate_from_optional_email ... ok658test importers::harvest::csv_source::tests::parse_bool_accepts_yes_variants ... ok659test importers::harvest::csv_source::tests::parses_rows_case_insensitively ... ok660test auth::oidc::tests::linking::deactivation_during_first_link_denies_login ... ok661test importers::harvest::account_switch::tests::disconnect_and_reconnect_fence_callbacks_but_not_same_account_work ... ok662test importers::harvest::account_switch::tests::competing_change_and_submission_cannot_both_succeed ... ok663test harvest::tests::members_cannot_read_own_project_rates_or_cost_overrides ... ok664test harvest::tests::a_manager_sees_the_whole_org ... ok665test auth::oidc::tests::linking::unverified_email_cannot_link_an_account ... ok666test importers::harvest::credentials::tests::connection_changes_work_with_a_single_connection_pool ... ok667test importers::harvest::credentials::tests::another_account_cannot_replace_credentials_or_watermarks ... ok668test harvest::tests::a_manager_lists_users_with_their_rates ... ok669test harvest::tests::a_member_sees_only_their_own_time_entries ... ok670test importers::harvest::account_switch::tests::queued_work_and_provenance_block_without_changing_binding ... ok671test auth::oidc::tests::linking::existing_subject_wins_over_another_accounts_email ... ok672test importers::harvest::credentials::tests::disconnect_preserves_identity_and_provenance_for_the_original_account ... ok673test auth::oidc::tests::linking::different_subjects_cannot_both_claim_an_unlinked_account ... ok674test importers::harvest::account_switch::tests::successful_change_preserves_business_rows_and_failure_rolls_back_secrets ... ok675test importers::harvest::credentials::tests::migration_binds_existing_connections_without_changing_secrets_or_markers ... ok676test harvest::tests::a_member_cannot_list_users ... ok677test importers::harvest::account_switch::tests::change_preserves_terminal_history_and_rejects_stale_confirmation ... ok678test importers::harvest::account_switch::tests::queue_acceptance_does_not_wait_for_the_import_session_lock ... ok679test harvest::tests::harvest_marks_unbilled_non_billable_contexts_consistently ... ok680test harvest::tests::a_member_cannot_filter_to_a_colleague ... ok681test importers::harvest::account_switch::tests::a_b_a_keeps_old_callbacks_requests_and_retries_fenced ... ok682test harvest::tests::a_member_cannot_fetch_a_colleagues_entry ... ok683test harvest::pagination_tests::harvest_project_progress_permissions_cover_counts_pages_and_details ... ok684test importers::harvest::account_switch::tests::retry_and_change_are_serialized ... ok685test importers::harvest::credentials::tests::unidentified_legacy_provenance_requires_operator_review ... ok686test importers::harvest::credentials::tests::same_account_reconnect_rotates_encryption_without_resetting_watermarks ... ok687test importers::harvest::engine_tests::api_and_csv_share_the_lock_but_other_organizations_can_import ... ok688test importers::harvest::credentials::tests::concurrent_first_connections_cannot_bind_different_accounts ... ok689test importers::harvest::credentials::tests::connect_and_disconnect_share_import_exclusion_without_blocking_other_orgs ... ok690test importers::harvest::engine_tests::csv_streaming::measure_csv_durable_100k ... ignored, 100,000-row durable CSV measurement; run explicitly with --release --nocapture691test 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 --nocapture692test importers::harvest::engine_tests::csv_streaming::measure_csv_streaming_100k ... ignored, 100,000-row CSV measurement; run explicitly with --release --nocapture693test 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 --nocapture694test importers::harvest::credentials::tests::failed_credential_write_does_not_leave_an_account_binding ... ok695test importers::harvest::account_switch::tests::running_jobs_block_change_and_old_execution_never_reaches_http ... ok696test harvest::tests::harvest_entry_rates_follow_the_cascade_and_frozen_invoice_line ... ok697test harvest::tests::harvest_effective_minutes_match_sql_for_open_and_frozen_time ... ok698test harvest::tests::harvest_entry_rates_respect_selected_project_mode ... ok699test importers::harvest::account_switch::tests::competing_callbacks_and_confirmations_have_one_winner ... ok700test importers::harvest::engine_tests::api_connection_checks_work_with_a_single_connection_pool ... ok701test db::tests::reset_empties_the_database_and_reapplies_migrations ... ok702test importers::harvest::engine_tests::api_sync_adopts_entries_from_a_prior_csv_import ... ok703test importers::harvest::engine_tests::lookup_cache::cold_query_callsite_on_untraced_thread_is_still_captured ... ok704test importers::harvest::engine_tests::csv_ambiguous_names_include_inactive_users_but_unique_email_disambiguates ... ok705test importers::harvest::engine_tests::bad_records_are_reported_and_run_continues ... ok706test importers::harvest::engine_tests::csv_name_only_dry_run_and_duplicate_occurrences_preserve_history ... ok707test importers::harvest::engine_tests::cancellation_rolls_back_rows_and_releases_the_import_session ... ok708test importers::harvest::engine_tests::csv_name_only_matches_one_org_user_and_reimports_without_duplicates ... ok709test importers::harvest::engine_tests::cancelled_http_waiter_keeps_the_lock_until_its_worker_exits ... ok710test importers::harvest::engine_tests::csv_malformed_file_is_rejected_with_no_writes ... ok711test importers::harvest::engine_tests::csv_import_populates_and_is_idempotent ... ok712test importers::harvest::engine_tests::csv_name_fallback_requires_a_full_unique_name_and_never_overrides_email ... ok713test importers::harvest::engine_tests::csv_streaming::cancelling_a_csv_waiting_for_more_bytes_releases_its_session ... ok714test importers::harvest::engine_tests::concurrent_imports_reject_overlap_without_collapsing_repeated_entries ... ok715test importers::harvest::engine_tests::csv_streaming::csv_preview_errors_and_repeated_rows_match_commit_and_reimport ... ok716test importers::harvest::oauth::tests::authorize_url_carries_state_and_encoded_redirect ... ok717test importers::harvest::engine_tests::distinct_harvest_ids_with_identical_fields_import_as_two ... ok718test importers::harvest::oauth_callback_tests::account_policy_failures_return_safe_actionable_conflicts ... ok719test importers::harvest::oauth_callback_tests::mismatched_state_is_rejected_without_a_code ... ok720test importers::harvest::oauth::tests::authorize_url_preserves_query_values_without_injecting_parameters ... ok721test importers::harvest::oauth_callback_tests::missing_stored_state_is_rejected ... ok722test importers::harvest::oauth_callback_tests::missing_returned_state_is_rejected ... ok723test importers::harvest::oauth_callback_tests::provider_error_is_rejected_before_exchange ... ok724test importers::harvest::oauth_callback_tests::valid_matching_state_yields_the_code ... ok725test importers::harvest::oauth_callback_tests::valid_state_but_missing_code_is_rejected ... ok726test importers::harvest::report::tests::archive_metadata_cannot_masquerade_as_a_legacy_or_inconsistent_report ... ok727test importers::harvest::report::tests::archived_report_round_trips_without_losing_error_accounting ... ok728test importers::harvest::report::tests::legacy_report_preserves_its_counts_and_error_details ... ok729test importers::harvest::report::tests::serialized_report_has_a_supported_schema_version ... ok730test importers::harvest::report::tests::report_rejects_unsupported_and_invalid_versions ... ok731test importers::harvest::resolve::checkpoint_tests::run_cache_round_trip_preserves_identity_namespaces_and_occurrences ... ok732test importers::harvest::engine_tests::csv_streaming::csv_applies_before_eof_but_transport_failure_rolls_back_everything ... ok733test importers::harvest::engine_tests::csv_streaming::durable_csv_stale_commit_is_fenced_without_a_heartbeat ... ok734test importers::harvest::credentials::tests::completed_credential_changes_allow_immediate_retries ... ok735test importers::harvest::engine_tests::import_rejects_ambiguous_normalized_email_without_partial_writes ... ok736test importers::harvest::engine_tests::failed_source_releases_the_session_and_rolls_back_partial_rows ... ok737test importers::harvest::engine_tests::csv_streaming::csv_sql_backpressure_stops_reading_later_input_rows ... ok738test harvest::pagination_tests::harvest_pagination_empty_and_out_of_range_pages_keep_the_contract ... ok739test importers::harvest::engine_tests::dry_run_writes_nothing_and_matches_commit ... ok740test importers::harvest::engine_tests::lookup_cache::cached_email_and_full_name_do_not_share_a_namespace ... ok741test importers::harvest::engine_tests::lookup_cache::lookup_index_migration_preserves_existing_ambiguous_identities ... ok742test importers::harvest::engine_tests::full_import_creates_all_levels_with_exact_minutes ... ok743test importers::harvest::engine_tests::natural_key_reimport_normalizes_whitespace_and_ascii_case ... ok744test importers::harvest::engine_tests::completed_imports_allow_immediate_retries ... ok745test importers::harvest::engine_tests::csv_streaming::durable_csv_cancel_joins_parser_and_preserves_committed_rows ... ok746test importers::harvest::engine_tests::edited_entry_still_matched_by_provenance ... ok747test importers::harvest::engine_tests::lookup_cache::new_run_rechecks_previously_cached_user_for_ambiguity ... ok748test importers::harvest::engine_tests::lookup_cache::project_task_cache_distinguishes_both_sides_of_the_link ... ok749test importers::harvest::engine_tests::lookup_cache::cached_project_task_still_validates_each_rows_rate ... ok750test importers::harvest::engine_tests::csv_streaming::durable_csv_report_metadata_is_bounded_after_recovery ... ok751test importers::harvest::engine_tests::lookup_cache::rolled_back_row_does_not_cache_user_or_project_task ... ok752test importers::harvest::engine_tests::reimporting_identical_csv_rows_is_idempotent ... ok753test importers::harvest::engine_tests::two_identical_csv_rows_import_as_two_entries ... ok754test importers::harvest::engine_tests::submission_barrier_blocks_imported_time_entries ... ok755test importers::harvest::engine_tests::second_identical_run_creates_nothing ... ok756test importers::harvest::engine_tests::overflowing_decimals_fail_only_their_rows ... ok757test importers::harvest::engine_tests::watermark_advances_only_on_commit ... ok758test importers::harvest::streaming::tests::api_planning_policy_ends_with_the_transaction ... ok759test importers::harvest::streaming::durable::preview::tests::restoration_omits_unneeded_virtual_entries ... ok760test importers::harvest::resolve::preview::tests::rejects_foreign_parent_snapshots_before_restoring_any_rows ... ok761test importers::harvest::resolve::preview::tests::checkpoint_restores_known_task_currency_and_keeps_old_currency_unknown ... ok762test harvest::pagination_tests::harvest_pagination_router_preserves_session_and_tenant_guards ... ok763test importers::harvest::sync_tests::api_rejects_ambiguous_email_without_advancing_watermark ... ok764test importers::harvest::sync_tests::checkpoints::durable_api_preview_finalization_retry_does_not_repeat_completed_downloads ... ok765test importers::harvest::sync_tests::api_requires_email_even_when_full_name_matches ... ok766test importers::harvest::sync_tests::checkpoints::durable_api_finalization_retry_does_not_repeat_completed_downloads ... ok767test importers::harvest::sync_tests::checkpoints::durable_api_resume_keeps_earlier_errors_and_does_not_advance_watermark ... ok768test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_crosses_batch_boundaries_without_committing_domain_data ... ok769test importers::harvest::sync_tests::dry_run_leaves_data_provenance_and_watermark_unchanged ... ok770test importers::harvest::sync_tests::disconnect_and_reconnect_preserves_imported_records_and_exact_identity ... ok771test importers::harvest::sync_tests::checkpoints::durable_api_preview_reclaimed_worker_cannot_checkpoint_its_next_page ... ok772test importers::harvest::sync_tests::checkpoints::failed_api_preview_publishes_its_last_confirmed_page_report ... ok773test importers::harvest::sync_tests::checkpoints::durable_api_resumes_a_partially_downloaded_catalog ... ok774test importers::harvest::sync_tests::scale::api_100k_commit_and_reimport ... ignored, 100,000-entry scale measurement; run explicitly with --release --nocapture775test importers::harvest::sync_tests::scale::api_100k_dry_run ... ignored, 100,000-entry scale measurement; run explicitly with --release --nocapture776test importers::harvest::sync_tests::scale::api_durable_100k_commit_and_reimport ... ignored, 100,000-entry durable API measurement; run explicitly with --release --nocapture777test importers::harvest::sync_tests::scale::api_durable_100k_dry_run ... ignored, 100,000-entry durable API measurement; run explicitly with --release --nocapture778test importers::harvest::sync_tests::checkpoints::durable_api_reclaimed_worker_cannot_commit_its_next_page ... ok779test importers::harvest::sync_tests::checkpoints::durable_api_preview_resume_preserves_row_errors ... ok780test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_catalog_download ... ok781test importers::harvest::sync_tests::checkpoints::durable_api_preview_cancellation_preserves_confirmed_pages_for_manual_retry ... ok782test importers::harvest::sync_tests::empty_sync_does_not_invent_a_watermark ... ok783test importers::harvest::sync_tests::checkpoints::durable_api_cancellation_preserves_confirmed_pages_for_manual_retry ... ok784test importers::harvest::sync_tests::checkpoints::failed_api_commit_publishes_its_last_confirmed_page_report ... ok785test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_pages_without_publishing_domain_data ... ok786test importers::harvest::sync_tests::failed_client_propagates_to_project_and_entry_without_placeholder_records ... ok787test importers::harvest::sync_tests::invalid_parent_blocks_dependent_time_but_other_catalog_records_survive ... ok788test importers::harvest::sync_tests::checkpoints::durable_api_resume_remembers_an_earlier_missing_timestamp ... ok789test importers::harvest::sync_tests::checkpoints::durable_api_resumes_committed_pages_and_preserves_the_high_watermark ... ok790test importers::harvest::sync_tests::missing_client_fallback_and_failed_project_savepoints_do_not_poison_cache ... ok791test importers::harvest::sync_tests::failed_rows_are_available_to_the_next_incremental_retry ... ok792test importers::harvest::sync_tests::checkpoints::durable_api_preview_preserves_adoptions_and_repeated_ids_across_recovery ... ok793test importers::harvest::sync_tests::exact_api_decimals_survive_preview_commit_and_reimport ... ok794test importers::harvest::sync_tests::out_of_range_api_decimals_error_per_row_and_leave_retry_watermark ... ok795test importers::harvest::sync_tests::paging::durable_api_stale_commit_cannot_advance_data_or_watermark ... ok796test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_cancel_preserves_simulation_for_manual_retry ... ok797test importers::harvest::engine_tests::csv_streaming::durable_csv_resumes_committed_batches_without_recounting_duplicate_rows ... ok798test importers::harvest::sync_tests::paging::cancelled_page_consumer_retains_lock_until_worker_exits_and_rolls_back ... ok799test importers::harvest::sync_tests::missing_source_timestamp_keeps_the_previous_watermark ... ok800test importers::harvest::engine_tests::lookup_cache::repeated_rows_resolve_each_user_and_project_task_once ... ok801test importers::harvest::sync_tests::paging::later_download_failure_rolls_back_parents_rows_and_watermark ... ok802test harvest::pagination_tests::harvest_pagination_rejects_invalid_windows_on_every_collection ... ok803test importers::harvest::sync_tests::parent_only_api_import_creates_catalog_and_reimport_skips_it ... ok804test importers::harvest::sync_tests::successful_sync_only_marks_the_incrementally_fetched_entity ... ok805test importers::harvest::sync_tests::watermark_write_failure_rolls_back_imported_data ... ok806test init::tests::init_creates_one_org_and_one_admin_and_nothing_else ... ok807test importers::harvest::sync_tests::parent_only_dry_run_previews_without_persisting_catalog ... ok808test importers::harvest::sync_tests::parent_catalog_preserves_metadata_and_counts_each_entity_once ... ok809test importers::harvest::sync_tests::refreshed_tokens_survive_a_dry_run_rollback_in_the_same_import_session ... ok810test importers::harvest::sync_tests::watermark_never_passes_the_start_of_capture ... ok811test init::tests::init_refuses_when_an_organization_exists ... ok812test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_resumes_after_a_crash_without_recounting_rows ... ok813test importers::harvest::sync_tests::paging::durable_api_cancel_waits_for_the_producer_before_acknowledging ... ok814test importers::harvest::engine_tests::csv_streaming::durable_csv_cancel_preserves_its_completed_batches_for_manual_retry ... ok815test jobs::tests::cancellation_and_retry_are_scoped_and_idempotent ... ok816test importers::harvest::engine_tests::csv_streaming::durable_csv_reclaimed_lease_cannot_commit_the_next_batch ... FAILED817test jobs::tests::claims_are_atomic_and_expired_leases_recover ... ok818test jobs::tests::history_paginates_tied_timestamps_and_rejects_foreign_cursors ... ok819test jobs::tests::cancellation_waits_for_the_claimed_execution_before_allowing_retry ... ok820test jobs::tests::payload_kind_is_stable_and_round_trips ... ok821test jobs::tests::payload_versions_preserve_legacy_jobs_and_reject_unknown_versions ... ok822test jobs::tests::outbox_delivery_is_idempotent ... ok823test jobs::tests::retry_snapshot_does_not_guess_unknown_payloads_or_sources ... ok824test importers::harvest::sync_tests::checkpoints::durable_api_preview_resumes_after_a_confirmed_parent_batch ... ok825test jobs::tests::shutdown_deadline_drops_and_joins_in_flight_work ... ok826test jobs::tests::shutdown_waits_for_in_flight_work ... ok827test importers::harvest::sync_tests::checkpoints::durable_api_resumes_after_a_confirmed_parent_batch ... ok828test importers::harvest::sync_tests::scale::http_pages_preview_commit_and_reimport ... ok829test jobs::tests::api_job_keeps_its_policy_across_duplicate_enqueue_and_manual_retry ... ok830test jobs::tests::retry_snapshot_matches_status_and_list_without_exposing_payload ... ok831test jobs::tests::synthetic_job_uses_the_same_registered_envelope ... ok832test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_rejects_a_stale_next_batch ... ok833test models::project_creation::tests::draft_roundtrip_preserves_incomplete_input_without_demo_data ... ok834test models::project_creation::tests::unauthorized_catalog_cost_is_absent_from_serialized_options ... ok835test models::project_creation::tests::unknown_draft_fields_are_rejected ... ok836test importers::harvest::sync_tests::scale::durable_measurement_finishes_from_its_eof_checkpoint ... ok837test notifications::tests::cancelling_delivery_kills_the_active_sender ... ok838test jobs::tests::upload_organization_must_match_its_job ... ok839test notifications::tests::acknowledged_email_is_never_claimed_again ... ok840test notifications::tests::disabled_mail_worker_does_not_claim_pending_notifications ... ok841test notifications::tests::mail_configuration_is_disabled_by_default_and_rejects_partial_values ... ok842test notifications::tests::mail_configuration_requires_an_executable_file_and_safe_sender ... ok843test jobs::report::stream_tests::download_keeps_its_snapshot_when_later_progress_archives_the_inline_tail ... ok844test notifications::tests::recipient_injection_is_rejected_before_starting_a_process ... ok845test notifications::tests::rendered_mail_bounds_body_lines_for_long_unicode_and_control_names ... ok846test importers::harvest::sync_tests::paging::invalid_and_missing_timestamp_rows_cross_page_boundaries_without_advancing ... ok847test notifications::tests::foreign_notification_payload_is_terminal_and_never_sent ... ok848test notifications::tests::sendmail_failure_does_not_expose_program_output ... ok849test notifications::tests::sendmail_receives_fixed_arguments_and_stable_message_identity ... ok850test jobs::report::tests::report_fragments_survive_until_the_owning_job_expires ... ok851test notifications::tests::failed_email_retries_same_identity_and_eventually_stops ... ok852test notifications::tests::retry_can_recover_without_changing_message_identity ... ok853test pages::clients::filters::tests::clearing_query_preserves_selected_currency_and_lifecycle ... ok854test pages::clients::filters::tests::lifecycle_counts_share_query_and_currency_filters ... ok855test pages::clients::filters::tests::name_search_ignores_case_and_surrounding_whitespace ... ok856test pages::clients::filters::tests::preferred_or_visible_project_currency_matches_but_query_still_applies ... ok857test pages::clients::form::tests::absent_billing_authority_never_produces_an_edit_payload ... ok858test pages::clients::form::tests::ambiguous_creation_errors_require_explicit_recovery ... ok859test pages::clients::form::tests::clearing_a_rate_is_explicit_and_needs_no_currency_confirmation ... ok860test pages::clients::form::tests::invalid_fields_are_not_rewritten_by_validation ... ok861test pages::clients::form::tests::rate_replacement_requires_confirmation_in_the_current_currency ... ok862test pages::clients::form::tests::untouched_fields_keep_zero_rate_and_original_snapshot ... ok863test pages::importers::presentation::tests::interrupted_report_is_partial_regardless_of_retry_prerequisites ... ok864test pages::importers::presentation::tests::no_selection_does_not_claim_no_import_history ... ok865test pages::importers::presentation::tests::source_labels_do_not_guess_unknown_importers ... ok866test pages::importers::presentation::tests::states_and_phases_have_readable_unknown_fallbacks ... ok867test pages::importers::presentation::tests::summaries_distinguish_zero_skipped_and_mixed_outcomes ... ok868test pages::invoices::defaults_form::tests::invoice_fields_bound_metadata_by_characters_and_reject_nul ... ok869test pages::invoices::defaults_form::tests::invoice_fields_preserve_exact_percentages_and_custom_terms ... ok870test pages::invoices::defaults_form::tests::invoice_fields_preserve_receipt_terms_and_empty_optional_percentages ... ok871test pages::invoices::defaults_form::tests::invoice_fields_reject_invalid_percentages_terms_and_second_tax ... ok872test pages::invoices::preparation::fees::tests::fee_inputs_require_exact_amounts_and_an_explicit_positive_charge ... ok873test notifications::tests::mail_worker_delivers_only_its_kind_and_drains_cleanly ... ok874test pages::invoices::preparation::fees::tests::refresh_preserves_missing_or_relabelled_edits_until_explicit_removal ... ok875test pages::invoices::preparation::tests::invoice_context_selects_only_the_exact_available_client ... ok876test pages::invoices::preparation::fees::tests::refresh_keeps_raw_edits_and_does_not_select_new_sources ... ok877test pages::invoices::preparation::tests::invoice_review_requires_matching_sources_and_valid_values ... ok878test pages::invoices::preparation::tests::unavailable_or_malformed_invoice_context_never_uses_the_first_client ... ok879test pages::new_project::basics::tests::a_full_tag_list_still_accepts_a_duplicate ... ok880test pages::new_project::basics::tests::overlong_tags_are_rejected_without_truncation ... ok881test pages::new_project::basics::tests::tag_length_counts_characters_instead_of_bytes ... ok882test pages::new_project::basics::tests::tags_trim_and_deduplicate_without_changing_existing_spelling ... ok883test pages::new_project::basics::tests::a_batch_that_would_exceed_the_tag_limit_is_rejected ... ok884test pages::new_project::draft::tests::a_mismatched_acknowledgement_does_not_lose_pending_input ... ok885test pages::new_project::draft::tests::a_retry_keeps_the_unacknowledged_payload_and_revision ... ok886test pages::new_project::draft::tests::a_validation_rejection_allows_corrected_input_at_the_same_revision ... ok887test pages::new_project::draft::tests::an_empty_form_is_not_reported_as_saved ... ok888test pages::new_project::draft::tests::any_saved_draft_wins_over_context_including_empty_or_matching_client ... ok889test pages::new_project::draft::tests::context_prefills_only_a_new_form_without_fixing_its_currency ... ok890test pages::new_project::draft::tests::resuming_preserves_the_server_identity_and_incomplete_fields ... ok891test pages::new_project::billing::tests::budget_errors_target_a_control_that_can_be_corrected ... ok892test pages::new_project::team::tests::adding_everyone_deduplicates_without_replacing_project_overrides ... ok893test pages::new_project::team::tests::removing_a_member_keeps_an_empty_restricted_task_restricted ... ok894test pages::new_project::tests::a_rejected_creation_can_be_edited_but_an_uncertain_commit_must_be_retried ... ok895test pages::new_project::tests::only_known_validation_fields_can_target_a_control ... ok896test pages::new_project::team::tests::exceeding_the_team_limit_does_not_partially_add_people ... ok897test pages::projects::budget_display_tests::configured_scopes_sum_without_hiding_an_individual_overrun ... ok898test pages::projects::budget_display_tests::tag_filter_matches_identity_without_duplicates_or_name_collisions ... ok899test pages::projects::budget_display_tests::display_preserves_units_sign_and_large_integer_values ... ok900test pages::reports::tests::cost_total_uses_organization_currency_across_billing_currencies ... ok901test pages::reports::tests::mixed_currencies_are_not_added_even_when_the_numbers_would_overflow ... ok902test pages::reports::tests::monetary_total_overflow_is_visible_instead_of_panicking ... ok903test pages::reports::tests::redacted_costs_do_not_become_zero_or_partial_totals ... ok904test pages::reports::tests::single_currency_totals_are_formatted_and_empty_reports_have_no_amount ... ok905test pages::timesheet::tests::cal_span_day_shows_only_the_anchor_column ... ok906test pages::timesheet::tests::cal_span_defaults_to_week ... ok907test pages::timesheet::tests::cal_span_unknown_falls_back_to_week ... ok908test pages::timesheet::tests::cal_span_url_roundtrips ... ok909test pages::timesheet::tests::cal_span_week_shows_all_seven_days ... ok910test pages::timesheet::tests::cal_span_work_week_preserves_date_order_across_weekends ... ok911test pages::timesheet::tests::cal_span_work_week_shows_monday_to_friday ... ok912test pages::timesheet::tests::cal_span_work_week_skips_sunday_when_it_is_the_first_column ... ok913test pages::timesheet::tests::day_col_class_marks_today ... ok914test pages::timesheet::tests::day_col_class_marks_weekend ... ok915test pages::timesheet::tests::day_col_class_plain_weekday ... ok916test pages::timesheet::tests::day_col_class_today_wins_over_weekend ... ok917test pages::projects::budget_display_tests::unallocated_zero_and_overflow_budgets_are_not_conflated ... ok918test pages::timesheet::tests::invalid_duration_cannot_start_a_timer_save_or_clear_a_cell ... ok919test pages::timesheet::tests::timed_lanes_still_widens_overlapping_entries ... ok920test pages::timesheet::tests::timed_lanes_terminates_on_a_zero_length_entry ... ok921test pages::timesheet::tests::today_offset_is_none_after_the_week ... ok922test pages::timesheet::tests::today_offset_is_none_before_the_week ... ok923test pages::timesheet::tests::only_a_blank_duration_can_start_an_eligible_timer ... ok924test pages::timesheet::tests::today_offset_is_six_on_the_sunday ... ok925test pages::timesheet::tests::today_offset_is_zero_on_the_monday ... ok926test pages::timesheet::tests::value_cell_class_empty_wins_over_today ... ok927test pages::timesheet::tests::value_cell_class_marks_today_when_nonzero ... ok928test pages::timesheet::tests::weekend_style_follows_the_date_not_the_column_offset ... ok929test pages::timesheet::tests::weekly_duration_edit_preserves_nine_am_start_notes_and_billability ... ok930test pages::timesheet::tests::weekly_new_entries_are_untimed_and_explicit_clears_still_work ... ok931test notifications::tests::sendmail_timeout_kills_and_reaps_the_child ... ok932test notifications::tests::verbose_sender_output_is_discarded_without_blocking_delivery ... ok933test notifications::tests::revoked_recipient_does_not_receive_a_pending_email ... ok934test importers::harvest::engine_tests::large_run_reuses_parents_and_reconciles_totals ... ok935test plugin::database::tests::reader_accepts_optional_first_party_rounding_helper ... ok936test plugin::database::tests::application_database_owner_is_not_a_plugin_identity ... ok937test notifications::tests::stale_email_lease_cannot_start_delivery ... ok938test plugin::event::tests::active_transition_fires_only_on_a_real_flip ... ok939test plugin::event::tests::budget_and_timer_events_serialize ... ok940test plugin::event::tests::new_events_have_stable_hook_names ... ok941test plugin::event::tests::project_membership_payload_excludes_private_configuration ... ok942test plugin::event::tests::role_change_event_carries_previous_role ... ok943test plugin::event::tests::submission_event_serializes_payload ... ok944test plugin::event::tests::us2_events_have_stable_hook_names ... ok945test harvest::pagination_tests::harvest_project_cost_overrides_require_admin_without_fabricated_fallback ... ok946test plugin::host::tests::config_lookup::a_set_key_is_returned ... ok947test plugin::host::tests::config_lookup::an_unset_key_is_none ... ok948test plugin::database::tests::project_configuration_is_private_even_when_plugin_grants_are_misconfigured ... ok949test plugin::database::tests::dedicated_reader_is_accepted_but_new_write_grants_are_rejected ... ok950test plugin::database::tests::reader_cannot_have_access_to_credentials ... ok951test plugin::database::tests::reader_cannot_execute_security_definer_functions ... ok952test plugin::host::tests::database_tests::unconfigured_sql_never_falls_back_to_application_state ... ok953test plugin::database::tests::reader_cannot_switch_into_another_role ... ok954test plugin::host::tests::response_shaping::error_json_wraps_the_message ... ok955test plugin::host::tests::response_shaping::http_body_accepts_the_size_limit_and_rejects_larger_responses ... ok956test plugin::host::tests::response_shaping::http_response_carries_status_and_body ... ok957test plugin::host::tests::response_shaping::invalid_http_utf8_is_an_error_not_an_empty_success ... ok958test plugin::host::tests::statement_is_read_only::a_cte_select_is_allowed ... ok959test plugin::host::tests::statement_is_read_only::a_second_statement_is_rejected ... ok960test plugin::host::tests::statement_is_read_only::a_single_trailing_semicolon_is_allowed ... ok961test plugin::host::tests::statement_is_read_only::a_write_hidden_behind_a_comment_is_rejected ... ok962test plugin::host::tests::statement_is_read_only::plain_select_is_allowed ... ok963test plugin::host::tests::statement_is_read_only::writes_are_rejected ... ok964test plugin::host::tests::wrap_select::strips_a_trailing_semicolon_before_wrapping ... ok965test plugin::host::tests::wrap_select::wraps_as_a_bounded_row_query ... ok966test plugin::manifest::tests::accepts_all_published_business_events ... ok967test plugin::manifest::tests::config_defaults_to_empty_when_absent ... ok968test plugin::manifest::tests::parse_valid_manifest ... ok969test plugin::manifest::tests::parses_optional_config_table ... ok970test plugin::manifest::tests::reject_empty_hooks ... ok971test plugin::manifest::tests::reject_unknown_hook ... ok972test plugin::database::tests::reader_rejects_unapproved_invoker_functions ... ok973test plugin::host::tests::database_tests::query_discards_session_advisory_locks ... ok974test plugin::host::tests::database_queries_preserve_parameters_and_rollback_session_settings ... ok975test jobs::tests::reclaimed_attempt_rejects_stale_results_even_with_the_same_worker_name ... ok976test plugin::host::tests::database_tests::select_cannot_write_or_gain_application_privileges ... ok977978running 1 test979test plugin::host::tests::database_tests::wasm_host_uses_the_restricted_connection_on_a_current_thread_runtime ... ok980test plugin::host::tests::database_tests::query_results_are_bounded_without_silent_truncation ... ok981test importers::harvest::engine_tests::csv_streaming::csv_measurement_recovers_a_complete_batch_without_recounting ... ok982test plugin::host::tests::a_query_cannot_disable_its_own_deadline ... ok983test jobs::tests::synthetic_job_executes_through_claim_and_completion ... ok984test plugin::registry::tests::isolation::confirmed_dispatch_returns_overload_for_retry ... ok985test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok986987test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 886 filtered out; finished in 3.45s988989test plugin::registry::tests::isolation::confirmed_dispatch_returns_plugin_failure_for_retry ... ok990test plugin::registry::tests::isolation::confirmed_dispatch_waits_for_the_plugin_to_finish ... ok991test plugin::registry::tests::isolation::different_plugins_share_the_running_call_limit ... ok992test plugin::registry::tests::isolation::events_execute_outside_the_async_worker ... ok993994running 1 test995test plugin::registry::tests::isolation::loaded_plugins_cannot_grow_memory_past_the_limit ... ok996test plugin::registry::tests::isolation::loaded_plugins_cannot_start_with_excessive_memory ... ok997test plugin::registry::tests::isolation::oversized_event_payloads_are_not_queued ... ok998test plugin::registry::tests::isolation::oversized_wasm_output_is_rejected_before_copying_it ... ok999test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok10001001test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 886 filtered out; finished in 0.71s10021003test plugin::registry::tests::isolation::pending_capacity_rejects_new_work_without_spawning_tasks ... ok10041005running 1 test1006test plugin::registry::tests::isolation::widgets_execute_outside_the_async_worker ... ok1007test plugin::registry::tests::load_empty_directory ... ok1008test plugin::registry::tests::load_nonexistent_directory ... ok1009test plugin::registry::tests::isolation::confirmed_dispatch_attempts_other_plugins_after_one_fails ... ok1010test render::tests::invoice_template_formats_large_minor_units_exactly ... ok1011test plugin::registry::tests::isolation::cancelling_a_waiter_keeps_capacity_reserved_until_the_host_call_exits ... ok1012test reports::bounded::tests::export_admission_stays_reserved_until_the_body_is_dropped ... ok1013test reports::bounded::tests::cancelled_export_keeps_its_slot_until_the_renderer_exits ... ok1014test reports::bounded::tests::output_budget_checks_writes_and_seeks_without_truncation ... ok1015test reports::bounded::tests::export_rendering_runs_off_the_async_worker ... ok1016test reports::bounded::tests::renderer_errors_and_panics_release_admission ... ok1017test reports::bounded::tests::rendered_output_limit_rejects_oversized_files_and_releases_admission ... ok1018test plugin::registry::tests::initialization::instruction_budget_is_replenished_for_each_call ... ok1019test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok10201021test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 886 filtered out; finished in 0.45s10221023test plugin::registry::tests::collect_widgets_from_echo_plugin ... ok10241025running 1 test1026test harvest::pagination_tests::harvest_own_time_omits_private_project_budget_metadata has been running for over 60 seconds1027test harvest::pagination_tests::harvest_pagination_catalog_links_preserve_filters_and_break_name_ties has been running for over 60 seconds1028test harvest::pagination_tests::harvest_pagination_malformed_filters_are_client_errors has been running for over 60 seconds1029test harvest::pagination_tests::harvest_pagination_time_entries_keep_the_filtered_set_and_date_ties has been running for over 60 seconds1030test harvest::pagination_tests::harvest_task_access_filters_counts_and_preserves_rate_free_history has been running for over 60 seconds1031test harvest::tests::imported_legacy_rates_survive_retry_in_harvest_list_and_detail has been running for over 60 seconds1032test reports::bounded::tests::timed_out_export_keeps_its_slot_until_the_renderer_exits ... ok1033test harvest::pagination_tests::harvest_task_access_filters_counts_and_preserves_rate_free_history ... ok1034test plugin::registry::tests::dispatch_event_with_no_subscribers ... ok1035test plugin::registry::tests::dispatch_to_echo_plugin_succeeds ... ok1036test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok10371038test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 886 filtered out; finished in 2.11s10391040test plugin::registry::tests::initialization::guest_initializers_have_an_engine_instruction_budget ... ok1041test plugin::registry::tests::load_test_plugins ... ok1042test reports::limits::tests::bounded_projects_filter_archives_before_size_checks ... ok1043test reports::limits::tests::measure_bounded_export_limits ... ignored, manual release export measurement; set HORAE_EXPORT_PROBE_DIR for artifacts1044test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_matches_existing_and_new_rows_with_one_connection has been running for over 60 seconds1045test plugin::registry::tests::dispatch_invoice_sent_to_echo_plugin ... ok1046test plugin::registry::tests::failing_plugin_does_not_block_caller ... ok1047test jobs::tests::invalid_stored_payloads_reach_a_terminal_error ... ok1048test plugin::registry::tests::isolation::a_wasm_timeout_releases_the_worker_and_instance ... ok1049test importers::harvest::engine_tests::csv_streaming::durable_csv_preview_matches_existing_and_new_rows_with_one_connection ... ok1050test reports::streaming::database_tests::measure_streaming_csv_export ... ignored, Manual release measurement of a 100,000-row CSV download1051test reports::limits::tests::invoice_exports_show_saved_adjustments_and_exact_large_amounts ... ok1052test jobs::tests::final_failure_is_retained_and_manual_retry_gets_a_new_budget ... ok1053test harvest::pagination_tests::harvest_own_time_omits_private_project_budget_metadata ... ok1054test importers::harvest::sync_tests::scale::durable_api_report_preserves_overflow_errors_after_recovery ... ok1055test jobs::outbox::tests::invalid_payload_is_not_delivered_and_does_not_leak_into_errors ... ok1056test jobs::tests::outbox_same_kind_consumers_cannot_claim_the_same_lease ... ok1057test reports::streaming::database_tests::streamed_fee_invoice_has_no_fabricated_hours_or_hourly_rate ... ok1058test reports::streaming::tests::completed_csv_keeps_admission_until_body_drop ... ok1059test reports::streaming::tests::csv_backpressure_and_body_drop_bound_and_cancel_source_reads ... ok1060test reports::streaming::tests::csv_does_not_truncate_a_quoted_unicode_record_larger_than_a_chunk ... ok1061test reports::streaming::tests::csv_emits_a_chunk_before_the_source_finishes ... ok1062test reports::streaming::tests::csv_failure_or_panic_after_a_chunk_is_not_successful_eof ... ok1063test reports::streaming::tests::csv_startup_errors_are_http_errors_and_release_admission ... ok1064test reports::streaming::tests::csv_timeout_interrupts_an_already_started_body ... ok1065test reports::streaming::tests::dropping_csv_during_startup_cancels_the_producer ... ok1066test route::tests::client_detail_preserves_identity_and_highlights_only_clients ... ok1067test route::tests::client_workflow_paths_preserve_context_and_navigation_section ... ok1068test route::tests::edit_project_preserves_identity_and_highlights_only_projects ... ok1069test route::tests::malformed_context_reaches_the_workflow_for_validation_after_recovery ... ok1070test route::tests::new_project_is_static_and_highlights_only_projects ... ok1071test jobs::outbox::tests::acknowledges_confirmed_delivery_without_reclaiming_it has been running for over 60 seconds1072test jobs::outbox::tests::plugin_failure_retries_with_the_same_event_identity has been running for over 60 seconds1073test jobs::outbox::tests::worker_delivers_available_events_and_stops_cleanly has been running for over 60 seconds1074test jobs::report::stream_tests::download_reads_only_when_consumed_and_releases_its_connection has been running for over 60 seconds1075test jobs::tests::outbox_claims_only_the_requested_event_kind ... ok1076test jobs::report::stream_tests::download_reports_missing_fragments_after_its_buffered_page has been running for over 60 seconds1077test jobs::report::tests::legacy_upgrade_preserves_job_states_and_existing_archives has been running for over 60 seconds1078test jobs::report::tests::upgrading_legacy_reports_preserves_errors_and_fences_old_attempts has been running for over 60 seconds1079test jobs::tests::cancellation_survives_a_crash_before_the_worker_acknowledges has been running for over 60 seconds1080test jobs::report::stream_tests::download_reads_only_when_consumed_and_releases_its_connection ... ok1081test jobs::tests::cleanup_retains_retryable_uploads_and_deletes_expired_jobs has been running for over 60 seconds1082test jobs::tests::concurrent_csv_resubmission_preserves_identity_after_upload_cleanup has been running for over 60 seconds1083test jobs::tests::csv_job_persists_its_policy_with_the_upload has been running for over 60 seconds1084test jobs::tests::expired_final_attempt_fails_without_claiming_again has been running for over 60 seconds1085test jobs::outbox::tests::acknowledges_confirmed_delivery_without_reclaiming_it ... ok1086test jobs::tests::expired_lease_cannot_renew_or_commit_using_an_old_transaction_timestamp has been running for over 60 seconds1087test jobs::tests::failed_csv_commit_retains_confirmed_report_through_history_and_retry has been running for over 60 seconds1088test jobs::tests::failed_csv_preview_retains_confirmed_report_through_history_and_retry has been running for over 60 seconds1089test jobs::tests::import_adapters_reject_a_lease_from_another_organization has been running for over 60 seconds1090test jobs::tests::invalid_policy_cannot_enqueue_a_job_or_upload has been running for over 60 seconds1091test jobs::tests::missing_configuration_records_error_and_requeues has been running for over 60 seconds1092test jobs::tests::missing_csv_upload_records_error_and_requeues has been running for over 60 seconds1093test jobs::tests::outbox_rollback_does_not_publish_an_event has been running for over 60 seconds1094test reports::limits::tests::bounded_entries_reject_large_fields_and_combined_text ... ok1095test jobs::tests::outbox_stale_claims_cannot_acknowledge_or_reschedule_delivery has been running for over 60 seconds1096test reports::privacy_tests::project_downloads_follow_progress_visibility ... ok1097test jobs::tests::stopped_worker_leaves_queued_jobs_unclaimed has been running for over 60 seconds1098test seed::tests::seed_leaves_an_older_or_partial_demo_unchanged ... ok1099test jobs::tests::submission_key_cannot_change_api_mode_or_scope has been running for over 60 seconds1100test jobs::tests::cancellation_survives_a_crash_before_the_worker_acknowledges ... ok1101test jobs::tests::submission_key_cannot_change_csv_bytes_or_mode has been running for over 60 seconds1102test seed::tests::seed_refuses_an_initialized_organization_without_writes ... ok1103test reports::streaming::database_tests::streamed_tag_filter_excludes_other_projects_without_duplicating_rows ... ok1104test server_fns::approvals::submission_tests::cancelling_a_submission_releases_its_write_barrier ... ok1105test server_fns::approvals::submission_tests::submission_accepts_the_organizations_sunday_start ... ok1106test server_fns::approvals::submission_tests::submission_barrier_allows_shared_writers_for_the_same_user ... ok1107test seed::tests::concurrent_initializers_cannot_create_two_organizations ... ok1108test server_fns::approvals::submission_tests::submission_does_not_wait_for_another_users_writer ... ok1109test server_fns::approvals::submission_tests::submission_rejects_a_start_that_is_not_the_organizations_week_start ... ok1110test server_fns::approvals::submission_tests::submission_freezes_the_minutes_after_a_competing_edit ... ok1111test reports::streaming::database_tests::streamed_timesheet_preserves_csv_escaping_frozen_zero_and_all_filters ... ok1112test server_fns::approvals::submission_tests::submission_waits_for_a_new_timer_before_checking_the_week ... ok1113test server_fns::approvals::submission_tests::submission_uses_one_pool_connection ... ok1114test reports::streaming::database_tests::streamed_projects_preserve_scope_budget_and_tenant_isolation ... ok1115test server_fns::approvals::tests::ignores_stopped_and_out_of_week_timers ... ok1116test server_fns::approvals::tests::sees_a_running_timer_inside_the_week ... ok1117test server_fns::budget_tests::configured_alert_recipients_are_active_same_org_managers_and_project_leads ... ok1118test server_fns::budget_tests::configured_alert_and_outbox_roll_back_together ... ok1119test server_fns::budget_tests::budget_notification_schema_enforces_tenants_and_no_public_access ... ok1120test server_fns::budget_tests::concurrent_budget_checks_have_one_band_claimant ... ok1121test server_fns::budget_tests::configured_alerts_deduplicate_concurrent_checks_and_recrossing ... ok1122test jobs::tests::failed_csv_commit_retains_confirmed_report_through_history_and_retry ... ok1123test server_fns::budget_tests::configured_amount_budget_uses_resolved_rates_and_explicit_zero ... ok1124test server_fns::budget_tests::configured_alerts_require_enabled_active_project_and_authorized_recipient ... ok1125test server_fns::budget_tests::configured_budget_does_not_read_foreign_or_legacy_projects ... ok1126test server_fns::budget_tests::configured_budget_sweep_recovers_missed_checks_without_duplicates ... ok1127test server_fns::budget_tests::configured_monthly_budget_includes_leap_day_and_preserves_locked_rounding ... ok1128test server_fns::budget_tests::configured_monthly_budget_excludes_other_months_and_nonbillable_time ... ok1129test server_fns::budget_tests::configured_nonbillable_projects_count_time_without_hidden_checkbox ... ok1130test server_fns::budget_tests::configured_person_budget_excludes_other_people_and_has_its_own_alert ... ok1131test server_fns::budget_tests::configured_task_fee_budget_respects_billability_and_alert_scope ... ok1132test server_fns::budget_tests::overview_budget_progress_batches_projects_without_mixing_scopes ... ok1133test server_fns::budget_tests::configured_task_and_person_budgets_do_not_share_consumption ... ok1134test reports::streaming::database_tests::streamed_timesheet_exceeds_xlsx_row_limit_without_one_large_body_chunk ... ok1135test server_fns::budget_tests::overview_budget_progress_includes_people_without_an_allowance ... ok1136test server_fns::clients::tests::both_activation_transitions_change_once_and_preserve_details ... ok1137test server_fns::budget_tests::overview_budget_progress_is_current_period_scoped_and_authorized ... ok1138test server_fns::clients::tests::client_details_hide_foreign_missing_and_inactive_actor_records ... ok1139test jobs::tests::concurrent_csv_resubmission_preserves_identity_after_upload_cleanup ... ok1140test server_fns::clients::tests::client_default_rate_prevents_currency_relabelling ... ok1141test server_fns::clients::tests::client_default_rate_allows_detail_edits_and_equivalent_currency ... ok1142test server_fns::clients::tests::client_details_distinguish_unset_zero_and_positive_manager_rates ... ok1143test server_fns::clients::tests::client_details_keep_catalog_identity_but_omit_member_billing ... ok1144test server_fns::clients::tests::client_invoices_keep_exact_client_scope_statuses_and_currencies ... ok1145test server_fns::clients::tests::client_invoices_hold_authority_until_the_read_finishes ... ok1146test jobs::tests::invalid_policy_cannot_enqueue_a_job_or_upload ... ok1147test server_fns::clients::tests::client_invoices_require_manager_authority_even_without_invoices ... ok1148test server_fns::clients::tests::client_invoices_reject_a_winning_concurrent_revocation ... ok1149test server_fns::clients::tests::client_summaries_follow_existing_progress_visibility_and_revoke_inactive_users ... ok1150test server_fns::clients::tests::client_summaries_keep_catalog_without_projects_and_count_archived_projects ... ok1151test server_fns::clients::tests::client_summaries_exclude_foreign_clients_and_unreadable_project_currencies ... ok1152test server_fns::clients::tests::client_summaries_reject_a_foreign_actor_even_when_client_org_is_known ... ok1153test server_fns::clients::tests::concurrent_deletion_is_not_an_unchanged_mutation ... ok1154test server_fns::clients::tests::profile_create_persists_normalized_identity_and_exact_optional_rate ... ok1155test server_fns::clients::tests::each_field_changes_once_and_preserves_inactive_status ... ok1156test server_fns::clients::tests::missing_and_foreign_clients_are_not_noops ... ok1157test server_fns::clients::tests::currency_edit_rechecks_a_concurrently_added_client_default_rate ... ok1158test jobs::outbox::tests::worker_delivers_available_events_and_stops_cleanly ... ok1159test server_fns::clients::tests::profile_saves_recheck_manager_org_and_active_actor ... ok1160test server_fns::clients::tests::profile_currency_change_without_a_rate_keeps_it_unset ... ok1161test server_fns::clients::tests::profile_noop_preserves_row_and_returns_no_update_event_signal ... ok1162test server_fns::clients::tests::profile_saves_reject_invalid_input_without_partial_writes ... ok1163test server_fns::clients::tests::profile_update_rejects_stale_rate_even_when_the_target_currency_is_unchanged ... ok1164test server_fns::clients::tests::profile_update_rechecks_authority_after_waiting_for_a_concurrent_demotion ... ok1165test server_fns::clients::tests::repeating_a_competing_deactivation_does_not_report_a_transition ... ok1166test server_fns::importers::authorization_tests::cli_job_endpoints_have_stable_registered_paths ... ok1167test server_fns::clients::tests::restoring_values_after_a_competing_edit_reports_a_change ... ok1168test 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 --nocapture1169test server_fns::importers::authorization_tests::request_bound_import_endpoints_are_not_registered ... ok1170test server_fns::importers::csv_upload::tests::csv_upload_extractor_preserves_raw_bytes ... ok1171test server_fns::importers::csv_upload::tests::csv_upload_requires_its_header_without_reading_the_body ... ok1172test server_fns::importers::tests::concurrent_api_import_returns_a_retryable_conflict ... ok1173test server_fns::clients::tests::profile_update_rechecks_financial_snapshot_after_waiting_for_a_concurrent_edit ... ok1174test server_fns::importers::tests::submission_identity_rejects_expired_future_and_non_v7_keys ... ok1175test jobs::tests::expired_lease_cannot_renew_or_commit_using_an_old_transaction_timestamp ... ok1176test server_fns::clients::tests::profile_update_requires_explicit_rate_intent_for_currency_changes ... ok1177test server_fns::clients::tests::profile_update_preserves_historical_rows_and_inactive_status ... ok1178test server_fns::clients::tests::profile_update_rejects_stale_currency_even_when_the_rate_is_still_unset ... ok1179test server_fns::clients::tests::repeating_a_competing_edit_does_not_report_a_change ... ok1180test server_fns::clients::tests::restoring_a_competing_deactivation_reports_reactivation ... ok1181test server_fns::importers::tests::csv_route_rejects_invalid_modes_and_headers_without_reading_uploads ... ok1182test server_fns::clients::tests::unchanged_activation_preserves_the_row ... ok1183test server_fns::clients::tests::unchanged_edit_preserves_the_row ... ok1184test jobs::tests::missing_csv_upload_records_error_and_requeues ... ok1185test server_fns::invoices::fee_tests::concurrent_invoices_claim_a_single_fee_once ... ok1186test server_fns::invoices::fee_tests::fee_invoice_does_not_claim_hours_or_another_clients_fee ... ok1187test server_fns::invoices::fee_tests::fee_occurrence_rejects_cross_organization_project ... ok1188test jobs::tests::submission_key_cannot_change_api_mode_or_scope ... ok1189test server_fns::invoices::fee_tests::fee_total_overflow_rolls_back_occurrences_and_invoice ... ok1190test server_fns::invoices::fee_tests::invoice_line_sources_reject_mixed_sources_and_invented_fee_quantities ... ok1191test jobs::tests::failed_csv_preview_retains_confirmed_report_through_history_and_retry ... ok1192test jobs::tests::outbox_rollback_does_not_publish_an_event ... ok1193test server_fns::invoices::fee_tests::milestones_include_unbilled_overdue_fees_but_not_future_fees ... ok1194test jobs::tests::import_adapters_reject_a_lease_from_another_organization ... ok1195test server_fns::invoices::fee_tests::monthly_fees_use_calendar_dates_and_skip_already_claimed_months ... ok1196test jobs::tests::stopped_worker_leaves_queued_jobs_unclaimed ... ok1197test server_fns::invoices::fee_tests::monthly_first_and_fifteenth_respect_partial_period_and_project_end ... ok1198test reports::privacy_tests::unauthorized_project_text_does_not_affect_export_size_limits ... ok1199test server_fns::invoices::fee_tests::removing_discount_and_billing_the_remainder_cannot_both_succeed ... ok1200test server_fns::invoices::fee_tests::prepared_fee_selection_rejects_invalid_values_and_empty_generation ... ok1201test server_fns::importers::authorization_tests::job_endpoints_enforce_session_role_and_organization ... FAILED1202test server_fns::invoices::fee_tests::discounted_fee_leaves_a_balance_and_void_releases_only_its_contribution ... ok1203test jobs::outbox::tests::plugin_failure_retries_with_the_same_event_identity ... ok1204test harvest::pagination_tests::harvest_pagination_malformed_filters_are_client_errors ... ok1205test jobs::tests::outbox_stale_claims_cannot_acknowledge_or_reschedule_delivery ... ok1206test server_fns::invoices::fee_tests::single_fee_can_be_invoiced_without_time ... ok1207test seed::tests::seed_refuses_a_second_organization_even_when_the_demo_exists ... ok1208test server_fns::invoices::preview::tests::excess_rejects_an_unrepresentable_total_even_when_the_remainder_fits ... ok1209test server_fns::invoices::preview::tests::unselected_fee_currencies_do_not_relabel_or_block_selected_charges ... ok1210test server_fns::invoices::fee_tests::void_releases_fee_identity_without_rewriting_the_original_line ... ok1211test server_fns::invoices::fee_tests::invoice_defaults_apply_to_selected_fees_without_claiming_other_projects ... ok1212test server_fns::invoices::tests::configured_fixed_fee_hours_are_not_invoiced_but_legacy_fees_are_unchanged ... ok1213test server_fns::invoices::tests::billing_cascade_agrees_across_all_four_levels_including_zero ... ok1214test reports::streaming::database_tests::a_real_database_error_interrupts_the_csv_body ... ok1215test server_fns::invoices::tests::effective_minutes_migration_preserves_historical_invoice_quantities ... ok1216test server_fns::invoices::tests::configured_project_currency_and_cost_override_keep_their_denominations ... ok1217test reports::limits::tests::bounded_invoice_limits_include_branding_and_preserve_tenant_scope ... ok1218test server_fns::invoices::tests::effective_minutes_sql_matches_domain_rounding ... ok1219test reports::limits::tests::fee_exports_preserve_absent_quantities_and_render_a_real_pdf ... ok1220test jobs::report::stream_tests::download_reports_missing_fragments_after_its_buffered_page ... ok1221test server_fns::invoices::tests::invoice_defaults_edit_rechecks_status_after_waiting_for_a_concurrent_send ... ok1222test server_fns::invoices::tests::imported_rates::imported_legacy_project_keeps_exact_rates_and_totals_on_retry ... ok1223test server_fns::invoices::fee_tests::reviewed_generation_rejects_changed_time_before_claiming_it ... ok1224test server_fns::invoices::tests::invoice_defaults_validate_all_override_fields ... ok1225test server_fns::invoices::tests::invoice_line_overflow_leaves_time_unbilled ... ok1226test jobs::tests::submission_key_cannot_change_csv_bytes_or_mode ... ok1227test server_fns::invoices::fee_tests::mixed_time_and_fee_discount_conserves_cents_without_reopening_time ... ok1228test reports::limits::tests::bounded_entries_enforce_the_row_limit_after_all_filters has been running for over 60 seconds1229test reports::limits::tests::bounded_exports_preserve_real_workbooks_and_deterministic_pdf has been running for over 60 seconds1230test server_fns::invoices::fee_tests::reviewed_generation_bills_partial_fees_and_rejects_stale_balances ... ok1231test server_fns::invoices::fee_tests::reviewed_generation_does_not_materialize_unselected_months ... ok1232test server_fns::invoices::tests::invoice_total_overflow_leaves_all_time_unbilled ... ok1233test server_fns::invoices::tests::invoice_defaults_are_invoice_owned_and_only_drafts_are_editable ... ok1234test reports::limits::tests::export_queries_are_read_only_and_have_a_database_deadline has been running for over 60 seconds1235test jobs::tests::missing_configuration_records_error_and_requeues ... ok1236test server_fns::invoices::tests::invoice_transitions_reject_invalid_states_and_foreign_organizations ... ok1237test server_fns::invoices::tests::invoiced_amounts_survive_rate_changes_and_void_uses_current_rates ... ok1238test reports::limits::tests::export_size_checks_and_reads_share_a_repeatable_read_snapshot has been running for over 60 seconds1239test jobs::tests::csv_job_persists_its_policy_with_the_upload ... ok1240test server_fns::invoices::tests::invoiced_billability_survives_later_project_changes ... ok1241test server_fns::invoices::tests::invoicing_leaves_running_time_open ... ok1242test server_fns::invoices::tests::invoicing_uses_and_freezes_effective_minutes ... ok1243test jobs::tests::cleanup_retains_retryable_uploads_and_deletes_expired_jobs ... ok1244test server_fns::invoices::tests::mixed_project_currencies_cannot_partially_create_an_invoice ... ok1245test server_fns::invoices::tests::large_invoice_and_reports_agree_without_intermediate_overflow ... ok1246test server_fns::invoices::tests::only_running_time_does_not_create_an_invoice ... ok1247test server_fns::invoices::tests::non_billable_context_produces_no_unbilled_amount_on_any_report ... ok1248test server_fns::invoices::tests::project_rate_is_used_by_invoices_reports_and_spend ... ok1249test server_fns::invoices::tests::void_reopens_time_without_stale_rounding ... ok1250test server_fns::invoices::fee_tests::zero_fee_is_invoiced_once_until_voided ... ok1251test server_fns::invoices::tests::void_waits_for_a_concurrent_payment_and_then_refuses ... ok1252test server_fns::organization::tests::each_branding_field_changes_once_including_null_and_empty ... ok1253test server_fns::organization::tests::missing_organization_is_not_an_unchanged_update ... ok1254test server_fns::organization::tests::restoring_branding_after_a_competing_edit_reports_a_change ... ok1255test server_fns::invoices::tests::selected_project_rate_modes_agree_across_billing_consumers ... ok1256test server_fns::invoices::tests::invoice_preview_keeps_time_rates_and_defaults_in_one_snapshot ... ok1257test server_fns::organization::tests::repeating_a_competing_branding_edit_does_not_report_a_change ... ok1258test server_fns::organization::tests::unchanged_branding_preserves_the_row ... ok1259test server_fns::invoices::fee_tests::invoice_status_rechecks_authority_after_waiting_for_the_invoice_lock ... ok1260test reports::limits::tests::tag_filter_applies_before_xlsx_size_checks_and_rendering has been running for over 60 seconds1261test reports::streaming::database_tests::dropping_streamed_timesheet_closes_its_database_connection ... ok1262test seed::tests::repeated_seed_preserves_every_row_and_user_edits ... ok1263test server_fns::invoices::tests::imported_rates::rejected_import_rate_does_not_poison_the_next_row_or_its_catalog_rate ... ok1264test server_fns::permissions::profile_tests::adjusted_template_reset_and_replay_after_deletion_use_explicit_intent ... ok1265test harvest::tests::imported_legacy_rates_survive_retry_in_harvest_list_and_detail ... ok1266test server_fns::invoices::fee_tests::project_fee_context_keeps_monthly_balances_separate ... ok1267test server_fns::invoices::fee_tests::reviewed_generation_requires_exact_excess_and_current_authority ... ok1268test server_fns::permissions::profile_tests::profile_command_rechecks_remaining_administrator_after_deactivation_wait ... ok1269test server_fns::permissions::profile_tests::management_schema_rejects_foreign_parents_self_links_and_duplicate_pairs ... ok1270test reports::streaming::database_tests::streamed_invoice_metadata_and_lines_share_one_snapshot ... ok1271test server_fns::invoices::tests::invoice_defaults_selection_rejects_unavailable_projects_before_claiming ... ok1272test server_fns::permissions::profile_tests::profile_command_rechecks_target_activation_before_demotion ... ok1273test server_fns::invoices::fee_tests::fee_preview_keeps_source_identity_and_reports_discounted_draft_balances ... ok1274test server_fns::permissions::profile_tests::explicit_identity_changes_and_inactive_targets_do_not_change_activation ... ok1275test server_fns::permissions::profile_tests::reduced_administrator_and_stale_person_proposals_are_rejected ... ok1276test server_fns::permissions::profile_tests::profile_command_waits_for_direct_actor_deactivation_even_on_replay ... ok1277test server_fns::permissions::profile_tests::all_grant_template_cannot_confer_identity_and_cross_command_keys_conflict ... ok1278test server_fns::invoices::tests::imported_rates::imported_task_rates_require_matching_currency_only_for_new_configured_links ... ok1279test server_fns::invoices::tests::invoice_defaults_apply_exact_adjustments_and_payment_terms ... ok1280test server_fns::permissions::profile_tests::explicit_application_and_adjustments_preserve_confirmed_grants ... ok1281test reports::streaming::database_tests::streamed_invoice_uses_stored_exact_cents_and_tenant_scoped_metadata has been running for over 60 seconds1282test server_fns::invoices::fee_tests::draft_fee_edit_requires_current_balance_and_exact_excess_confirmation ... ok1283test server_fns::permissions::profile_tests::stale_template_and_org_revision_and_exhausted_revisions_roll_back ... ok1284test server_fns::permissions::storage_tests::malformed_stored_grants_fail_without_repair ... ok1285test server_fns::permissions::profile_tests::profile_demotion_retains_surviving_administrator_until_commit ... ok1286test server_fns::invoices::tests::invoice_preview_matches_generation_without_claiming_time ... ok1287test server_fns::permissions::storage_tests::referenced_template_deletion_requires_detaching_without_grant_or_identity_loss ... ok1288test server_fns::invoices::tests::invoice_preview_requires_explicit_resolution_and_scopes_selected_projects ... ok1289test server_fns::permissions::storage_tests::storage_does_not_activate_or_infer_legacy_roles ... ok1290test server_fns::permissions::storage_tests::template_names_are_case_insensitive_and_tenant_local ... ok1291test server_fns::permissions::storage_tests::person_state_rejects_duplicates_and_foreign_users_and_templates ... ok1292test reports::limits::tests::bounded_exports_preserve_real_workbooks_and_deterministic_pdf ... ok1293test reports::limits::tests::bounded_entries_enforce_the_row_limit_after_all_filters ... ok1294test seed::tests::concurrent_init_and_seed_cannot_mix_organizations has been running for over 60 seconds1295test server_fns::permissions::template_tests::command_receipts_are_not_shared_between_administrators ... ok1296test server_fns::invoices::fee_tests::fee_preview_discount_ties_follow_source_keys_not_display_dates ... ok1297test server_fns::permissions::storage_tests::source_shape_and_revision_constraints_reject_invalid_rows ... ok1298test server_fns::permissions::profile_tests::unchanged_and_unrelated_edits_do_not_clean_up_preexisting_incompatible_links ... ok1299test seed::tests::concurrent_seed_runs_create_only_one_demo has been running for over 60 seconds1300test seed::tests::late_seed_failure_rolls_back_all_demo_data has been running for over 60 seconds1301test seed::tests::concurrent_seed_runs_create_only_one_demo ... ok1302test jobs::report::tests::upgrading_legacy_reports_preserves_errors_and_fences_old_attempts ... ok1303test server_fns::permissions::template_tests::create_canonical_retry_returns_one_historical_change ... ok1304test server_fns::invoices::fee_tests::draft_fee_edit_replaces_amount_and_preserves_source_and_retry_identity ... ok1305test server_fns::permissions::template_tests::invalid_stored_authority_and_template_grants_fail_closed ... ok1306test server_fns::invoices::tests::invoice_defaults_legacy_insert_preserves_dates_and_exact_total ... ok1307test server_fns::permissions::template_tests::malformed_assignee_aborts_all_detachments ... ok1308test server_fns::permissions::profile_tests::cancelled_profile_save_rolls_back_effects_and_releases_single_connection ... ok1309test server_fns::permissions::template_tests::revocation_winning_org_gate_denies_pending_replay_and_new_command ... ok1310test server_fns::permissions::template_tests::equivalent_names_and_invalid_confirmed_selections_roll_back ... ok1311test server_fns::permissions::profile_tests::concurrent_self_demotions_leave_one_active_explicit_administrator ... ok1312test server_fns::permissions::template_tests::template_command_waits_for_direct_actor_deactivation_on_replay ... ok1313test server_fns::permissions::template_tests::unknown_grants_and_authority_fields_cannot_deserialize_as_commands ... ok1314test reports::limits::tests::export_size_checks_and_reads_share_a_repeatable_read_snapshot ... ok1315test server_fns::project_creation::assignment_tests::finalization_reuses_catalog_and_keeps_lead_overrides_local_on_retry ... ok1316test server_fns::permissions::profile_tests::simultaneous_losses_require_exact_confirmation_preserve_history_and_never_restore_links ... ok1317test server_fns::permissions::profile_tests::existing_user_share_lock_does_not_block_profile_command ... ok1318test server_fns::project_creation::editing::tests::concurrent_edits_have_one_winner_and_association_writes_invalidate_open_forms ... ok1319test server_fns::project_creation::assignment_tests::invalid_assignment_graphs_leave_no_partial_creation_or_draft_change ... ok1320test server_fns::project_creation::editing::tests::editing_milestones_keeps_invoice_snapshots_and_fee_identities_immutable ... ok1321test server_fns::invoices::fee_tests::draft_fee_edit_serializes_retries_and_rejects_stale_revisions ... ok1322test server_fns::project_creation::editing::tests::editor_keeps_archived_selected_identities_and_nullable_overrides ... ok1323test server_fns::project_creation::editing::tests::editor_loads_legacy_values_without_fabricating_a_billing_mode_or_draft ... ok1324test server_fns::permissions::template_tests::receipts_enforce_tenant_exclusive_principal_and_request_uniqueness ... ok1325test server_fns::project_creation::editing::tests::editor_preserves_fee_schedule_and_operational_milestone_ids ... ok1326test server_fns::project_creation::editing::tests::editor_rechecks_tenant_role_and_active_status ... ok1327test server_fns::permissions::profile_tests::invalid_confirmations_and_noncanonical_grants_are_not_silently_repaired ... ok1328test server_fns::project_creation::editing::tests::editor_recovers_each_budget_scope_without_turning_absence_into_zero ... ok1329test server_fns::project_creation::editing::tests::editor_recovers_full_configuration_and_redacts_private_values_after_role_change ... ok1330test server_fns::project_creation::editing::tests::foreign_actor_cannot_save_or_retry_another_organizations_edit ... ok1331test server_fns::project_creation::editing::tests::manager_edit_preserves_private_settings_and_cannot_remove_them_indirectly ... ok1332test server_fns::project_creation::editing::tests::save_edits_the_same_legacy_project_and_never_creates_a_draft_or_configuration ... ok1333test server_fns::invoices::fee_tests::concurrent_discounted_invoice_retries_return_one_invoice ... ok1334test server_fns::project_creation::editing::tests::saves_recheck_current_authority_and_do_not_repeat_noops ... ok1335test server_fns::project_creation::editing::tests::save_updates_configured_sections_atomically_and_rejects_stale_or_invalid_edits ... ok1336test server_fns::project_creation::editing::tests::save_preserves_recorded_time_and_rejects_removing_its_task_or_person ... ok1337test server_fns::project_creation::editing::tests::task_catalog_and_graph_changes_roll_back_together_on_duplicate_resolution ... ok1338test server_fns::project_creation::tests::creation_actor_is_revalidated_inside_the_transaction ... ok1339test server_fns::project_creation::tests::billing_schema_rejects_partial_fee_schedules ... ok1340test server_fns::project_creation::tests::client_dialog_validates_details_and_persists_an_explicit_zero_rate ... ok1341test server_fns::invoices::fee_tests::invoice_preview_does_not_materialize_fees_and_preserves_released_snapshots ... ok1342test server_fns::project_creation::tests::creation_client_must_be_active_and_in_the_same_organization ... ok1343test server_fns::project_creation::tests::draft_save_retries_do_not_overwrite_a_newer_revision ... ok1344test server_fns::project_creation::tests::draft_ownership_discard_and_role_changes_are_enforced ... ok1345test server_fns::project_creation::tests::creation_options_are_scoped_bounded_and_redact_manager_costs ... ok1346test server_fns::project_creation::tests::draft_validation_preserves_incomplete_input_but_bounds_its_size ... ok1347test server_fns::project_creation::tests::final_validation_checks_invoice_defaults_and_scoped_budget_totals ... ok1348test server_fns::project_creation::tests::final_validation_preserves_exact_budgets_and_rejects_unavailable_email ... ok1349test server_fns::project_creation::tests::final_validation_requires_complete_fee_schedules_and_distinct_entities ... ok1350test server_fns::project_creation::tests::final_validation_requires_real_details_and_ignores_hidden_type_settings ... ok1351test server_fns::project_creation::tests::draft_schema_enforces_one_current_draft_per_creator ... ok1352test seed::tests::late_seed_failure_rolls_back_all_demo_data ... ok1353test server_fns::project_creation::tests::draft_schema_rejects_foreign_creator_and_completed_project ... ok1354test server_fns::project_creation::tests::draft_schema_rejects_oversize_payload_and_invalid_revision ... ok1355test server_fns::project_creation::tests::existing_projects_have_no_implicit_new_billing_configuration ... ok1356test server_fns::project_creation::tests::managers_cannot_store_administrator_notes_or_costs_in_a_draft ... ok1357test server_fns::project_creation::tests::finalization_rechecks_client_role_revision_and_rate_currency ... ok1358test server_fns::project_creation::tests::finalization_persists_task_access_and_project_only_financial_overrides ... ok1359test server_fns::project_creation::tests::invalid_task_rolls_back_project_and_keeps_the_draft ... ok1360test server_fns::project_creation::tests::finalize_is_atomic_and_repeated_submission_returns_one_project ... ok1361test server_fns::project_creation::validation::tests::assignment_rejections_identify_the_invalid_row ... ok1362test server_fns::project_creation::validation::tests::basic_rejections_identify_the_field_without_echoing_input ... ok1363test server_fns::project_creation::validation::tests::billing_rejections_identify_the_active_control ... ok1364test server_fns::project_creation::validation::tests::inactive_billing_inputs_remain_in_the_draft_without_blocking_creation ... ok1365test server_fns::project_creation::validation::tests::invoice_rejections_identify_the_field_without_echoing_input ... ok1366test server_fns::project_creation::validation::tests::milestone_rejections_target_the_invalid_row_by_identity ... ok1367test server_fns::project_creation::validation::tests::non_billable_projects_ignore_hidden_invoice_inputs ... ok1368test server_fns::project_creation::validation::tests::task_name_and_access_rejections_identify_the_invalid_row ... ok1369test server_fns::invoices::fee_tests::settled_fee_sources_remain_reviewable_without_automatic_charges ... ok1370test server_fns::project_creation::tests::selected_catalog_bounds_requests_and_excludes_inactive_people ... ok1371test server_fns::projects::bulk_tests::bulk_ids_validate_before_writes_and_normalize_duplicates ... ok1372test server_fns::project_creation::tests::missing_draft_responses_do_not_disclose_foreign_ownership ... ok1373test server_fns::project_creation::tests::selected_catalog_is_scoped_deduplicated_and_redacts_manager_costs ... ok1374test server_fns::project_creation::tests::simultaneous_draft_updates_have_one_winner ... ok1375test server_fns::project_creation::tests::selected_client_lookup_is_scoped_and_keeps_archived_identity ... ok1376test server_fns::projects::bulk_tests::bulk_accepts_one_hundred_projects_and_mixed_status_noops ... ok1377test seed::tests::concurrent_init_and_seed_cannot_mix_organizations ... ok1378test server_fns::projects::bulk_tests::bulk_database_failure_rolls_back_earlier_changes ... ok1379test server_fns::projects::bulk_tests::bulk_missing_or_foreign_project_rolls_back_earlier_changes ... ok1380test server_fns::projects::bulk_tests::bulk_reversed_overlapping_batches_finish_without_deadlock ... ok1381test server_fns::projects::bulk_tests::bulk_status_preserves_details_history_and_noop_versions ... ok1382test server_fns::invoices::fee_tests::draft_fee_edit_rejects_invalid_lines_and_current_unauthorized_actors has been running for over 60 seconds1383test server_fns::invoices::fee_tests::fee_balance_migration_allocates_discount_without_rewriting_invoice_snapshots has been running for over 60 seconds1384test server_fns::permissions::profile_tests::profile_command_retains_target_activity_through_receipt_insert ... ok1385test server_fns::projects::bulk_tests::bulk_preserves_invoiced_history_assignments_and_spend ... ok1386test server_fns::projects::mutation_tests::project::both_activation_transitions_preserve_details_and_change_once ... ok1387test server_fns::projects::mutation_tests::project::concurrent_deletion_is_rejected_by_both_mutations ... ok1388test server_fns::projects::mutation_tests::project::budgets_and_rates_distinguish_null_zero_and_normalized_values ... ok1389test server_fns::invoices::tests::invoice_defaults_conflict_rolls_back_all_claims ... ok1390test server_fns::projects::mutation_tests::project::configured_edits_recheck_settings_after_waiting_for_the_project ... ok1391test server_fns::projects::mutation_tests::project::configured_edits_preserve_non_hourly_billing ... ok1392test server_fns::projects::mutation_tests::project::configured_edits_reject_incompatible_financial_changes_atomically ... ok1393test server_fns::projects::mutation_tests::project::inactive_project_edits_preserve_identity_and_reject_implicit_migrations ... ok1394test server_fns::projects::mutation_tests::project::configured_edits_preserve_compatible_changes_and_idempotence ... ok1395test server_fns::projects::mutation_tests::project::repeating_a_competing_edit_requires_a_fresh_revision ... ok1396test server_fns::projects::mutation_tests::project::invalid_project_fields_leave_the_row_unchanged ... ok1397test server_fns::permissions::profile_tests::malformed_person_or_remaining_administrator_state_fails_closed ... ok1398test server_fns::projects::mutation_tests::project::unchanged_activation_preserves_the_row ... ok1399test server_fns::projects::mutation_tests::project::missing_and_foreign_rows_are_not_noops ... ok1400test server_fns::projects::mutation_tests::project::repeating_a_competing_deactivation_reports_no_transition ... ok1401test server_fns::projects::mutation_tests::project::restoring_a_competing_edit_does_not_overwrite_the_other_session ... ok1402test server_fns::invoices::fee_tests::project_fee_context_matches_invoice_balances_and_current_authority has been running for over 60 seconds1403test server_fns::projects::mutation_tests::project::restoring_a_competing_deactivation_reports_reactivation ... ok1404test server_fns::projects::mutation_tests::task::both_activation_transitions_preserve_details_and_change_once ... ok1405test server_fns::projects::mutation_tests::project::unchanged_edit_preserves_the_row ... ok1406test server_fns::projects::mutation_tests::task::missing_and_foreign_rows_are_not_noops ... ok1407test reports::limits::tests::tag_filter_applies_before_xlsx_size_checks_and_rendering ... ok1408test server_fns::projects::mutation_tests::task::repeating_a_competing_deactivation_reports_no_transition ... ok1409test server_fns::projects::mutation_tests::task::each_detail_field_changes_once_and_preserves_inactive_status ... ok1410test server_fns::projects::mutation_tests::task::concurrent_deletion_returns_not_found_for_both_mutations ... ok1411test server_fns::projects::mutation_tests::task::rate_edits_set_currency_without_relabelling_renames_or_noops ... ok1412test server_fns::projects::mutation_tests::task::repeating_a_competing_edit_does_not_report_a_change ... ok1413test server_fns::projects::mutation_tests::task::unchanged_activation_preserves_the_row ... ok1414test server_fns::projects::mutation_tests::task::restoring_a_competing_edit_reports_a_change ... ok1415test server_fns::projects::mutation_tests::task::restoring_a_competing_deactivation_reports_reactivation ... ok1416test server_fns::projects::mutation_tests::task::unchanged_edit_preserves_the_row ... ok1417test server_fns::invoices::fee_tests::fee_balance_migration_allocates_discount_without_rewriting_invoice_snapshots ... ok1418test server_fns::projects::privacy_tests::client_project_filter_preserves_progress_access_and_rate_redaction ... ok1419test server_fns::projects::privacy_tests::outsiders_and_inactive_viewers_have_no_project_reads ... ok1420test server_fns::projects::privacy_tests::legacy_members_retain_progress_without_new_settings ... ok1421test server_fns::projects::privacy_tests::private_progress_does_not_prevent_tracking_or_reveal_financial_fields ... ok1422test server_fns::projects::privacy_tests::revoked_membership_preserves_only_own_historical_tracking_identity ... ok1423test server_fns::projects::tests::assignments_are_scoped_to_the_viewers_organization ... ok1424test server_fns::projects::privacy_tests::project_reads_use_current_authority_and_reject_foreign_scope ... ok1425test server_fns::projects::tests::creating_a_project_task_enables_it_with_its_defaults ... ok1426test server_fns::projects::privacy_tests::project_members_and_leads_receive_progress_without_rates ... ok1427test server_fns::projects::tests::project_rate_distinguishes_inheritance_zero_and_exact_amounts ... ok1428test server_fns::projects::tests::enabling_is_tenant_scoped_even_for_existing_links_and_preserves_overrides ... ok1429test server_fns::projects::tests::enabling_tasks_rejects_incompatible_catalog_currency ... ok1430test server_fns::projects::tests::enabling_tasks_rejects_explicit_rates_unused_by_the_project ... ok1431test server_fns::projects::tests::enabling_tasks_accepts_exact_project_currency_rates_and_preserves_existing_links ... ok1432test server_fns::projects::tests::project_rate_helper_has_no_public_execute_grant ... ok1433test server_fns::projects::tests::failed_project_task_creation_leaves_no_orphan_task ... ok1434test server_fns::projects::tests::members_can_list_identities_but_not_assignment_rates ... ok1435test server_fns::projects::tests::managers_and_admins_can_read_assignment_rates ... ok1436test server_fns::projects::tests::enabling_tasks_rejects_invalid_or_wrong_currency_explicit_rates_without_linking ... ok1437test server_fns::time_entries::tests::a_limit_bounds_a_listing_on_its_own ... ok1438test server_fns::projects::tests::project_rate_sql_matches_rust_for_missing_zero_and_present_sources ... ok1439test server_fns::projects::tests::enabling_tasks_only_inherits_rates_used_by_configured_projects ... ok1440test server_fns::projects::tests::unknown_catalog_currency_requires_explicit_configured_rates_but_preserves_legacy ... ok1441test jobs::report::tests::legacy_upgrade_preserves_job_states_and_existing_archives ... ok1442test server_fns::time_entries::tests::an_unlimited_listing_needs_both_ends_of_the_range ... ok1443test server_fns::time_entries::tests::a_running_timer_cannot_be_moved_to_another_day ... ok1444test server_fns::time_entries::tests::clamps_duration_against_the_snapped_start ... ok1445test server_fns::time_entries::tests::a_reorder_rejects_foreign_missing_timed_and_duplicate_ids ... ok1446test server_fns::time_entries::tests::admin_may_log_time_without_assignment ... ok1447test server_fns::time_entries::tests::an_open_entry_can_move_into_a_day_with_locked_time ... ok1448test server_fns::time_entries::tests::assigned_member_may_log_time ... ok1449test server_fns::permissions::profile_tests::unchanged_edit_preserves_identity_source_timestamp_and_revisions ... ok1450test server_fns::time_entries::tests::concurrent_timer_starts_insert_exactly_one_entry ... ok1451test server_fns::time_entries::tests::edits_preserve_archived_time_but_cannot_override_non_billability ... ok1452test server_fns::time_entries::tests::inactive_project_cannot_accept_new_time_even_for_admin ... ok1453test server_fns::time_entries::tests::rejects_out_of_range_start ... ok1454test server_fns::time_entries::tests::snaps_unaligned_start_to_the_grid ... ok1455test server_fns::time_entries::tests::moving_locked_time_rejects_the_entire_reorder ... ok1456test server_fns::time_entries::tests::new_time_and_picker_require_a_project_task_link ... ok1457test server_fns::time_entries::tests::untimed_start_is_left_untouched ... ok1458test server_fns::time_entries::tests::submission_barrier_blocks_edits_and_cross_week_reorders ... ok1459test server_fns::time_entries::tests::submission_barrier_blocks_manual_entries_and_timer_starts ... ok1460test server_fns::time_entries::tests::new_time_and_picker_reject_inactive_or_foreign_contexts ... ok1461test server_fns::time_entries::tests::unassigned_member_is_forbidden ... ok1462test server_fns::time_entries::update_tests::competing_edit_that_restores_old_values_still_reports_a_change ... ok1463test server_fns::time_entries::tests::new_time_uses_effective_billability_for_manual_entries_and_timers ... ok1464test server_fns::time_entries::update_tests::competing_identical_edit_is_a_noop_after_the_first_commit ... ok1465test server_fns::time_entries::update_tests::concurrent_lock_or_delete_is_rechecked_before_editing ... ok1466test server_fns::time_entries::update_tests::effective_billability_noop_preserves_the_row ... ok1467test server_fns::time_entries::update_tests::each_editable_field_changes_once_including_nulls ... ok1468test server_fns::invoices::tests::invoice_preview_rejects_large_results_instead_of_truncating_them ... ok1469test server_fns::time_entries::update_tests::normalized_noop_preserves_the_row_and_updated_at ... ok1470test server_fns::time_entries::update_tests::missing_foreign_and_locked_entries_are_not_noops ... ok1471test server_fns::time_entries::update_tests::restricted_empty_task_rejects_changes_and_noop_edits ... ok1472test server_fns::time_entries::update_tests::restricted_reordering_rejects_the_whole_batch ... ok1473test server_fns::permissions::template_tests::stale_foreign_and_exhausted_revisions_never_partially_delete ... ok1474test server_fns::time_entries::update_tests::restricted_empty_task_rejects_picker_manual_and_timer_starts ... ok1475test server_fns::time_entries::update_tests::restricted_task_rejects_reschedule_and_delete ... ok1476test server_fns::time_entries::update_tests::restriction_changes_are_rechecked_before_manual_or_timer_insertion ... ok1477test server_fns::time_entries::update_tests::revoked_grant_does_not_trap_an_own_running_timer ... ok1478test server_fns::time_entries::update_tests::revoked_timer_stop_preserves_the_open_state_guard ... ok1479test server_fns::time_entries::update_tests::task_grant_revocation_committed_during_an_edit_is_rechecked ... ok1480test server_fns::users::tests::concurrency::access_changes_cannot_target_another_organization ... ok1481test server_fns::users::tests::hide_rates_clears_both_rate_fields ... ok1482test server_fns::reports::tests::manager_report_omits_groups_containing_private_project_costs ... ok1483test server_fns::users::tests::concurrency::concurrent_demotions_keep_an_active_admin ... ok1484test server_fns::users::tests::concurrency::concurrent_deactivations_keep_an_active_admin ... ok1485test server_fns::time_entries::update_tests::task_grants_allow_tracking_and_archived_history_for_every_role ... ok1486test server_fns::users::tests::concurrency::the_last_admin_cannot_be_demoted_or_deactivated ... ok1487test server_fns::users::tests::concurrency::deactivation_and_demotion_keep_an_active_admin ... ok1488test server_fns::users::tests::concurrency::demotion_and_deactivation_keep_an_active_admin ... ok1489test server_fns::users::tests::concurrency::unchanged_admin_access_is_allowed ... ok1490test server_fns::projects::details_tests::project_details_and_tags_follow_current_progress_and_private_permissions ... ok1491test server_fns::project_creation::editing::tests::editor_load_uses_current_role_across_all_billing_configurations ... ok1492test server_fns::permissions::template_tests::concurrent_creators_never_exceed_fifty_profiles ... ok1493test reports::streaming::database_tests::streamed_invoice_uses_stored_exact_cents_and_tenant_scoped_metadata ... ok1494test server_fns::permissions::storage_tests::unicode_name_migration_preserves_existing_templates ... ok1495test server_fns::invoices::fee_tests::project_fee_context_matches_invoice_balances_and_current_authority ... ok1496test server_fns::projects::details_tests::project_details_only_offer_task_rate_currency_to_current_managers ... ok1497test server_fns::permissions::storage_tests::additive_migration_preserves_populated_legacy_records ... ok1498test server_fns::permissions::template_tests::failed_audit_insert_rolls_back_creation_and_detachment ... ok1499test server_fns::permissions::template_tests::unsupported_receipt_version_fails_without_repeating_the_change ... ok1500test server_fns::permissions::profile_tests::audit_failure_rolls_back_profile_and_both_relationship_sets ... ok1501test server_fns::invoices::fee_tests::draft_fee_edit_rejects_invalid_lines_and_current_unauthorized_actors ... ok1502test server_fns::projects::details_tests::unlinked_and_private_project_tags_do_not_leak_into_filters ... ok1503test server_fns::permissions::storage_tests::concurrent_equivalent_names_create_only_one_template ... ok1504test server_fns::permissions::template_tests::delete_replay_does_not_touch_a_same_name_replacement ... ok1505test server_fns::permissions::template_tests::legacy_future_missing_foreign_and_non_admin_authority_deny ... ok1506test server_fns::permissions::template_tests::actor_share_lock_does_not_block_template_command ... ok1507test server_fns::permissions::template_tests::concurrent_exact_retry_creates_one_receipt_without_changing_people ... ok1508test harvest::pagination_tests::harvest_pagination_catalog_links_preserve_filters_and_break_name_ties ... ok1509test server_fns::permissions::template_tests::template_command_overrides_readonly_defaults_and_keeps_stricter_timeouts ... ok1510test server_fns::permissions::profile_tests::recreated_relationship_invalidates_waiting_confirmation_without_partial_removal ... ok1511test server_fns::permissions::storage_tests::unicode_name_collision_rolls_back_migration_without_changing_profiles ... ok1512test server_fns::permissions::profile_tests::canonical_actor_policy_tenant_and_target_checks_precede_mutation has been running for over 60 seconds1513test server_fns::reports::tests::filters_and_renames_keep_report_identity_and_totals ... ok1514test server_fns::permissions::profile_tests::last_active_administrator_cannot_be_demoted_or_replaced_by_equivalent_grants has been running for over 60 seconds1515test server_fns::permissions::profile_tests::profile_command_overrides_readonly_defaults_locally has been running for over 60 seconds1516test server_fns::permissions::profile_tests::read_only_retention_and_explicit_keep_project_access_preserve_independent_person_losses has been running for over 60 seconds1517test reports::limits::tests::export_queries_are_read_only_and_have_a_database_deadline ... ok1518test server_fns::permissions::profile_tests::revocation_winning_gate_denies_new_and_replayed_changes has been running for over 60 seconds1519test server_fns::project_creation::import_tests::imported_catalog_rate_cannot_be_relabelled_as_workspace_currency ... ok1520test server_fns::reports::tests::same_names_keep_separate_groups_for_every_dimension ... ok1521test server_fns::permissions::profile_tests::read_only_retention_and_explicit_keep_project_access_preserve_independent_person_losses ... ok1522test server_fns::reports::tests::report_uses_current_active_actor_and_tenant_for_every_filter ... ok1523test jobs::tests::expired_final_attempt_fails_without_claiming_again ... ok1524test harvest::pagination_tests::harvest_pagination_time_entries_keep_the_filtered_set_and_date_ties ... ok1525test server_fns::permissions::storage_tests::person_grants_and_identity_round_trip_independently_of_source ... ok1526test server_fns::permissions::profile_tests::last_active_administrator_cannot_be_demoted_or_replaced_by_equivalent_grants ... ok1527test server_fns::permissions::profile_tests::profile_command_overrides_readonly_defaults_locally ... ok1528test server_fns::project_creation::import_tests::imports_preserve_finalized_project_configuration_and_restricted_access ... ok1529test server_fns::reports::tests::shared_person_and_task_are_partitioned_by_currency ... ok1530test server_fns::reports::tests::tag_filters_keep_report_dimensions_and_details_in_sync ... ok1531test server_fns::permissions::template_tests::delete_preserves_adjusted_grants_identity_and_business_rows ... ok1532test server_fns::permissions::profile_tests::revocation_winning_gate_denies_new_and_replayed_changes ... ok1533test server_fns::permissions::profile_tests::canonical_actor_policy_tenant_and_target_checks_precede_mutation ... ok15341535failures:15361537---- importers::harvest::engine_tests::csv_streaming::durable_csv_reclaimed_lease_cannot_commit_the_next_batch stdout ----15381539thread 'importers::harvest::engine_tests::csv_streaming::durable_csv_reclaimed_lease_cannot_commit_the_next_batch' (2200) panicked at crates/horae/src/importers/harvest/engine_tests/csv_streaming.rs:404:18:1540called `Result::unwrap()` on an `Err` value: Elapsed(())1541note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace15421543---- server_fns::importers::authorization_tests::job_endpoints_enforce_session_role_and_organization stdout ----1544Request ID: 01a1169d-238a-7510-abed-ea3b43c1eed21545Request ID: 01a1169d-238f-7522-addb-9306139f9e221546Request ID: 01a1169d-23b0-7da0-835f-75cf05d812661547Request ID: 01a1169d-23b3-7cd0-9fbe-5031d12d3d7315481549thread 'server_fns::importers::authorization_tests::job_endpoints_enforce_session_role_and_organization' (4861) panicked at crates/horae/src/server_fns/importers/authorization_tests/cli.rs:75:13:1550assertion `left == right` failed: ["import", "harvest-csv", "/build/.tmpLddB5n/source.csv", "--dry-run"]: {"error":{"category":"indeterminate_submission","message":"Submission acknowledgement unavailable; resubmit identical input with the same request ID"},"operation":"import.harvest-csv","outcome":"error","request_id":"01a1169d-23b3-7cd0-9fbe-5031d12d3d73","version":1}1551 left: 61552 right: 1155315541555failures:1556 importers::harvest::engine_tests::csv_streaming::durable_csv_reclaimed_lease_cannot_commit_the_next_batch1557 server_fns::importers::authorization_tests::job_endpoints_enforce_session_role_and_organization15581559test result: FAILED. 874 passed; 2 failed; 11 ignored; 0 measured; 0 filtered out; finished in 195.90s15601561error: test failed, to rerun pass `-p horae --bin horae`