[INFO] fetching crate contribution-showcase 0.4.1...
[INFO] testing contribution-showcase-0.4.1 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate contribution-showcase 0.4.1 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate contribution-showcase 0.4.1
[INFO] finished tweaking crates.io crate contribution-showcase 0.4.1
[INFO] tweaked toml for crates.io crate contribution-showcase 0.4.1 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate contribution-showcase 0.4.1 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate contribution-showcase 0.4.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c
[INFO] running `Command { std: "docker" "start" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling winnow v1.0.2
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]    Compiling toml_datetime v1.1.1+spec-1.1.0
[INFO] [stderr]    Compiling serde_spanned v1.1.1
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling toml v1.1.2+spec-1.1.0
[INFO] [stderr]    Compiling clap v4.6.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling contribution-showcase v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 40.62s
[INFO] running `Command { std: "docker" "inspect" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling contribution-showcase v0.4.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 20.43s
[INFO] running `Command { std: "docker" "inspect" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.15s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/build/contribution-showcase/8adacfb99f5f45e4/out/contribution_showcase-8adacfb99f5f45e4)
[INFO] [stdout] 
[INFO] [stdout] running 220 tests
[INFO] [stdout] test collector::tests::test_apply_filters_date_range ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_excludes_hash ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_no_filters ... ok
[INFO] [stdout] test collector::tests::test_all_zero_timeline_no_division_by_zero ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_retains_all_when_exclude_hashes_none ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_retains_all_when_no_matching_hash ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_short_prefix_does_not_exclude ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_type_filter ... ok
[INFO] [stdout] test collector::tests::test_avg_daily_lines_multiple_dates ... ok
[INFO] [stdout] test collector::tests::test_avg_daily_lines_no_commits ... ok
[INFO] [stdout] test collector::tests::test_avg_daily_lines_same_date ... ok
[INFO] [stdout] test collector::tests::test_build_project_data_filters_by_project ... ok
[INFO] [stdout] test collector::tests::test_build_project_data_counts_proposals ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_13_days ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_14_days ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_14_days_inclusive_daily ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_proposals_date_range ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_14_months_stays_monthly ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_14_quarters_stays_quarterly ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_14_weeks_to_weekly ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_15_days_to_weekly ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_retains_all_when_exclude_hashes_empty_vec ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_60_days ... ok
[INFO] [stdout] test collector::tests::test_all_zero_type_breakdown_no_division_by_zero ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_61_days ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_15_months_to_quarterly ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_custom_threshold_7_escalates_daily_to_weekly ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_15_quarters_to_yearly ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_boundary_15_weeks_to_monthly ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_iso_week_year_boundary_weekly ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_custom_threshold_7_escalates_weekly_to_monthly ... ok
[INFO] [stdout] test collector::tests::test_apply_filters_date_range_inclusive ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_daily_granularity ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_monthly_granularity ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_quarterly_granularity ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_empty_commits ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_quarterly_contiguous_with_gaps ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_iso_week_year_boundary ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_single_day ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_type_lines_gap_bucket_empty ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_weekly_granularity ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_yearly_granularity ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_type_lines_multiple_types ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_type_lines_single_type ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_type_lines_zero_lines_omitted ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_weekly_aggregation ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_yearly_contiguous_with_gaps ... ok
[INFO] [stdout] test collector::tests::test_build_type_breakdown_single_type ... ok
[INFO] [stdout] test collector::tests::test_build_type_breakdown_empty_commits ... ok
[INFO] [stdout] test collector::tests::test_build_type_breakdown_no_duplicate_other ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_custom_threshold_21_keeps_daily_longer ... ok
[INFO] [stdout] test collector::tests::test_build_timeline_custom_threshold_1_forces_yearly ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_nonexistent_path ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_path_without_git ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_parses_shortstat ... ok
[INFO] [stdout] test collector::tests::test_collect_metrics_auto_discovery_without_explicit_path ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_invalid_branch ... ok
[INFO] [stdout] test collector::tests::test_collect_metrics_known_framework_regression ... ok
[INFO] [stdout] test collector::tests::test_collect_metrics_no_framework_no_coverage_file ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_all_branches_when_no_branch ... ok
[INFO] [stdout] test collector::tests::test_collect_metrics_phase3_discovers_preexisting_cobertura_xml ... ok
[INFO] [stdout] test collector::tests::test_collect_metrics_coverage_command_fails_no_output ... ok
[INFO] [stdout] test collector::tests::test_collect_proposals_empty_archive ... ok
[INFO] [stdout] test collector::tests::test_collect_metrics_phase1_runs_coverage_command_without_framework ... ok
[INFO] [stdout] test collector::tests::test_collect_metrics_phase3_discovers_preexisting_istanbul_json ... ok
[INFO] [stdout] test collector::tests::test_collect_proposals_no_archive_dir ... ok
[INFO] [stdout] test collector::tests::test_collect_proposals_non_date_prefixed_skipped ... ok
[INFO] [stdout] test collector::tests::test_collect_proposals_missing_tasks_md ... ok
[INFO] [stdout] test collector::tests::test_collect_proposals_non_directory_entries_skipped ... ok
[INFO] [stdout] test collector::tests::test_collect_proposals_sorting_most_recent_first ... ok
[INFO] [stdout] test collector::tests::test_collect_proposals_with_valid_entries ... ok
[INFO] [stdout] test collector::tests::test_contains_wiki_but_not_suffix_not_overridden ... ok
[INFO] [stdout] test collector::tests::test_collect_proposals_missing_openspec_yaml ... ok
[INFO] [stdout] test collector::tests::test_count_test_cases_deno_test ... ok
[INFO] [stdout] test collector::tests::test_count_test_cases_cargo ... ok
[INFO] [stdout] test collector::tests::test_count_test_cases_js ... ok
[INFO] [stdout] test collector::tests::test_count_test_cases_unknown_framework ... ok
[INFO] [stdout] test collector::tests::test_count_test_cases_python ... ok
[INFO] [stdout] test collector::tests::test_count_test_cases_pytest_async ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_wiki_override ... ok
[INFO] [stdout] test collector::tests::test_count_test_cases_vitest_each ... ok
[INFO] [stdout] test collector::tests::test_count_test_cases_vitest_excludes_comments ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_cargo ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_deno_json_with_vitest ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_deno_json_without_vitest ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_deno_jsonc_with_vitest ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_jest ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_basic ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_none ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_priority_pytest_over_cargo ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_priority_cargo_over_deno ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_priority_cargo_over_vitest ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_priority_vitest_over_jest ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_pyproject_without_pytest ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_pytest ... ok
[INFO] [stdout] test collector::tests::test_discover_coverage_auto_neither_found ... ok
[INFO] [stdout] test collector::tests::test_discover_coverage_explicit_nonexistent_file ... ok
[INFO] [stdout] test collector::tests::test_discover_coverage_auto_fallback_to_istanbul ... ok
[INFO] [stdout] test collector::tests::test_discover_coverage_auto_fallback ... ok
[INFO] [stdout] test collector::tests::test_discover_coverage_none ... ok
[INFO] [stdout] test collector::tests::test_discover_coverage_with_explicit_json_path ... ok
[INFO] [stdout] test collector::tests::test_discover_coverage_with_explicit_xml_path ... ok
[INFO] [stdout] test collector::tests::test_discover_coverage_explicit_unsupported_extension ... ok
[INFO] [stdout] test collector::tests::test_discover_test_files_cargo ... ok
[INFO] [stdout] test collector::tests::test_discover_test_files_pytest ... ok
[INFO] [stdout] test collector::tests::test_discover_test_files_skips_excluded_dirs ... ok
[INFO] [stdout] test collector::tests::test_discover_test_files_vitest ... ok
[INFO] [stdout] test collector::tests::test_is_excluded_dir_all_excluded ... ok
[INFO] [stdout] test collector::tests::test_is_excluded_dir_non_excluded ... ok
[INFO] [stdout] test collector::tests::test_is_test_file_cargo_patterns ... ok
[INFO] [stdout] test collector::tests::test_is_test_file_deno_test_patterns ... ok
[INFO] [stdout] test collector::tests::test_non_wiki_project_not_overridden ... ok
[INFO] [stdout] test collector::tests::test_detect_framework_vitest ... ok
[INFO] [stdout] test collector::tests::test_is_test_file_unknown_framework ... ok
[INFO] [stdout] test collector::tests::test_parse_conventional_commit_breaking ... ok
[INFO] [stdout] test collector::tests::test_is_test_file_vitest_jest_patterns ... ok
[INFO] [stdout] test collector::tests::test_parse_conventional_commit_breaking_with_scope ... ok
[INFO] [stdout] test collector::tests::test_parse_cobertura_xml ... ok
[INFO] [stdout] test collector::tests::test_parse_conventional_commit_empty_string ... ok
[INFO] [stdout] test collector::tests::test_parse_conventional_commit_feat ... ok
[INFO] [stdout] test collector::tests::test_parse_conventional_commit_non_matching ... ok
[INFO] [stdout] test collector::tests::test_parse_conventional_commit_with_scope ... ok
[INFO] [stdout] test collector::tests::test_parse_istanbul_json ... ok
[INFO] [stdout] test collector::tests::test_parse_conventional_commit_merge ... ok
[INFO] [stdout] test collector::tests::test_parse_shortstat_whitespace_only ... ok
[INFO] [stdout] test collector::tests::test_parse_shortstat_empty_string ... ok
[INFO] [stdout] test collector::tests::test_project_top_types_lines_semantics ... ok
[INFO] [stdout] test collector::tests::test_shortstat_parsing_both ... ok
[INFO] [stdout] test collector::tests::test_shortstat_parsing_deletions_only ... ok
[INFO] [stdout] test collector::tests::test_parse_conventional_commit_empty_scope ... ok
[INFO] [stdout] test collector::tests::test_is_test_file_pytest_patterns ... ok
[INFO] [stdout] test collector::tests::test_project_top_types_truncates_to_five ... ok
[INFO] [stdout] test collector::tests::test_uppercase_wiki_not_overridden ... ok
[INFO] [stdout] test collector::tests::test_wiki_override_already_docs_stays_docs ... ok
[INFO] [stdout] test collector::tests::test_wiki_override_feat_becomes_docs ... ok
[INFO] [stdout] test collector::tests::test_wiki_override_non_conventional_becomes_docs ... ok
[INFO] [stdout] test collector::tests::test_zero_stat_commits_contribute_zero_to_timeline ... ok
[INFO] [stdout] test collector::tests::test_shortstat_parsing_insertions_only ... ok
[INFO] [stdout] test collector::tests::test_type_breakdown_ordering_descending_by_lines ... ok
[INFO] [stdout] test config::tests::test_absolute_project_path_is_preserved ... ok
[INFO] [stdout] test config::tests::test_branch_validation_rejects_revspec_operators ... ok
[INFO] [stdout] test collector::tests::test_type_label_unknown_fallback ... ok
[INFO] [stdout] test config::tests::test_config_exclude_hashes_absent_is_none ... ok
[INFO] [stdout] test config::tests::test_config_exclude_hashes_parsed ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_author_filter ... ok
[INFO] [stdout] test collector::tests::test_type_label_known_types ... ok
[INFO] [stdout] test config::tests::test_config_load_minimal ... ok
[INFO] [stdout] test config::tests::test_config_output_path_default ... ok
[INFO] [stdout] test config::tests::test_config_output_path_custom ... ok
[INFO] [stdout] test config::tests::test_config_output_path_with_title ... ok
[INFO] [stdout] test config::tests::test_config_project_url_absent ... ok
[INFO] [stdout] test config::tests::test_config_timeline_max_buckets_absent ... ok
[INFO] [stdout] test config::tests::test_config_timeline_max_buckets_present ... ok
[INFO] [stdout] test config::tests::test_config_timeline_max_buckets_zero_rejected ... ok
[INFO] [stdout] test config::tests::test_date_validation_none_passes ... ok
[INFO] [stdout] test config::tests::test_date_validation_since_after_until ... ok
[INFO] [stdout] test config::tests::test_date_validation_valid ... ok
[INFO] [stdout] test config::tests::test_date_validation_invalid_semantic_date ... ok
[INFO] [stdout] test config::tests::test_date_validation_non_zero_padded ... ok
[INFO] [stdout] test config::tests::test_project_path_resolves_relative_to_config_parent ... ok
[INFO] [stdout] test config::tests::test_sanitize_cjk_only_fallback ... ok
[INFO] [stdout] test config::tests::test_sanitize_consecutive_special_chars ... ok
[INFO] [stdout] test config::tests::test_sanitize_leading_trailing_hyphens ... ok
[INFO] [stdout] test config::tests::test_sanitize_none ... ok
[INFO] [stdout] test config::tests::test_sanitize_normal_ascii ... ok
[INFO] [stdout] test config::tests::test_sanitize_special_chars ... ok
[INFO] [stdout] test tests::test_bare_invocation_returns_help_error ... ok
[INFO] [stdout] test config::tests::test_config_project_url_present ... ok
[INFO] [stdout] test config::tests::test_sanitize_empty_string ... ok
[INFO] [stdout] test config::tests::test_sanitize_mixed ... ok
[INFO] [stdout] test tests::test_cli_timeline_max_buckets_default_none ... ok
[INFO] [stdout] test config::tests::test_branch_validation_rejects_dash_prefix ... ok
[INFO] [stdout] test tests::test_cli_timeline_max_buckets_parsed ... ok
[INFO] [stdout] test tests::test_cli_timeline_max_buckets_rejects_zero ... ok
[INFO] [stdout] test config::tests::test_date_validation_invalid_format ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_branch_filter ... ok
[INFO] [stdout] test tests::test_cli_timeline_max_buckets_override_applied ... ok
[INFO] [stdout] test tests::test_escape_angle_brackets_and_ampersand ... ok
[INFO] [stdout] test collector::tests::test_collect_git_commits_multiple ... ok
[INFO] [stdout] test tests::test_escape_html_ampersand ... ok
[INFO] [stdout] test tests::test_escape_html_angle_brackets ... ok
[INFO] [stdout] test tests::test_escape_html_double_quotes ... ok
[INFO] [stdout] test tests::test_escape_html_empty_string ... ok
[INFO] [stdout] test tests::test_escape_html_plain_text ... ok
[INFO] [stdout] test tests::test_escape_line_separator_chars ... ok
[INFO] [stdout] test tests::test_escape_script_close_tag ... ok
[INFO] [stdout] test tests::test_escaped_json_is_valid_js ... ok
[INFO] [stdout] test tests::test_generate_subcommand_parses_defaults ... ok
[INFO] [stdout] test tests::test_escape_html_combined_characters ... ok
[INFO] [stdout] test tests::test_escape_html_title_breakout_payload ... ok
[INFO] [stdout] test tests::test_cli_comma_parsing_handles_whitespace_and_empty ... ok
[INFO] [stdout] test tests::test_cli_title_affects_default_output_filename ... FAILED
[INFO] [stdout] test tests::test_cli_title_overrides_config_and_appears_in_html ... ok
[INFO] [stdout] test tests::test_cli_exclude_hashes_excludes_commits ... ok
[INFO] [stdout] test tests::test_init_refuses_overwrite ... ok
[INFO] [stdout] test tests::test_init_subcommand_parses_custom_output ... ok
[INFO] [stdout] test tests::test_init_writes_template_to_custom_path ... ok
[INFO] [stdout] test tests::test_init_writes_template_to_default_path ... ok
[INFO] [stdout] test tests::test_old_flat_invocation_rejected ... ok
[INFO] [stdout] test tests::test_parse_csv_list_lowercases_and_trims ... ok
[INFO] [stdout] test tests::test_generated_html_contains_commit_trends_heading ... ok
[INFO] [stdout] test tests::test_generated_html_contains_type_lines_in_json ... ok
[INFO] [stdout] test tests::test_cli_types_filters_commits ... ok
[INFO] [stdout] test tests::test_generated_html_contains_timeline_tooltip ... ok
[INFO] [stdout] test tests::test_generated_html_title_escapes_special_chars ... ok
[INFO] [stdout] test tests::test_run_generate_with_author_filter ... ok
[INFO] [stdout] test tests::test_generated_html_title_defaults_when_omitted ... ok
[INFO] [stdout] test tests::test_run_generate_basic ... ok
[INFO] [stdout] test tests::test_run_generate_with_date_filters ... ok
[INFO] [stdout] test tests::test_generated_html_title_matches_config ... ok
[INFO] [stdout] test tests::test_run_init_custom_path_returns_ok ... ok
[INFO] [stdout] test tests::test_run_generate_with_javascript_url_is_safe ... ok
[INFO] [stdout] test tests::test_run_init_default_path_returns_ok ... ok
[INFO] [stdout] test tests::test_template_contains_required_sections ... ok
[INFO] [stdout] test tests::test_template_parses_as_valid_config ... ok
[INFO] [stdout] test tests::test_run_generate_with_special_chars_in_url ... ok
[INFO] [stdout] test tests::test_run_generate_with_output_override ... ok
[INFO] [stdout] test tests::test_run_generate_with_empty_url ... ok
[INFO] [stdout] test tests::test_run_generate_with_project_url ... ok
[INFO] [stdout] test tests::test_run_generate_without_project_url ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_cli_title_affects_default_output_filename stdout ----
[INFO] [stdout] Scanning repositories...
[INFO] [stdout] Summary: 1 commits across 1 repos, 0 OpenSpec proposals
[INFO] [stdout] 
[INFO] [stdout] thread 'tests::test_cli_title_affects_default_output_filename' (862) panicked at src/main.rs:1122:28:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Read-only file system (os error 30)
[INFO] [stdout] 
[INFO] [stdout] Stack backtrace:
[INFO] [stdout]    0: <anyhow::Error as core::convert::From<core::io::error::Error>>::from
[INFO] [stdout]    1: contribution_showcase::run_generate
[INFO] [stdout]    2: <contribution_showcase::tests::test_cli_title_affects_default_output_filename::{closure#0} as core::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]    3: test::__rust_begin_short_backtrace::<core::result::Result<(), alloc::string::String>, fn() -> core::result::Result<(), alloc::string::String>>
[INFO] [stdout]    4: test::run_test::{closure#0}
[INFO] [stdout]    5: std::sys::backtrace::__rust_begin_short_backtrace::<test::run_test::{closure#1}, ()>
[INFO] [stdout]    6: <std::thread::lifecycle::spawn_unchecked<test::run_test::{closure#1}, ()>::{closure#1} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]    7: <std::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]    8: <unknown>
[INFO] [stdout]    9: clone
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x56f42e31b8c1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x56f42e332a6a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x56f42e3202ac - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x56f42e2f4bf6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x56f42e312ab9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x56f42e24c2e0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x56f42e312c72 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x56f42e2f4ca2 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x56f42e2ed0d9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x56f42e2f59bd - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x56f42e3331dc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x56f42e332fb2 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x56f42e1d131c - <contribution_showcase[bc1c6ecba806eac7]::tests::test_cli_title_affects_default_output_filename::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x56f42e23f72b - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   14:     0x56f42e24c905 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   15:     0x56f42e2461f4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x56f42e24f992 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x56f42e31a8cf - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x702a52994dfa - <unknown>
[INFO] [stdout]   19:     0x702a52a283d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::test_cli_title_affects_default_output_filename
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 219 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.63s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin contribution-showcase`
[INFO] running `Command { std: "docker" "inspect" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c", kill_on_drop: false }`
[INFO] [stdout] fce36f066eb746bb41bc8a4643577ce26b33b800b8a6fffa7e7b807acc47b20c
