[INFO] fetching crate seattrellis-server 2.0.1...
[INFO] testing seattrellis-server-2.0.1 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate seattrellis-server 2.0.1 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate seattrellis-server 2.0.1
[INFO] finished tweaking crates.io crate seattrellis-server 2.0.1
[INFO] tweaked toml for crates.io crate seattrellis-server 2.0.1 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate seattrellis-server 2.0.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 seattrellis-server 2.0.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] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:60:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | homepage = "https://github.com/FrankFu916/seattrellis"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 | repository = "https://github.com/FrankFu916/seattrellis"
[INFO] [stderr]    |              -------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `seattrellis-server` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5
[INFO] running `Command { std: "docker" "start" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5", 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" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5" "/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" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5", 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" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:60:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | homepage = "https://github.com/FrankFu916/seattrellis"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 | repository = "https://github.com/FrankFu916/seattrellis"
[INFO] [stderr]    |              -------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `seattrellis-server` (manifest) generated 1 warning
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling futures-core v0.3.33
[INFO] [stderr]    Compiling ref-cast v1.0.26
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling mio v1.2.2
[INFO] [stderr]    Compiling zip v2.4.2
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling serde_derive_internals v0.30.0
[INFO] [stderr]    Compiling tokio-macros v2.7.2
[INFO] [stderr]    Compiling ref-cast-impl v1.0.26
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling core_maths v0.1.1
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling futures-channel v0.3.33
[INFO] [stderr]    Compiling ttf-parser v0.25.1
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling futures-sink v0.3.33
[INFO] [stderr]    Compiling futures-task v0.3.33
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling zopfli v0.8.3
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling http-body-util v0.1.4
[INFO] [stderr]    Compiling futures-util v0.3.33
[INFO] [stderr]    Compiling seattrellis-server v2.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling tokio v1.53.1
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling schemars_derive v1.2.2
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling png v0.17.16
[INFO] [stderr]    Compiling fontdue v0.9.4
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling seattrellis_core v2.0.0
[INFO] [stderr]    Compiling schemars v1.2.2
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling tokio-util v0.7.19
[INFO] [stderr]    Compiling seattrellis-schema v2.0.0
[INFO] [stderr]    Compiling seattrellis-rules v2.0.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling seattrellis-domain v2.0.0
[INFO] [stderr]    Compiling seattrellis-export v2.0.0
[INFO] [stderr]    Compiling seattrellis-io v2.0.0
[INFO] [stderr]    Compiling seattrellis-application v2.0.0
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 10s
[INFO] running `Command { std: "docker" "inspect" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5", 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" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5" "/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] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:60:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | homepage = "https://github.com/FrankFu916/seattrellis"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 | repository = "https://github.com/FrankFu916/seattrellis"
[INFO] [stderr]    |              -------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `seattrellis-server` (manifest) generated 1 warning
[INFO] [stderr]    Compiling futures-task v0.3.33
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling futures-io v0.3.33
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling futures-channel v0.3.33
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling ipnet v2.12.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling borrow-or-share v0.2.4
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling uuid v1.24.0
[INFO] [stderr]    Compiling fluent-uri v0.3.2
[INFO] [stderr]    Compiling futures-util v0.3.33
[INFO] [stderr]    Compiling hyper v1.11.0
[INFO] [stderr]    Compiling email_address v0.2.9
[INFO] [stderr]    Compiling bytecount v0.6.9
[INFO] [stderr]    Compiling num-cmp v0.1.0
[INFO] [stderr]    Compiling num-bigint v0.4.8
[INFO] [stderr]    Compiling num-iter v0.1.46
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling uuid-simd v0.8.0
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling num v0.4.3
[INFO] [stderr]    Compiling fraction v0.15.4
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling fancy-regex v0.14.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling referencing v0.30.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling axum v0.8.9
[INFO] [stderr]    Compiling tower-http v0.6.11
[INFO] [stderr]    Compiling reqwest v0.12.28
[INFO] [stderr]    Compiling jsonschema v0.30.0
[INFO] [stderr]    Compiling seattrellis-server v2.0.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 03s
[INFO] running `Command { std: "docker" "inspect" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5", 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" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:60:12
[INFO] [stderr]    |
[INFO] [stderr] 60 | homepage = "https://github.com/FrankFu916/seattrellis"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 66 | repository = "https://github.com/FrankFu916/seattrellis"
[INFO] [stderr]    |              -------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `seattrellis-server` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/seattrellis-server/a7b3e7a7889edb83/out/seattrellis_server-a7b3e7a7889edb83)
[INFO] [stdout] 
[INFO] [stdout] running 117 tests
[INFO] [stdout] test embedded_web::tests::unknown_assets_are_not_returned ... ok
[INFO] [stdout] test embedded_web::tests::production_workbench_is_embedded ... ok
[INFO] [stdout] test http::tests::normalize_request_path_collapses_only_slashes ... ok
[INFO] [stdout] test http::tests::missing_bearer_is_401 ... ok
[INFO] [stdout] test http::tests::double_slashed_file_read_requires_bearer ... ok
[INFO] [stdout] test http::tests::response_conversion_preserves_headers_and_status ... ok
[INFO] [stdout] test http::tests::session_bootstrap_issues_token_without_bearer ... ok
[INFO] [stdout] test http::tests::triple_slashed_session_endpoint_never_issues_a_token ... ok
[INFO] [stdout] test http::tests::double_slashed_api_health_requires_bearer ... ok
[INFO] [stdout] test http::tests::cross_origin_post_is_rejected ... ok
[INFO] [stdout] test http::tests::split_host_port_handles_brackets_and_bare_hosts ... ok
[INFO] [stdout] test http::tests::dot_segment_api_path_stays_unmatched_and_public ... ok
[INFO] [stdout] test http::tests::oversized_body_is_413 ... ok
[INFO] [stdout] test http::tests::wrong_bearer_is_401 ... ok
[INFO] [stdout] test http::tests::responses_carry_csp_frame_and_referrer_headers ... ok
[INFO] [stdout] test http::tests::wrong_port_on_host_is_rejected ... ok
[INFO] [stdout] test http::tests::wrong_host_is_rejected ... ok
[INFO] [stdout] test http::tests::static_assets_do_not_require_bearer ... ok
[INFO] [stdout] test http::tests::valid_bearer_reaches_health ... ok
[INFO] [stdout] test http::tests::adapter_dispatches_through_legacy_route ... ok
[INFO] [stdout] test http::tests::percent_encoded_dot_dot_variants_never_reach_handlers ... ok
[INFO] [stdout] test http::tests::shutdown_flag_stops_the_accept_loop ... ok
[INFO] [stdout] test server::tests::artifact_compare_rejects_self_comparison_through_path_aliases ... ok
[INFO] [stdout] test http::tests::double_slashed_api_path_with_valid_bearer_reaches_handler ... ok
[INFO] [stdout] test server::tests::artifact_compare_missing_artifact_is_clean_4xx ... ok
[INFO] [stdout] test server::tests::artifact_compare_invalid_json_is_422 ... ok
[INFO] [stdout] test server::tests::artifact_compare_missing_project_is_404 ... ok
[INFO] [stdout] test server::tests::artifact_compare_rejects_self_comparison ... ok
[INFO] [stdout] test server::tests::artifact_restore_candidate_set_writes_provenance_snapshot ... ok
[INFO] [stdout] test server::tests::artifact_compare_unsupported_kind_is_422 ... ok
[INFO] [stdout] test server::tests::artifact_restore_rejects_non_snapshot_kind ... ok
[INFO] [stdout] test server::tests::artifact_compare_full_diff_contract_and_privacy ... ok
[INFO] [stdout] test server::tests::artifact_restore_bad_request_bodies_are_400 ... ok
[INFO] [stdout] test server::tests::artifact_compare_bad_request_bodies_are_400 ... ok
[INFO] [stdout] test server::tests::artifact_restore_invalid_json_is_422 ... ok
[INFO] [stdout] test server::tests::dotdot_traversal_is_rejected ... ok
[INFO] [stdout] test server::tests::artifact_restore_missing_artifact_is_clean_4xx ... ok
[INFO] [stdout] test server::tests::artifact_compare_supports_candidate_set_and_rotation_plan_kinds ... ok
[INFO] [stdout] test server::tests::artifact_restore_rejects_rotation_plan ... ok
[INFO] [stdout] test server::tests::artifact_compare_and_restore_routes_work ... ok
[INFO] [stdout] test server::tests::artifact_restore_creates_snapshot_with_provenance_metadata ... ok
[INFO] [stdout] test server::tests::embedded_workbench_is_used_when_filesystem_root_is_missing ... ok
[INFO] [stdout] test server::tests::editing_command_validation_errors_map_to_4xx ... ok
[INFO] [stdout] test server::tests::artifact_restore_twice_never_overwrites ... ok
[INFO] [stdout] test server::tests::artifact_restore_missing_project_is_404 ... ok
[INFO] [stdout] test server::tests::export_rejects_an_edit_that_breaks_the_original_hard_rules ... ok
[INFO] [stdout] test server::tests::artifact_compare_rejects_files_outside_project_workspace ... ok
[INFO] [stdout] test server::tests::catalogs_route_returns_bilingual_catalog ... ok
[INFO] [stdout] test server::tests::draft_audit_reports_score_and_hard_summary_for_a_generated_draft ... ok
[INFO] [stdout] test server::tests::export_unknown_draft_is_404 ... ok
[INFO] [stdout] test server::tests::editor_state_responses_validate_against_published_schema ... FAILED
[INFO] [stdout] test server::tests::artifact_restore_rejects_files_outside_project_workspace ... ok
[INFO] [stdout] test server::tests::file_root_reports_the_canonical_trusted_root ... ok
[INFO] [stdout] test server::tests::frontend_hard_rules_are_resolved_and_enforced ... ok
[INFO] [stdout] test server::tests::frontend_rules_overlay_groups_reach_the_solver ... ok
[INFO] [stdout] test server::tests::frontend_custom_layout_generates ... ok
[INFO] [stdout] test server::tests::file_read_rejects_paths_outside_trusted_root_even_when_relative ... ok
[INFO] [stdout] test server::tests::file_read_rejects_absolute_traversal_and_escapes ... ok
[INFO] [stdout] test server::tests::generate_frontend_class_request_unknown_goal_is_422 ... ok
[INFO] [stdout] test server::tests::full_teacher_flow_upload_generate_edit_export ... ok
[INFO] [stdout] test server::tests::file_read_returns_utf8_roster_within_trusted_root ... ok
[INFO] [stdout] test server::tests::export_print_html_renders_dedicated_layout ... ok
[INFO] [stdout] test server::tests::file_read_rejects_missing_files_and_directories ... ok
[INFO] [stdout] test server::tests::frontend_custom_goal_requires_custom_rules ... ok
[INFO] [stdout] test server::tests::frontend_hard_rule_unknown_student_is_422 ... ok
[INFO] [stdout] test server::tests::history_snapshots_forward_fair_rotation_and_pair_data ... ok
[INFO] [stdout] test server::tests::layout_command_errors_map_to_4xx ... ok
[INFO] [stdout] test server::tests::generate_frontend_class_request_unknown_room_is_422 ... ok
[INFO] [stdout] test server::tests::generate_with_named_students_uses_keys ... ok
[INFO] [stdout] test server::tests::health_route_returns_expected_shape ... ok
[INFO] [stdout] test server::tests::generate_feasible_returns_class_response_with_editor ... ok
[INFO] [stdout] test server::tests::index_route_serves_workbench ... ok
[INFO] [stdout] test server::tests::method_not_allowed_on_api ... ok
[INFO] [stdout] test server::tests::multipart_parser_handles_realistic_browser_boundary ... ok
[INFO] [stdout] test server::tests::generate_frontend_class_request_adapts_and_creates_draft ... ok
[INFO] [stdout] test server::tests::migration_routes_preview_checks_apply_batch_restore ... FAILED
[INFO] [stdout] test server::tests::multipart_parser_handles_filename_before_name ... ok
[INFO] [stdout] test server::tests::migration_routes_validation_errors ... ok
[INFO] [stdout] test server::tests::percent_decode_roundtrips ... ok
[INFO] [stdout] test server::tests::project_routes_validation_errors ... ok
[INFO] [stdout] test server::tests::roster_upload_rejects_invalid_csv ... ok
[INFO] [stdout] test server::tests::roster_upload_rejects_missing_file_field ... ok
[INFO] [stdout] test server::tests::project_routes_list_history_privacy_pack_restore ... FAILED
[INFO] [stdout] test server::tests::roster_upload_requires_multipart_content_type ... ok
[INFO] [stdout] test server::tests::rotation_generate_rejects_unknown_room ... ok
[INFO] [stdout] test server::tests::generate_frontend_class_request_echoes_requested_goal ... ok
[INFO] [stdout] test server::tests::frontend_history_snapshots_do_not_break_generation ... ok
[INFO] [stdout] test server::tests::layout_create_validation_error_is_422 ... ok
[INFO] [stdout] test server::tests::roster_get_missing_is_404 ... ok
[INFO] [stdout] test server::tests::rules_templates_route_returns_sentence_templates ... ok
[INFO] [stdout] test server::tests::safe_join_blocks_escapes ... ok
[INFO] [stdout] test server::tests::roster_upload_preview_get_delete_flow ... ok
[INFO] [stdout] test server::tests::multipart_boundary_extraction_is_robust ... ok
[INFO] [stdout] test server::tests::layout_draft_lifecycle_create_get_command_compiled_delete ... ok
[INFO] [stdout] test server::tests::projects_recent_invalid_limit_is_422 ... ok
[INFO] [stdout] test server::tests::solve_constraint_failure_is_a_normal_domain_result ... ok
[INFO] [stdout] test server::tests::rules_compile_route_binds_slots_and_reports_errors ... ok
[INFO] [stdout] test server::tests::rotation_routes_error_mapping ... ok
[INFO] [stdout] test server::tests::percent_encoded_traversal_is_rejected ... ok
[INFO] [stdout] test server::tests::trusted_path_validation_rejects_absolute_traversal_and_drive_prefixes ... ok
[INFO] [stdout] test server::tests::solve_alias_route_works ... ok
[INFO] [stdout] test server::tests::rules_validate_route_reports_registry_diagnostics ... ok
[INFO] [stdout] test server::tests::static_asset_route_serves_file ... ok
[INFO] [stdout] test server::tests::v2_solve_invalid_input_uses_the_structured_error_envelope ... ok
[INFO] [stdout] test server::tests::v2_solve_returns_domain_status_without_creating_transport_errors ... ok
[INFO] [stdout] test server::tests::unknown_api_route_is_404_json ... ok
[INFO] [stdout] test server::tests::unknown_static_file_is_404 ... ok
[INFO] [stdout] test server::tests::solve_invalid_json_is_400 ... ok
[INFO] [stdout] test server::tests::rotation_load_twice_creates_independent_drafts ... ok
[INFO] [stdout] test server::tests::solve_invalid_request_carries_frozen_status ... ok
[INFO] [stdout] test server::tests::solve_too_many_students_is_400 ... ok
[INFO] [stdout] test server::tests::rotation_routes_save_load_preview_download ... ok
[INFO] [stdout] test server::tests::file_read_rejects_oversize_files ... ok
[INFO] [stdout] test server::tests::rotation_generate_uses_base_history_snapshots ... ok
[INFO] [stdout] test server::tests::rotation_generate_creates_multi_period_plan ... ok
[INFO] [stdout] test server::tests::generate_returns_multiple_candidates_when_requested ... ok
[INFO] [stdout] test http::tests::slow_solve_does_not_block_concurrent_health ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- server::tests::editor_state_responses_validate_against_published_schema stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'server::tests::editor_state_responses_validate_against_published_schema' (2259) panicked at src/server.rs:5260:41:
[INFO] [stdout] cannot read /opt/rustwide/workdir/../../schemas/editor-state.schema.json: No such file or directory (os error 2)
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5c0a0bc22971 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5c0a0bc3aeba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x5c0a0bc2756c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5c0a0bbf98d6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5c0a0bc18079 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x5c0a0b8666c0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x5c0a0bc183a2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5c0a0bbf9982 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5c0a0bbf2139 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5c0a0bbfab0d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x5c0a0bc3b69c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5c0a0b4957c9 - seattrellis_server[d0f19c949625986]::server::tests::editor_state_responses_validate_against_published_schema::{closure#0}
[INFO] [stdout]   12:     0x5c0a0b4bcfac - seattrellis_server[d0f19c949625986]::server::tests::editor_state_responses_validate_against_published_schema
[INFO] [stdout]   13:     0x5c0a0b4f76e9 - <seattrellis_server[d0f19c949625986]::server::tests::editor_state_responses_validate_against_published_schema::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x5c0a0b859b0b - 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]   15:     0x5c0a0b866ce5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x5c0a0b8605d4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x5c0a0b869d72 - <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]   18:     0x5c0a0bc2150f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7173dfcb7dfa - <unknown>
[INFO] [stdout]   20:     0x7173dfd4b3d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- server::tests::migration_routes_preview_checks_apply_batch_restore stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'server::tests::migration_routes_preview_checks_apply_batch_restore' (2291) panicked at src/server.rs:5940:59:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5c0a0bc22971 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5c0a0bc3aeba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x5c0a0bc2756c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5c0a0bbf98d6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5c0a0bc18079 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x5c0a0b8666c0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x5c0a0bc183a2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5c0a0bbf9982 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5c0a0bbf2139 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5c0a0bbfab0d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x5c0a0bc3b69c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5c0a0bc3b472 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x5c0a0b4b89c3 - seattrellis_server[d0f19c949625986]::server::tests::migration_routes_preview_checks_apply_batch_restore
[INFO] [stdout]   13:     0x5c0a0b4f18c9 - <seattrellis_server[d0f19c949625986]::server::tests::migration_routes_preview_checks_apply_batch_restore::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x5c0a0b859b0b - 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]   15:     0x5c0a0b866ce5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x5c0a0b8605d4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x5c0a0b869d72 - <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]   18:     0x5c0a0bc2150f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7173dfcb7dfa - <unknown>
[INFO] [stdout]   20:     0x7173dfd4b3d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- server::tests::project_routes_list_history_privacy_pack_restore stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'server::tests::project_routes_list_history_privacy_pack_restore' (2298) panicked at src/server.rs:5664:59:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5c0a0bc22971 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5c0a0bc3aeba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x5c0a0bc2756c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5c0a0bbf98d6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5c0a0bc18079 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x5c0a0b8666c0 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x5c0a0bc183a2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5c0a0bbf9982 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5c0a0bbf2139 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5c0a0bbfab0d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x5c0a0bc3b69c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5c0a0bc3b472 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x5c0a0b4b5e38 - seattrellis_server[d0f19c949625986]::server::tests::project_routes_list_history_privacy_pack_restore
[INFO] [stdout]   13:     0x5c0a0b4e8609 - <seattrellis_server[d0f19c949625986]::server::tests::project_routes_list_history_privacy_pack_restore::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x5c0a0b859b0b - 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]   15:     0x5c0a0b866ce5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x5c0a0b8605d4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x5c0a0b869d72 - <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]   18:     0x5c0a0bc2150f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7173dfcb7dfa - <unknown>
[INFO] [stdout]   20:     0x7173dfd4b3d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     server::tests::editor_state_responses_validate_against_published_schema
[INFO] [stdout]     server::tests::migration_routes_preview_checks_apply_batch_restore
[INFO] [stdout]     server::tests::project_routes_list_history_privacy_pack_restore
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 114 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5", kill_on_drop: false }`
[INFO] [stdout] 8ed81a71ecbbae235d349bdb75c45299add86678e3e3b4c2bc4c5034d34433c5
