[INFO] fetching crate moss-core 0.17.0...
[INFO] testing moss-core-0.17.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate moss-core 0.17.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate moss-core 0.17.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate moss-core 0.17.0
[INFO] tweaked toml for crates.io crate moss-core 0.17.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate moss-core 0.17.0 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 moss-core 0.17.0 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: unused build dependency `serde_json`
[INFO] [stderr]  --> Cargo.toml:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | [build-dependencies.serde_json]
[INFO] [stderr]   |                     ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `moss-core` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418
[INFO] running `Command { std: "docker" "start" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418", 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" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418" "/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" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418", 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" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused build dependency `serde_json`
[INFO] [stderr]  --> Cargo.toml:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | [build-dependencies.serde_json]
[INFO] [stderr]   |                     ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `moss-core` (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling pulldown-cmark v0.13.4
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling indexmap v2.14.2
[INFO] [stderr]    Compiling unicode-normalization v0.1.25
[INFO] [stderr]    Compiling syn v3.0.5
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling moss-core v0.17.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast/parser.rs:963:5
[INFO] [stdout]     |
[INFO] [stdout] 963 |     mut inlines: Vec<Inline>,
[INFO] [stdout]     |     ----^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 40.05s
[INFO] running `Command { std: "docker" "inspect" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418", 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" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418" "/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: unused build dependency `serde_json`
[INFO] [stderr]  --> Cargo.toml:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | [build-dependencies.serde_json]
[INFO] [stderr]   |                     ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `moss-core` (manifest) generated 1 warning
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling aho-corasick v1.1.5
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling pulldown-cmark v0.13.4
[INFO] [stderr]    Compiling moss-core v0.17.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast/parser.rs:963:5
[INFO] [stdout]     |
[INFO] [stdout] 963 |     mut inlines: Vec<Inline>,
[INFO] [stdout]     |     ----^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/ast/parser.rs:963:5
[INFO] [stdout]     |
[INFO] [stdout] 963 |     mut inlines: Vec<Inline>,
[INFO] [stdout]     |     ----^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 06s
[INFO] running `Command { std: "docker" "inspect" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418", 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" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused build dependency `serde_json`
[INFO] [stderr]  --> Cargo.toml:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | [build-dependencies.serde_json]
[INFO] [stderr]   |                     ^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `serde_json`
[INFO] [stderr] warning: `moss-core` (manifest) generated 1 warning
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/ast/parser.rs:963:5
[INFO] [stderr]     |
[INFO] [stderr] 963 |     mut inlines: Vec<Inline>,
[INFO] [stderr]     |     ----^^^^^^^
[INFO] [stderr]     |     |
[INFO] [stderr]     |     help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `moss-core` (lib) generated 1 warning (run `cargo fix --lib -p moss-core` to apply 1 suggestion)
[INFO] [stderr] warning: `moss-core` (lib test) generated 1 warning (1 duplicate)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.14s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/moss-core/fb9b68b0301a2e70/out/moss_core-fb9b68b0301a2e70)
[INFO] [stdout] 
[INFO] [stdout] running 2134 tests
[INFO] [stdout] test asset_paths::tests::hls_outputs_are_unique_so_no_rung_overwrites_another ... ok
[INFO] [stdout] test asset_paths::tests::is_ladder_source_ext_rejects_non_ladder_formats ... ok
[INFO] [stdout] test asset_paths::tests::is_scroll_shape_boundary_is_inclusive ... ok
[INFO] [stdout] test asset_paths::tests::every_converted_extension_strips_to_the_same_stem ... ok
[INFO] [stdout] test asset_paths::tests::is_ladder_source_ext_accepts_png_jpg_jpeg_webp_case_insensitively ... ok
[INFO] [stdout] test asset_paths::tests::ladder_is_strictly_ascending ... ok
[INFO] [stdout] test asset_paths::tests::is_webp_source_ext_matches_only_webp ... ok
[INFO] [stdout] test asset_paths::tests::hls_outputs_writes_one_audio_rendition_per_group_not_per_rung ... ok
[INFO] [stdout] test asset_paths::tests::ladder_rungs_capped_width_never_duplicates_base ... ok
[INFO] [stdout] test asset_paths::tests::ladder_rungs_animated_is_empty ... ok
[INFO] [stdout] test asset_paths::tests::deployed_long_edge_is_the_long_edge_cap_up_to_two_to_one ... ok
[INFO] [stdout] test asset_paths::tests::deployed_width_caps_longest_edge ... ok
[INFO] [stdout] test asset_paths::tests::ladder_rungs_below_deployed_base_only ... ok
[INFO] [stdout] test asset_paths::tests::hls_file_bytes_audio_can_be_pricier_than_video_at_the_same_duration ... ok
[INFO] [stdout] test asset_paths::tests::a_master_is_recognised_exactly_even_with_dots_in_the_name ... ok
[INFO] [stdout] test asset_paths::tests::deployed_long_edge_keeps_the_short_edge_of_an_elongated_image ... ok
[INFO] [stdout] test asset_paths::tests::hls_urls_keep_the_directory_and_drop_the_source_extension ... ok
[INFO] [stdout] test asset_paths::tests::hls_outputs_shrink_with_a_truncated_ladder ... ok
[INFO] [stdout] test asset_paths::tests::ladder_rungs_max_aspect_boundary_is_inclusive ... ok
[INFO] [stdout] test asset_paths::tests::ladder_rungs_extreme_aspect_is_empty ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_mov_uppercase ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_mov ... ok
[INFO] [stdout] test asset_paths::tests::nothing_inside_a_ladder_directory_names_the_video ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_mp4_uppercase ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_mp4_mixed_case ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_unicode_filename ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_webm_passthrough ... ok
[INFO] [stdout] test asset_paths::tests::ladder_rungs_portrait_uses_post_resize_width ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_space_in_name ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_already_mp4 ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_if_video_recognizes_uppercase_extensions ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_if_video_recognizes_lowercase_extensions ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_if_video_with_directory ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_mov_uppercase ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_mp4 ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_with_directory ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_with_directory ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_mp4_mixed ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_if_video_returns_none_for_images ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_webm ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_mp4_uppercase ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_if_video_returns_none_for_unknown ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_mov ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_already_webp ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_with_dot_prefix ... ok
[INFO] [stdout] test asset_paths::tests::test_to_mp4_with_relative_prefix ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_jpeg ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_space ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_unicode ... ok
[INFO] [stdout] test asset_paths::tests::test_to_thumb_with_relative_prefix ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_unicode_filename ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_unknown_extension_fallback ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_with_relative_prefix ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_with_directory ... ok
[INFO] [stdout] test asset_paths::tests::to_webp_rung_unknown_extension_fallback ... ok
[INFO] [stdout] test asset_paths::tests::to_webp_rung_inserts_width_suffix ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_audio_kbps_is_non_decreasing ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_with_dot_prefix ... ok
[INFO] [stdout] test asset_paths::tests::the_two_lean_rungs_share_the_lean_audio_group ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_consecutive_rungs_are_at_least_the_min_spacing_apart ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_png_uppercase ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_png ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_bottom_rung_fits_apples_cellular_ceiling ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_jpeg_uppercase ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_jpg ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_jpg_uppercase ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_space_in_name ... ok
[INFO] [stdout] test asset_paths::tests::test_to_webp_webp_uppercase ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_drops_a_clamp_that_would_duplicate_the_rung_below ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_has_exactly_two_audio_renditions ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_clamps_the_top_rung_to_the_sources_own_video_kbps ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_a_source_leaner_than_the_bottom_rung_keeps_one_clamped_rung ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_never_returns_empty_for_a_very_long_video ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_clear_the_quality_floor ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_is_the_table_ladder_when_no_bitrate_is_known ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_falls_back_to_total_kbps_when_video_kbps_is_unknown ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_keeps_the_full_ladder_for_a_short_clip ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_keeps_the_table_ladder_for_a_high_bitrate_source ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_truncates_from_the_top_and_never_to_nothing ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_budget_check_uses_the_clamped_bitrate ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_is_strictly_ascending ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_rungs_within_keeps_a_clamp_exactly_at_the_min_spacing ... ok
[INFO] [stdout] test asset_paths::tests::video_ladder_video_kbps_exceeds_audio_kbps ... ok
[INFO] [stdout] test asset_paths::tests::video_top_rung_is_the_best_the_source_can_fill ... ok
[INFO] [stdout] test asset_snapshot::tests::snapshot_default_is_empty ... ok
[INFO] [stdout] test ast::attrs::tests::class_string_joins_with_spaces ... ok
[INFO] [stdout] test asset_snapshot::tests::snapshot_has_webp_for_source_strips_extension ... ok
[INFO] [stdout] test ast::attrs::tests::empty_block ... ok
[INFO] [stdout] test ast::attrs::tests::class_with_dash_and_digit ... ok
[INFO] [stdout] test asset_snapshot::tests::snapshot_lookups ... ok
[INFO] [stdout] test ast::attrs::tests::gather_three_line_block_with_kvs ... ok
[INFO] [stdout] test ast::attrs::tests::classes_preserve_source_order ... ok
[INFO] [stdout] test ast::attrs::tests::duplicate_key_last_wins ... ok
[INFO] [stdout] test ast::attrs::tests::brace_depth_clamps_at_zero_for_orphan_close ... ok
[INFO] [stdout] test ast::attrs::tests::brace_depth_handles_escaped_quote ... ok
[INFO] [stdout] test ast::attrs::tests::gather_balanced_single_line_returns_none ... ok
[INFO] [stdout] test ast::attrs::tests::dot_with_no_name_skipped ... ok
[INFO] [stdout] test ast::attrs::tests::class_string_empty_when_no_classes ... ok
[INFO] [stdout] test ast::attrs::tests::gather_no_brace_returns_none_zero_consumed ... ok
[INFO] [stdout] test ast::attrs::tests::gather_quoted_brace_does_not_count ... ok
[INFO] [stdout] test asset_snapshot::tests::path_strip_extension_basic ... ok
[INFO] [stdout] test ast::attrs::tests::id_and_class_in_same_block ... ok
[INFO] [stdout] test ast::attrs::tests::gather_two_line_block_returns_combined ... ok
[INFO] [stdout] test ast::attrs::tests::key_cannot_start_with_a_hyphen ... ok
[INFO] [stdout] test ast::attrs::tests::gather_unclosed_returns_what_it_has ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_dotted_path_value ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_bareword_integer ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_dash_and_underscore ... ok
[INFO] [stdout] test ast::attrs::tests::get_returns_none_for_missing_key ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_negative_int_value ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_non_ascii_bareword_path_value ... ok
[INFO] [stdout] test ast::attrs::tests::brace_depth_tracks_simple_open_close ... ok
[INFO] [stdout] test ast::attrs::tests::hyphenated_key_alongside_a_plain_key ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_quoted_simple ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_path_value ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_quoted_punctuation ... ok
[INFO] [stdout] test ast::attrs::tests::brace_depth_ignores_braces_in_quoted_strings ... ok
[INFO] [stdout] test asset_snapshot::tests::snapshot_is_animated_lookup ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_ratio_value ... ok
[INFO] [stdout] test ast::attrs::tests::leading_whitespace_before_brace_ok ... ok
[INFO] [stdout] test ast::attrs::tests::key_without_equals_errors ... ok
[INFO] [stdout] test ast::attrs::tests::multi_line_attrs ... ok
[INFO] [stdout] test ast::attrs::tests::multiple_classes_space_separated ... ok
[INFO] [stdout] test ast::attrs::tests::multiple_ids_last_wins ... ok
[INFO] [stdout] test ast::attrs::tests::quoted_value_with_escaped_backslash ... ok
[INFO] [stdout] test ast::attrs::tests::quoted_value_with_escaped_quote ... ok
[INFO] [stdout] test ast::attrs::tests::scroll_flag_makes_block_non_empty ... ok
[INFO] [stdout] test ast::attrs::tests::single_class ... ok
[INFO] [stdout] test ast::attrs::tests::lonely_equals_is_invalid_token ... ok
[INFO] [stdout] test ast::attrs::tests::scroll_flag_coexists_with_width_token ... ok
[INFO] [stdout] test ast::attrs::tests::quoted_value_with_brace_inside ... ok
[INFO] [stdout] test ast::attrs::tests::single_id ... ok
[INFO] [stdout] test ast::attrs::tests::scroll_flag_does_not_become_class ... ok
[INFO] [stdout] test ast::attrs::tests::spec_gallery_cols_and_class ... ok
[INFO] [stdout] test ast::attrs::tests::multi_line_with_classes_and_kvs ... ok
[INFO] [stdout] test ast::attrs::tests::scroll_flag_with_other_attrs ... ok
[INFO] [stdout] test ast::attrs::tests::tab_separator_works ... ok
[INFO] [stdout] test ast::attrs::tests::spec_grid_ratio_cols ... ok
[INFO] [stdout] test ast::attrs::tests::spec_pure_css_region_class_and_id ... ok
[INFO] [stdout] test ast::attrs::tests::spec_hero_image_path ... ok
[INFO] [stdout] test ast::attrs::tests::spec_subscribe_form_multi_line ... ok
[INFO] [stdout] test ast::attrs::tests::unterminated_quote_errors ... ok
[INFO] [stdout] test ast::attrs::tests::multiple_kvs ... ok
[INFO] [stdout] test ast::attrs::tests::missing_open_brace_errors ... ok
[INFO] [stdout] test ast::attrs::tests::spec_buttons_classes_only ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_full_aliases_to_screen ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_page ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_body ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_does_not_become_class ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_repeated_last_wins ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_wide ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_with_explicit_dot_is_a_class_not_width ... ok
[INFO] [stdout] test ast::cells::tests::buttons_style_one_link_per_line_no_divider ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_with_kv ... ok
[INFO] [stdout] test ast::cells::tests::divider_at_end_creates_empty_last_cell ... ok
[INFO] [stdout] test ast::cells::tests::divider_with_leading_whitespace_recognized ... ok
[INFO] [stdout] test ast::cells::tests::divider_with_trailing_whitespace_recognized ... ok
[INFO] [stdout] test ast::cells::tests::empty_body_returns_one_empty_cell ... ok
[INFO] [stdout] test ast::attrs::tests::whitespace_only_block ... ok
[INFO] [stdout] test ast::cells::tests::four_plus_signs_is_not_a_divider ... ok
[INFO] [stdout] test ast::cells::tests::leading_blank_line_after_divider_is_dropped ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_with_class ... ok
[INFO] [stdout] test ast::cells::tests::multi_line_cells_preserved_verbatim ... ok
[INFO] [stdout] test ast::cells::tests::body_without_trailing_newline_works ... ok
[INFO] [stdout] test ast::attrs::tests::width_token_screen ... ok
[INFO] [stdout] test ast::cells::tests::no_divider_returns_single_cell ... ok
[INFO] [stdout] test ast::cells::tests::spec_grid_three_ratio_cells ... ok
[INFO] [stdout] test ast::cells::tests::two_dividers_three_cells ... ok
[INFO] [stdout] test ast::cells::tests::single_divider_splits_into_two_cells ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::audio_followed_by_text_in_same_paragraph_still_renders_as_audio ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::captioned_video_mid_paragraph_does_not_nest_a_figure_in_the_paragraph ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::empty_document_is_a_no_op ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::hero_overlay_wikilink_embed_is_dispatched ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::inline_wikilink_image_with_surrounding_text_is_not_dispatched ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::standard_image_is_left_alone_unless_it_is_a_typed_site_file ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::text_before_video_in_same_paragraph_still_renders_as_video ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::text_before_audio_in_same_paragraph_still_renders_as_audio ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::standard_image_of_a_typed_site_file_is_dispatched ... ok
[INFO] [stdout] test ast::cells::tests::divider_at_start_creates_empty_first_cell ... ok
[INFO] [stdout] test ast::cells::tests::empty_cells_preserved ... ok
[INFO] [stdout] test ast::cells::tests::plus_with_trailing_text_is_not_a_divider ... ok
[INFO] [stdout] test ast::cells::tests::spec_buttons_two_cells_with_divider ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::grid_cell_wikilink_embed_is_dispatched ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::lone_wikilink_embed_image_replaces_paragraph_with_inline_form ... ok
[INFO] [stdout] test ast::document::tests::slot_only_default_is_false ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::image_percent_still_promotes_to_figure ... ok
[INFO] [stdout] test ast::document::tests::slot_only_settable ... ok
[INFO] [stdout] test ast::editor_scan::tests::close_fence_inside_code_fence_does_not_close_outer_shortcode ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::video_box_sizing_keeps_video_and_dims ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::video_followed_by_text_in_same_paragraph_still_renders_as_video ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::video_percent_keeps_video_and_width ... ok
[INFO] [stdout] test ast::dispatch_wikilink_embeds::tests::video_plain_dispatches_to_video_synth ... ok
[INFO] [stdout] test ast::document::tests::document_round_trips_through_serde ... ok
[INFO] [stdout] test ast::document::tests::empty_document_has_no_blocks ... ok
[INFO] [stdout] test ast::document::tests::from_blocks_constructs_with_blocks ... ok
[INFO] [stdout] test ast::document::tests::has_shortcode_returns_false_when_empty ... ok
[INFO] [stdout] test ast::editor_scan::tests::extra_plus_signs_are_not_divider ... ok
[INFO] [stdout] test ast::editor_scan::tests::four_colon_top_level_block_is_recognized ... ok
[INFO] [stdout] test ast::editor_scan::tests::grid_with_legacy_dash_divider_is_marked_per_divider_and_document_wide ... ok
[INFO] [stdout] test ast::editor_scan::tests::dividers_only_at_top_depth ... ok
[INFO] [stdout] test ast::editor_scan::tests::divider_with_leading_whitespace_is_recognized ... ok
[INFO] [stdout] test ast::editor_scan::tests::hyphenated_names_are_recognized ... ok
[INFO] [stdout] test ast::editor_scan::tests::mixed_dividers_are_flagged_individually ... ok
[INFO] [stdout] test ast::editor_scan::tests::empty_input_returns_empty_result ... ok
[INFO] [stdout] test ast::editor_scan::tests::finds_single_grid_block_no_dividers ... ok
[INFO] [stdout] test ast::editor_scan::tests::grid_with_canonical_plus_divider ... ok
[INFO] [stdout] test ast::editor_scan::tests::mismatched_arity_close_drops_both_blocks ... ok
[INFO] [stdout] test ast::extract_hero::tests::caption_is_read_from_every_hero_syntax ... ok
[INFO] [stdout] test ast::attrs::tests::hyphenated_key_parses ... ok
[INFO] [stdout] test ast::editor_scan::tests::two_sibling_blocks ... ok
[INFO] [stdout] test ast::editor_scan::tests::unclosed_block_is_dropped ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_overlay_text_walks_typed_blocks ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_captures_image_url_from_resolved_url ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_removes_top_level_hero_from_doc ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_source_line_none_when_meta_absent ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_overlay_text_skips_leading_heading ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_finds_only_first_hero_when_multiple_present ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_returns_none_when_no_hero_present ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_image_url_none_when_no_hero_image ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_new_gallery_routes_through_synth_with_empty_snapshot ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_new_render_image_falls_back_to_bare_img ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_heading_anchor_preserves_source_line_position ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_heading_emits_anchor_when_id_present ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_hero_overlay_heading_has_no_permalink_anchor ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_with_no_top_level_hero_in_nested_block ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_escape_link_href ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_heading_emits_id ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_heading_no_anchor_when_id_absent ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_heading_without_id ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_image_with_alt ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_image_with_title ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_link_asset_newtab_injects_target ... ok
[INFO] [stdout] test ast::attrs::tests::key_starting_with_digit_is_invalid_token ... ok
[INFO] [stdout] test ast::attrs::tests::key_with_no_value_errors ... ok
[INFO] [stdout] test ast::attrs::tests::quoted_value_can_be_empty ... ok
[INFO] [stdout] test ast::attrs::tests::scroll_bare_flag_is_recognized ... ok
[INFO] [stdout] test ast::attrs::tests::unclosed_brace_errors ... ok
[INFO] [stdout] test ast::extract_hero::tests::extract_hero_passes_source_line_to_render_shortcode ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_with_snapshot_gallery_uses_snapshot_dims ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_link_external_opens_new_tab ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_link_internal_default ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_with_snapshot_render_image_emits_picture_no_figure_wrap ... ok
[INFO] [stdout] test ast::hooks::tests::escape_text_does_not_quote_double_quote ... ok
[INFO] [stdout] test ast::hooks::tests::escape_attr_handles_all_unsafe_chars ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_heading_source_line_without_id ... ok
[INFO] [stdout] test ast::hooks::tests::figure_block_screen_width_reaches_sizes ... ok
[INFO] [stdout] test ast::hooks::tests::figure_block_wide_width_reaches_sizes ... ok
[INFO] [stdout] test ast::hooks::tests::gallery_with_columns_emits_both_count_hook_and_value ... ok
[INFO] [stdout] test ast::hooks::tests::grid_cell_image_declares_cell_sizes_and_scope_pops ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_link_is_wikilink_flag_injects_class ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_link_wikilink_kind_injects_class ... ok
[INFO] [stdout] test ast::hooks::tests::grid_default_omits_data_width ... ok
[INFO] [stdout] test ast::hooks::tests::hero_default_routes_through_synth_with_hero_bare ... ok
[INFO] [stdout] test ast::hooks::tests::grid_with_width_wide_emits_data_width ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_with_snapshot_render_image_emits_title_attribute_when_present ... ok
[INFO] [stdout] test ast::hooks::tests::gallery_without_columns_omits_the_count_hook ... ok
[INFO] [stdout] test ast::hooks::tests::grid_cell_figure_own_width_beats_cell_scope ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_with_snapshot_gallery_emits_picture_for_registered_webp ... ok
[INFO] [stdout] test ast::hooks::tests::hero_overlay_inherits_snapshot_and_grid_cell_sizes_scope ... ok
[INFO] [stdout] test ast::hooks::tests::hero_default_omits_data_width ... ok
[INFO] [stdout] test ast::hooks::tests::hero_plate_class_emits_data_fit_and_fixed_sizes ... ok
[INFO] [stdout] test ast::hooks::tests::hero_with_width_wide_emits_data_width ... ok
[INFO] [stdout] test ast::hooks::tests::hero_with_snapshot_routes_through_synth_picture_wrap ... ok
[INFO] [stdout] test ast::hooks::tests::render_link_unused_url_param_compiles ... ok
[INFO] [stdout] test ast::hooks::tests::hero_with_width_screen_emits_data_width ... ok
[INFO] [stdout] test ast::hooks::tests::render_shortcode_accepts_source_line_param ... ok
[INFO] [stdout] test ast::hooks::tests::render_shortcode_grid_emits_data_source_range_when_some ... ok
[INFO] [stdout] test ast::hooks::tests::render_shortcode_grid_ratio_is_a_custom_property_not_inline_columns ... ok
[INFO] [stdout] test ast::hooks::tests::trait_default_render_image_carries_img_style ... ok
[INFO] [stdout] test ast::line_breaks::tests::code_block_content_is_untouched ... ok
[INFO] [stdout] test ast::line_breaks::tests::breaks_inside_emphasis_and_list_items_are_found ... ok
[INFO] [stdout] test ast::hooks::tests::render_shortcode_grid_omits_data_source_range_when_none ... ok
[INFO] [stdout] test ast::line_breaks::tests::paragraph_boundaries_are_not_line_breaks ... ok
[INFO] [stdout] test ast::link_card::tests::bare_authored_image_becomes_the_cover_not_the_title ... ok
[INFO] [stdout] test ast::link_card::tests::href_and_title_are_escaped ... ok
[INFO] [stdout] test ast::line_breaks::tests::soft_break_becomes_a_hard_break ... ok
[INFO] [stdout] test ast::link_card::tests::authored_image_with_heading_uses_heading_as_title ... ok
[INFO] [stdout] test ast::link_card::tests::domain_and_path_drops_query_and_fragment ... ok
[INFO] [stdout] test ast::link_card::tests::extract_domain_strips_scheme_and_www ... ok
[INFO] [stdout] test ast::link_card::tests::no_authored_content_falls_back_to_placeholder_and_domain_path_title ... ok
[INFO] [stdout] test ast::linked_embed::tests::a_heading_holding_an_embed_keeps_a_clean_anchor ... ok
[INFO] [stdout] test ast::linked_embed::tests::a_sentinel_never_reaches_a_url_or_a_title ... ok
[INFO] [stdout] test ast::linked_embed::tests::an_outer_bang_keeps_the_shape_an_image_alt ... ok
[INFO] [stdout] test ast::linked_embed::tests::author_written_private_use_text_survives ... ok
[INFO] [stdout] test ast::linked_embed::tests::embed_matches_the_same_embed_standing_alone ... ok
[INFO] [stdout] test ast::linked_embed::tests::empty_target_does_not_panic_and_is_not_a_link ... ok
[INFO] [stdout] test ast::linked_embed::tests::escaped_bang_stays_literal ... ok
[INFO] [stdout] test ast::editor_scan::tests::nested_blocks_only_emit_outer ... ok
[INFO] [stdout] test ast::editor_scan::tests::nested_four_colon_block_closes_correctly ... ok
[INFO] [stdout] test ast::editor_scan::tests::shortcode_open_after_closing_code_fence_works ... ok
[INFO] [stdout] test ast::editor_scan::tests::shortcode_open_inside_code_fence_is_inert ... ok
[INFO] [stdout] test ast::linked_embed::tests::linked_embed_is_a_link_wrapping_an_image ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_heading_anchor_escapes_id_in_href ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_heading_emits_source_line ... ok
[INFO] [stdout] test ast::hooks::tests::default_hooks_render_link_wikilink_and_newtab_compose ... ok
[INFO] [stdout] test ast::hooks::tests::gallery_default_omits_data_width ... ok
[INFO] [stdout] test ast::hooks::tests::gallery_with_width_page_emits_data_width ... ok
[INFO] [stdout] test ast::line_breaks::tests::without_apply_the_document_is_unchanged ... ok
[INFO] [stdout] test ast::math_text::tests::source_restores_delimiters ... ok
[INFO] [stdout] test ast::math_text::tests::node_parts_round_trips ... ok
[INFO] [stdout] test ast::linked_embed::tests::duplicate_heading_numbering_sees_the_restored_slug ... ok
[INFO] [stdout] test ast::linked_embed::tests::no_url_is_not_a_link ... ok
[INFO] [stdout] test ast::link_card::tests::text_only_whole_cell_gets_no_cover_placeholder ... ok
[INFO] [stdout] test ast::linked_embed::tests::source_lines_are_unmoved_by_substitution ... ok
[INFO] [stdout] test ast::math_text::tests::node_parts_rejects_non_math ... ok
[INFO] [stdout] test ast::linked_embed::tests::two_embeds_in_one_paragraph_each_get_their_own ... ok
[INFO] [stdout] test ast::linked_embed::tests::a_pothole_alias_is_alt_text ... ok
[INFO] [stdout] test ast::linked_embed::tests::inert_regions_are_untouched ... ok
[INFO] [stdout] test ast::linked_embed::tests::works_in_prose_headings_lists_and_tables ... ok
[INFO] [stdout] test ast::linked_embed::tests::matches_markdown_image_spelling ... ok
[INFO] [stdout] test ast::math_text::tests::math_source_round_trips_through_the_node ... ok
[INFO] [stdout] test ast::linked_embed::tests::multiline_link_text_is_left_to_pulldown ... ok
[INFO] [stdout] test ast::math_text::tests::non_math_passthrough_is_not_claimed ... ok
[INFO] [stdout] test ast::node::tests::callout_kind_default_title_is_capitalized ... ok
[INFO] [stdout] test ast::node::tests::block_heading_constructable ... ok
[INFO] [stdout] test ast::node::tests::block_thematic_break_is_unit_variant ... ok
[INFO] [stdout] test ast::node::tests::block_figure_without_caption_serializes ... ok
[INFO] [stdout] test ast::node::tests::block_list_each_item_is_block_vec ... ok
[INFO] [stdout] test ast::node::tests::block_round_trips_through_serde ... ok
[INFO] [stdout] test ast::node::tests::block_list_carries_explicit_start_number ... ok
[INFO] [stdout] test ast::node::tests::callout_kind_canonicalizes_all_obsidian_aliases ... ok
[INFO] [stdout] test ast::node::tests::block_paragraph_holds_inlines ... ok
[INFO] [stdout] test ast::node::tests::callout_kind_slug_matches_canonical_name ... ok
[INFO] [stdout] test ast::node::tests::inline_emphasis_and_strong_nest ... ok
[INFO] [stdout] test ast::node::tests::block_callout_round_trips_through_serde ... ok
[INFO] [stdout] test ast::node::tests::callout_kind_unknown_returns_none ... ok
[INFO] [stdout] test ast::node::tests::block_table_two_dim_rows ... ok
[INFO] [stdout] test ast::node::tests::block_figure_carries_image_and_optional_caption ... ok
[INFO] [stdout] test ast::node::tests::inline_image_uses_url_for_src ... ok
[INFO] [stdout] test ast::node::tests::inline_link_carries_url_and_children ... ok
[INFO] [stdout] test ast::node::tests::callout_kind_canonicalizes_canonical_names ... ok
[INFO] [stdout] test ast::node::tests::block_other_carries_raw_html ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_cite_canonicalizes_to_quote ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_help_faq_canonicalizes_to_question ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_hint_canonicalizes_to_tip ... ok
[INFO] [stdout] test ast::hooks::tests::hero_overlay_figure_keeps_embed_img_style ... ok
[INFO] [stdout] test ast::parser::tests::callout_foldable_without_title ... ok
[INFO] [stdout] test ast::node::tests::callout_kind_is_case_insensitive ... ok
[INFO] [stdout] test ast::parser::tests::callout_case_insensitive_kind ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_tldr_canonicalizes_to_abstract ... ok
[INFO] [stdout] test ast::parser::tests::code_block_is_not_parsed_as_shortcode ... ok
[INFO] [stdout] test ast::parser::tests::duplicate_headings_get_suffixed_ids ... ok
[INFO] [stdout] test ast::node::tests::inline_link_is_wikilink_serde_defaults_to_false ... ok
[INFO] [stdout] test ast::node::tests::inline_link_with_resolved_url_round_trips ... ok
[INFO] [stdout] test ast::parser::tests::blockquote_with_text_starting_like_callout_but_unknown_kind_still_promotes ... ok
[INFO] [stdout] test ast::parser::tests::duplicate_suffix_dedups_two_cells_of_one_grid ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_caution_attention_canonicalizes_to_warning ... ok
[INFO] [stdout] test ast::parser::tests::duplicate_suffix_descends_into_blockquote ... ok
[INFO] [stdout] test ast::parser::tests::duplicate_suffix_descends_into_footnote_definition ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_check_done_canonicalizes_to_success ... ok
[INFO] [stdout] test ast::parser::tests::duplicate_suffix_descends_into_grid_cells ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_error_canonicalizes_to_danger ... ok
[INFO] [stdout] test ast::parser::tests::duplicate_suffix_descends_into_hero_overlay ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_fail_missing_canonicalizes_to_failure ... ok
[INFO] [stdout] test ast::parser::tests::callout_foldable_closed_suffix ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_with_inline_code_includes_code_payload ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_with_inline_html_strips_html ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_with_inline_link_uses_link_text ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_with_strong_uses_text_content ... ok
[INFO] [stdout] test ast::parser::tests::callout_foldable_open_suffix ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_spaces_become_hyphens ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_with_emphasis_uses_text_content ... ok
[INFO] [stdout] test ast::parser::tests::callout_alias_important_canonicalizes_to_tip ... ok
[INFO] [stdout] test ast::parser::tests::callout_multi_paragraph_body_preserves_blocks ... ok
[INFO] [stdout] test ast::parser::tests::callout_nested_inside_callout ... ok
[INFO] [stdout] test ast::parser::tests::callout_pending_alias_canonicalizes_to_todo ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_cjk_preserved ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_empty_text_yields_empty_slug ... ok
[INFO] [stdout] test ast::parser::tests::image_only_paragraph_with_empty_alt_stays_as_paragraph ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_simple_phrase ... ok
[INFO] [stdout] test ast::parser::tests::html_block_passes_through_as_other ... ok
[INFO] [stdout] test ast::parser::tests::image_with_caption_text_does_not_promote ... ok
[INFO] [stdout] test ast::parser::tests::image_alt_hard_break_becomes_a_space_while_caption_keeps_the_break ... ok
[INFO] [stdout] test ast::parser::tests::callout_unknown_kind_falls_back_to_note ... ok
[INFO] [stdout] test ast::parser::tests::image_alt_break_does_not_double_the_space ... ok
[INFO] [stdout] test ast::parser::tests::image_alt_soft_break_becomes_a_space ... ok
[INFO] [stdout] test ast::parser::tests::frontmatter_only_input_is_handled ... ok
[INFO] [stdout] test ast::parser::tests::image_with_italic_text_before_it_does_not_promote ... ok
[INFO] [stdout] test ast::parser::tests::image_with_whitespace_text_still_promotes_to_figure ... ok
[INFO] [stdout] test ast::parser::tests::empty_input_yields_empty_document ... ok
[INFO] [stdout] test ast::parser::tests::implicit_figure_caption_only_math_is_a_math_node ... ok
[INFO] [stdout] test ast::parser::tests::heading_id_obsidian_strip_chars ... ok
[INFO] [stdout] test ast::parser::tests::image_with_trailing_italic_line_promotes_with_alt_apart_from_caption ... ok
[INFO] [stdout] test ast::parser::tests::link_inside_heading_is_preserved ... ok
[INFO] [stdout] test ast::parser::tests::implicit_figure_caption_carries_link_and_math_nodes ... ok
[INFO] [stdout] test ast::parser::tests::line_lookup_empty_source ... ok
[INFO] [stdout] test ast::parser::tests::italic_line_under_an_image_in_a_list_item_stays_a_paragraph ... ok
[INFO] [stdout] test ast::parser::tests::line_lookup_after_first_newline_is_line_two ... ok
[INFO] [stdout] test ast::parser::tests::nested_image_alt_folds_trailing_text_instead_of_leaking_as_body_prose ... ok
[INFO] [stdout] test ast::parser::tests::line_lookup_offset_zero_is_line_one ... ok
[INFO] [stdout] test ast::parser::tests::duplicate_suffix_descends_into_link_card ... ok
[INFO] [stdout] test ast::parser::tests::implicit_figure_caption_preserves_inline_markup ... ok
[INFO] [stdout] test ast::parser::tests::implicit_figure_empty_alt_still_yields_no_caption ... ok
[INFO] [stdout] test ast::parser::tests::line_lookup_handles_multiline_block_starts ... ok
[INFO] [stdout] test ast::parser::tests::link_inside_emphasis_unwraps_correctly ... ok
[INFO] [stdout] test ast::parser::tests::parse_implicit_figure_off_leaves_image_paragraph_unpromoted ... ok
[INFO] [stdout] test ast::parser::tests::parse_default_config_keeps_block_meta_empty ... ok
[INFO] [stdout] test ast::parser::tests::parse_ordered_list_default_start_collapses_to_none ... ok
[INFO] [stdout] test ast::parser::tests::image_only_paragraph_promotes_to_figure ... ok
[INFO] [stdout] test ast::parser::tests::parse_default_config_leaves_item_source_lines_empty ... ok
[INFO] [stdout] test ast::parser::tests::image_with_emphasis_on_the_same_line_does_not_promote ... ok
[INFO] [stdout] test ast::parser::tests::parse_default_config_leaves_row_source_lines_empty ... ok
[INFO] [stdout] test ast::parser::tests::parse_with_source_lines_lists_and_blockquotes ... ok
[INFO] [stdout] test ast::parser::tests::parse_unordered_list_has_no_start ... ok
[INFO] [stdout] test ast::parser::tests::parse_implicit_figure_default_promotes_image_only_paragraph ... ok
[INFO] [stdout] test ast::parser::tests::loose_list_items_with_paragraphs_still_work ... ok
[INFO] [stdout] test ast::parser::tests::parse_implicit_figure_off_leaves_a_footnote_definition_image_unpromoted ... ok
[INFO] [stdout] test ast::parser::tests::parse_with_source_lines_populates_row_lines_on_table ... ok
[INFO] [stdout] test ast::parser::tests::parse_unaligned_table_has_empty_alignments ... ok
[INFO] [stdout] test ast::parser::tests::parse_ordered_list_start_3_captures_start_number ... ok
[INFO] [stdout] test ast::parser::tests::nested_image_alone_in_a_paragraph_promotes_to_a_figure_with_a_real_nested_image_in_its_caption ... ok
[INFO] [stdout] test ast::parser::tests::parse_with_source_lines_assigns_1_based_line_numbers ... ok
[INFO] [stdout] test ast::parser::tests::parse_captures_gfm_column_alignment ... ok
[INFO] [stdout] test ast::parser::tests::parse_with_source_lines_populates_item_lines_on_list ... ok
[INFO] [stdout] test ast::parser::tests::parser_handles_tight_list_items_with_inline_content ... ok
[INFO] [stdout] test ast::parser::tests::parse_with_source_lines_handles_list_after_blank_line_offset ... ok
[INFO] [stdout] test ast::parser::tests::parses_fenced_code_block_without_lang ... ok
[INFO] [stdout] test ast::parser::tests::parser_link_inherits_wikilink_from_pulldown_cmark ... ok
[INFO] [stdout] test ast::parser::tests::parses_h1_heading ... ok
[INFO] [stdout] test ast::parser::tests::parses_basic_callout_with_inline_title ... ok
[INFO] [stdout] test ast::parser::tests::parses_link_with_moss_resolved_prefix_unchanged ... ok
[INFO] [stdout] test ast::parser::tests::parses_blockquote ... ok
[INFO] [stdout] test ast::parser::tests::parses_image_with_alt ... ok
[INFO] [stdout] test ast::parser::tests::parses_inline_code ... ok
[INFO] [stdout] test ast::parser::tests::parses_link_with_unresolved_url ... ok
[INFO] [stdout] test ast::parser::tests::parses_multiple_blocks ... ok
[INFO] [stdout] test ast::parser::tests::parses_subscribe_block_into_typed_shortcode ... ok
[INFO] [stdout] test ast::parser::tests::parses_ordered_list ... ok
[INFO] [stdout] test ast::parser::tests::plain_blockquote_without_marker_stays_blockquote ... ok
[INFO] [stdout] test ast::parser::tests::parses_titleless_callout ... ok
[INFO] [stdout] test ast::parser::tests::parses_paragraph_with_text ... ok
[INFO] [stdout] test ast::parser::tests::standard_image_no_width_unchanged ... ok
[INFO] [stdout] test ast::parser::tests::parses_emphasis_and_strong ... ok
[INFO] [stdout] test ast::parser::tests::parses_table ... ok
[INFO] [stdout] test ast::parser::tests::plain_paragraph_still_parses_as_paragraph ... ok
[INFO] [stdout] test ast::parser::tests::parses_fenced_code_block_with_lang ... ok
[INFO] [stdout] test ast::parser::tests::parses_thematic_break ... ok
[INFO] [stdout] test ast::parser::tests::standard_image_percent_empty_alt_still_promotes ... ok
[INFO] [stdout] test ast::parser::tests::standard_embed_of_a_typed_site_file_stays_paragraph ... ok
[INFO] [stdout] test ast::parser::tests::parses_h6_heading ... ok
[INFO] [stdout] test ast::parser::tests::parses_unordered_list ... ok
[INFO] [stdout] test ast::parser::tests::standard_image_percent_wins_over_a_width_token ... ok
[INFO] [stdout] test ast::parser::tests::standard_image_percent_promotes_with_width ... ok
[INFO] [stdout] test ast::parser::tests::parses_link_with_title ... ok
[INFO] [stdout] test ast::parser::tests::parses_image_inside_paragraph_with_text ... ok
[INFO] [stdout] test ast::parser::tests::subscribe_block_alongside_other_content_preserves_order ... ok
[INFO] [stdout] test ast::parser::tests::parse_partial_alignment_keeps_none_for_unmarked_columns ... ok
[INFO] [stdout] test ast::parser::tests::valid_shortcodes_produce_no_warnings ... ok
[INFO] [stdout] test ast::parser::tests::unknown_shortcode_warning_survives_unknown_nesting ... ok
[INFO] [stdout] test ast::parser::tests::wikilink_image_percent_no_graph_promotes_with_width ... ok
[INFO] [stdout] test ast::parser::tests::two_images_in_one_paragraph_do_not_promote ... ok
[INFO] [stdout] test ast::parser::tests::unknown_shortcode_inside_a_hero_overlay_warns ... ok
[INFO] [stdout] test ast::parser::tests::tight_list_items_with_nested_list_preserve_structure ... ok
[INFO] [stdout] test ast::parser::tests::subscribe_block_does_not_leave_sentinel_in_other_block ... ok
[INFO] [stdout] test ast::parser::tests::wikilink_image_percent_with_caption_no_graph ... ok
[INFO] [stdout] test ast::plain_text::tests::blockquote_prefixes_every_line_with_gt ... ok
[INFO] [stdout] test ast::parser::tests::two_italic_spans_do_not_make_a_caption ... ok
[INFO] [stdout] test ast::parser::tests::subscribe_inside_paragraph_text_is_not_extracted ... ok
[INFO] [stdout] test ast::parser::tests::wikilink_uppercase_image_ext_still_promotes ... ok
[INFO] [stdout] test ast::plain_text::tests::callout_without_title_has_bare_marker ... ok
[INFO] [stdout] test ast::parser::tests::wikilink_video_box_sizing_stays_paragraph ... ok
[INFO] [stdout] test ast::plain_text::tests::blockquote_with_two_paragraphs_keeps_blank_separator_unprefixed ... ok
[INFO] [stdout] test ast::parser::tests::wikilink_video_percent_stays_paragraph ... ok
[INFO] [stdout] test ast::plain_text::tests::callout_reconstructs_marker_line ... ok
[INFO] [stdout] test ast::plain_text::tests::heading_has_no_special_markup ... ok
[INFO] [stdout] test ast::parser::tests::unknown_shortcode_warning_reaches_the_caller ... ok
[INFO] [stdout] test ast::plain_text::tests::code_block_with_no_language_has_empty_info_string ... ok
[INFO] [stdout] test ast::plain_text::tests::image_with_alt_renders_bracketed_marker ... ok
[INFO] [stdout] test ast::parser::tests::text_after_the_italic_line_does_not_make_a_caption ... ok
[INFO] [stdout] test ast::plain_text::tests::link_renders_text_and_href ... ok
[INFO] [stdout] test ast::plain_text::tests::inlines_to_plain_text_drops_link_href_and_footnote_marker ... ok
[INFO] [stdout] test ast::plain_text::tests::list_item_that_is_only_a_hoisted_footnote_is_erased_without_a_bullet ... ok
[INFO] [stdout] test ast::plain_text::tests::paragraph_renders_flat_text_with_blank_line ... ok
[INFO] [stdout] test ast::plain_text::tests::image_without_alt_renders_bracketed_marker_no_dash ... ok
[INFO] [stdout] test ast::plain_text::tests::task_markers_render_as_checkbox_text ... ok
[INFO] [stdout] test ast::plain_text::tests::unordered_list_uses_dash_bullets ... ok
[INFO] [stdout] test ast::query::tests::a_body_image_outranks_one_hoisted_into_the_endnotes ... ok
[INFO] [stdout] test ast::query::tests::a_repeat_whose_first_definition_is_nested_is_still_body_matter ... ok
[INFO] [stdout] test ast::plain_text::tests::code_block_keeps_language_tag ... ok
[INFO] [stdout] test ast::plain_text::tests::strikethrough_keeps_literal_markers ... ok
[INFO] [stdout] test ast::query::tests::a_repeated_labels_second_definition_is_body_matter_not_endnote_matter ... ok
[INFO] [stdout] test ast::plain_text::tests::table_cells_join_with_pipe ... ok
[INFO] [stdout] test ast::plain_text::tests::nested_blockquote_doubles_the_prefix ... ok
[INFO] [stdout] test ast::plain_text::tests::nested_list_indents_two_spaces_per_level ... ok
[INFO] [stdout] test ast::query::tests::finds_image_inside_figure ... ok
[INFO] [stdout] test ast::query::tests::finds_image_inside_emphasis_or_link ... ok
[INFO] [stdout] test ast::parser::tests::wikilink_extensionless_stays_paragraph ... ok
[INFO] [stdout] test ast::parser::tests::wikilink_pdf_alias_stays_paragraph ... ok
[INFO] [stdout] test ast::plain_text::tests::footnote_marker_and_hoisted_endnote_section ... ok
[INFO] [stdout] test ast::query::tests::picks_first_image_in_document_order ... ok
[INFO] [stdout] test ast::plain_text::tests::footnote_numbering_follows_first_reference_order ... ok
[INFO] [stdout] test ast::query::tests::returns_none_when_no_image_anywhere ... ok
[INFO] [stdout] test ast::query::tests::with_no_body_image_the_first_endnote_image_wins_not_the_first_written ... ok
[INFO] [stdout] test ast::query::tests::finds_image_inside_grid_cell ... ok
[INFO] [stdout] test ast::query::tests::an_image_that_lives_only_in_a_note_is_still_found ... ok
[INFO] [stdout] test ast::query::tests::finds_image_inside_blockquote ... ok
[INFO] [stdout] test ast::render::tests::cell_reads_as_number_matrix ... ok
[INFO] [stdout] test ast::query::tests::hero_overlay_image_is_findable ... ok
[INFO] [stdout] test ast::render::tests::callout_alias_renders_canonical_data_type_slug ... ok
[INFO] [stdout] test ast::query::tests::finds_image_inside_list_item ... ok
[INFO] [stdout] test ast::query::tests::finds_image_inside_paragraph ... ok
[INFO] [stdout] test ast::query::tests::returns_none_on_empty_doc ... ok
[INFO] [stdout] test ast::render::tests::callout_title_is_html_escaped ... ok
[INFO] [stdout] test ast::render::tests::end_to_end_parse_with_config_emits_data_source_line ... ok
[INFO] [stdout] test ast::render::tests::figure_emits_data_source_line_on_outer_tag ... ok
[INFO] [stdout] test ast::render::tests::figure_renders_without_caption_when_none ... ok
[INFO] [stdout] test ast::render::tests::figure_end_to_end_from_parser_to_render ... ok
[INFO] [stdout] test ast::render::tests::figure_percent_width_emits_inline_style ... ok
[INFO] [stdout] test ast::render::tests::figure_renders_no_figcaption_for_empty_caption_vec ... ok
[INFO] [stdout] test ast::render::tests::figure_renders_with_caption ... ok
[INFO] [stdout] test ast::render::tests::figure_named_width_still_emits_data_width ... ok
[INFO] [stdout] test ast::render::tests::figure_with_empty_alt_has_empty_alt_not_a_copy_of_the_caption ... ok
[INFO] [stdout] test ast::render::tests::figure_with_explicit_alt_keeps_it_apart_from_the_caption ... ok
[INFO] [stdout] test ast::render::tests::figure_without_caption_keeps_alt_as_the_accessible_name ... ok
[INFO] [stdout] test ast::render::tests::grid_label_without_scroll_emits_nothing_extra ... ok
[INFO] [stdout] test ast::render::tests::grid_scroll_emission_by_cell_count_at_columns_3 ... ok
[INFO] [stdout] test ast::render::tests::grid_scroll_emits_data_scroll_and_tabindex ... ok
[INFO] [stdout] test ast::render::tests::grid_scroll_with_more_cells_than_columns_still_scrolls ... ok
[INFO] [stdout] test ast::render::tests::heading_emits_data_source_line_through_hook ... ok
[INFO] [stdout] test ast::render::tests::figure_alt_equal_to_the_caption_after_trimming_is_empty ... ok
[INFO] [stdout] test ast::render::tests::inline_wikilink_alias_inside_prose_stays_in_alt ... ok
[INFO] [stdout] test ast::render::tests::figure_caption_escapes_html_unsafe_chars ... ok
[INFO] [stdout] test ast::render::tests::list_emits_per_li_data_source_line_when_parser_tracks ... ok
[INFO] [stdout] test ast::render::tests::no_data_source_line_when_meta_none ... ok
[INFO] [stdout] test ast::render::tests::render_ordered_list_omits_start_when_default_1 ... ok
[INFO] [stdout] test ast::render::tests::render_unordered_list_emits_no_start ... ok
[INFO] [stdout] test ast::render::tests::renders_blockquote_with_paragraph ... ok
[INFO] [stdout] test ast::render::tests::list_blockquote_codeblock_table_hr_emit_data_source_line ... ok
[INFO] [stdout] test ast::render::tests::renders_callout_falls_back_to_default_title ... ok
[INFO] [stdout] test ast::render::tests::list_omits_li_data_source_line_when_parser_did_not_track ... ok
[INFO] [stdout] test ast::render::tests::paragraph_with_image_and_text_does_not_become_figure ... ok
[INFO] [stdout] test ast::render::tests::paragraph_emits_data_source_line_when_meta_set ... ok
[INFO] [stdout] test ast::render::tests::grid_scroll_label_is_html_escaped ... ok
[INFO] [stdout] test ast::render::tests::renders_code_block_without_lang ... ok
[INFO] [stdout] test ast::render::tests::grid_scroll_with_label_emits_region_and_aria_label ... ok
[INFO] [stdout] test ast::render::tests::renders_emphasis_and_strong ... ok
[INFO] [stdout] test ast::render::tests::grid_without_scroll_emits_no_scroll_attrs ... ok
[INFO] [stdout] test ast::render::tests::renders_empty_document_to_empty_string ... ok
[INFO] [stdout] test ast::render::tests::renders_code_block_with_lang ... ok
[INFO] [stdout] test ast::render::tests::renders_heading_with_id ... ok
[INFO] [stdout] test ast::render::tests::renders_level_one_heading_without_permalink_anchor ... ok
[INFO] [stdout] test ast::render::tests::renders_inline_code_with_escaping ... ok
[INFO] [stdout] test ast::render::tests::renders_ordered_list ... ok
[INFO] [stdout] test ast::render::tests::renders_resolved_image ... ok
[INFO] [stdout] test ast::render::tests::renders_resolved_link_internal ... ok
[INFO] [stdout] test ast::render::tests::renders_unordered_list_tight ... ok
[INFO] [stdout] test ast::parser::tests::unknown_shortcode_inside_a_valid_shortcode_warns ... ok
[INFO] [stdout] test ast::render::tests::round_trips_parse_to_render_for_canonical_doc ... ok
[INFO] [stdout] test ast::render::tests::table_always_wraps_in_scroll_container ... ok
[INFO] [stdout] test ast::render::tests::renders_link_with_is_wikilink_flag_emits_class ... ok
[INFO] [stdout] test ast::render::tests::render_ordered_list_emits_start_attribute_when_non_default ... ok
[INFO] [stdout] test ast::render::tests::renders_resolved_link_wikilink_carries_class ... ok
[INFO] [stdout] test ast::render::tests::renders_table ... ok
[INFO] [stdout] test ast::render::tests::renders_paragraph ... ok
[INFO] [stdout] test ast::render::tests::table_auto_right_aligns_numeric_columns_only ... ok
[INFO] [stdout] test ast::render::tests::renders_other_block_passes_html_through ... ok
[INFO] [stdout] test ast::render::tests::table_emits_per_tr_data_source_line_when_parser_tracks ... ok
[INFO] [stdout] test ast::render::tests::table_honors_gfm_alignment_over_numeric_detection ... ok
[INFO] [stdout] test ast::render::tests::table_mixed_column_below_threshold_stays_left ... ok
[INFO] [stdout] test ast::render::tests::table_header_only_no_body_is_valid ... ok
[INFO] [stdout] test ast::render::tests::table_omits_tr_data_source_line_when_parser_did_not_track ... ok
[INFO] [stdout] test ast::render::tests::text_escapes_lt_gt_amp ... ok
[INFO] [stdout] test ast::resolve_urls::tests::absolute_path_passes_through ... ok
[INFO] [stdout] test ast::resolve_urls::tests::classifies_anchor_link ... ok
[INFO] [stdout] test ast::resolve_urls::tests::classifies_mailto ... ok
[INFO] [stdout] test ast::resolve_urls::tests::code_block_urls_not_visited ... ok
[INFO] [stdout] test ast::render::tests::table_with_a_blank_header_row_omits_the_thead ... ok
[INFO] [stdout] test ast::render::tests::renders_thematic_break ... ok
[INFO] [stdout] test ast::resolve_urls::tests::every_kind_of_missing_media_is_reported_as_blocking ... ok
[INFO] [stdout] test ast::resolve_urls::tests::external_links_no_outgoing ... ok
[INFO] [stdout] test ast::render::tests::table_partial_gfm_alignment_auto_detects_unmarked_columns ... ok
[INFO] [stdout] test ast::parser::tests::source_line_offset_is_applied_additively ... ok
[INFO] [stdout] test ast::resolve_urls::tests::fragment_preserved_on_internal_link ... ok
[INFO] [stdout] test ast::resolve_urls::tests::a_resolvable_reference_reports_nothing_to_block_on ... ok
[INFO] [stdout] test ast::resolve_urls::tests::hero_body_wikilink_resolves_against_graph_at_depth_0 ... ok
[INFO] [stdout] test ast::parser::tests::source_lines_not_collapsed_across_multiline_shortcode ... ok
[INFO] [stdout] test ast::resolve_urls::tests::hero_body_wikilink_href_does_not_depend_on_referencing_depth ... ok
[INFO] [stdout] test ast::resolve_urls::tests::hero_extra_images_resolve_against_graph_like_the_primary ... ok
[INFO] [stdout] test ast::resolve_urls::tests::idempotent_on_already_resolved_url ... ok
[INFO] [stdout] test ast::parser::tests::tight_list_items_with_links_preserved ... ok
[INFO] [stdout] test ast::resolve_urls::tests::hero_unresolved_wikilink_passes_through ... ok
[INFO] [stdout] test ast::plain_text::tests::unreferenced_footnote_is_not_silently_dropped ... ok
[INFO] [stdout] test ast::render::tests::renders_foldable_callout_with_data_fold_attribute ... ok
[INFO] [stdout] test ast::resolve_urls::tests::does_not_resolve_url_inside_code_block ... ok
[INFO] [stdout] test ast::resolve_urls::tests::image_absolute_stays_absolute ... ok
[INFO] [stdout] test ast::resolve_urls::tests::link_wrapping_image_target_path ... ok
[INFO] [stdout] test ast::resolve_urls::tests::markdown_link_fragment_stays_raw_not_slugged ... ok
[INFO] [stdout] test ast::resolve_urls::tests::passes_through_external_link ... ok
[INFO] [stdout] test ast::resolve_urls::tests::markdown_link_fragment_preserved_raw_not_slugged ... ok
[INFO] [stdout] test ast::render::tests::uncaptioned_wikilink_alias_stays_in_alt ... ok
[INFO] [stdout] test ast::resolve_urls::tests::multiple_links_one_line_emit_sentinels ... ok
[INFO] [stdout] test ast::resolve_urls::tests::image_case_mismatch_emits_canonical ... ok
[INFO] [stdout] test ast::render::tests::wikilink_alias_lands_in_the_caption_only_not_also_in_alt ... ok
[INFO] [stdout] test ast::resolve_urls::tests::image_bare_unchanged_from_today ... ok
[INFO] [stdout] test ast::resolve_urls::tests::nested_embed_target_gets_a_specific_message_but_still_blocks ... ok
[INFO] [stdout] test ast::resolve_urls::tests::image_href_is_identical_from_root_and_from_a_nested_note ... ok
[INFO] [stdout] test ast::resolve_urls::tests::query_string_preserved_on_internal_link ... ok
[INFO] [stdout] test ast::resolve_urls::tests::percent_encoded_link_destination_resolves ... ok
[INFO] [stdout] test ast::render::tests::renders_basic_callout_with_title ... ok
[INFO] [stdout] test ast::resolve_urls::tests::image_separator_fallback_rebases_to_root ... ok
[INFO] [stdout] test ast::resolve_urls::tests::literal_percent_in_filename_still_resolves ... ok
[INFO] [stdout] test ast::resolve_urls::tests::resolves_standard_markdown_link_to_internal ... ok
[INFO] [stdout] test ast::resolve_urls::tests::root_address_of_a_page_source_resolves_to_exactly_that_file ... ok
[INFO] [stdout] test ast::resolve_urls::tests::slug_wikilink_suffix_preserves_query ... ok
[INFO] [stdout] test ast::shortcode::tests::buttons_default_has_no_items ... ok
[INFO] [stdout] test ast::resolve_urls::tests::standard_markdown_link_emits_sentinel ... ok
[INFO] [stdout] test ast::resolve_urls::tests::resolves_bare_filename_image_against_graph ... ok
[INFO] [stdout] test ast::resolve_urls::tests::wikilink_cjk_fragment_preserved ... ok
[INFO] [stdout] test ast::resolve_urls::tests::unresolved_link_no_outgoing ... ok
[INFO] [stdout] test ast::resolve_urls::tests::unresolved_bare_filename_passes_through ... ok
[INFO] [stdout] test ast::resolve_urls::tests::wikilink_block_ref_keeps_id_raw ... ok
[INFO] [stdout] test ast::resolve_urls::tests::wikilink_cross_page_fragment_is_slugged ... ok
[INFO] [stdout] test ast::resolve_urls::tests::wikilink_same_page_fragment_is_slugged ... ok
[INFO] [stdout] test ast::resolve_urls::tests::pipe_bearing_image_url_unchanged ... ok
[INFO] [stdout] test ast::shortcode::tests::buttons_round_trips_through_serde ... ok
[INFO] [stdout] test ast::shortcode::tests::fits_without_scrolling_is_false_once_cells_exceed_columns ... ok
[INFO] [stdout] test ast::shortcode::tests::hero_with_mobile_overlay_round_trips_serde ... ok
[INFO] [stdout] test ast::shortcode::tests::is_scroll_row_is_true_for_two_or_more_cells_with_scroll_whether_or_not_they_fit ... ok
[INFO] [stdout] test ast::shortcode::tests::recent_default_has_none_params_empty_fallback ... ok
[INFO] [stdout] test ast::shortcode::tests::recent_kind_method_returns_recent ... ok
[INFO] [stdout] test ast::shortcode::tests::gallery_default_no_columns_no_items ... ok
[INFO] [stdout] test ast::resolve_urls::tests::query_and_fragment_sentinel_shape ... ok
[INFO] [stdout] test ast::resolve_urls::tests::unresolvable_image_ref_reports_instead_of_guessing ... ok
[INFO] [stdout] test ast::shortcode::tests::gallery_round_trips_through_serde ... ok
[INFO] [stdout] test ast::shortcode::tests::gallery_kind_method_returns_gallery ... ok
[INFO] [stdout] test ast::shortcode::tests::subscribe_kind_method_returns_subscribe ... ok
[INFO] [stdout] test ast::shortcode::tests::hero_mobile_field_defaults_to_none ... ok
[INFO] [stdout] test ast::shortcode::tests::subscribe_with_placeholder_and_button ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::a_bare_closer_in_a_code_fence_does_not_warn ... ok
[INFO] [stdout] test ast::shortcode::tests::gallery_items_carry_unresolved_urls ... ok
[INFO] [stdout] test ast::shortcode::tests::recent_round_trips_through_serde ... ok
[INFO] [stdout] test ast::shortcode::tests::shortcode_kind_variants_are_distinct ... ok
[INFO] [stdout] test ast::shortcode::tests::buttons_items_carry_unresolved_urls ... ok
[INFO] [stdout] test ast::shortcode::tests::buttons_kind_method_returns_buttons ... ok
[INFO] [stdout] test ast::shortcode::tests::fits_without_scrolling_is_true_at_or_under_columns ... ok
[INFO] [stdout] test ast::shortcode::tests::shortcode_kind_round_trips_through_serde ... ok
[INFO] [stdout] test ast::shortcode::tests::is_scroll_row_is_false_for_a_single_cell_even_with_scroll ... ok
[INFO] [stdout] test ast::shortcode::tests::subscribe_default_has_none_placeholder_and_button ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::a_gallery_rename_span_covers_exactly_the_destination ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::apply_parse_bare_has_none_overrides ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::apply_parse_with_overrides ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::arity_mismatch_does_not_close_block ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::captures_recent_body_as_fallback_markdown ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::commented_out_shortcode_does_not_corrupt_the_comment_it_lives_in ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::compound_link_wikilink_image_cell_with_linked_caption_still_becomes_card_plus_siblings ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::buttons_inside_code_fence_is_not_extracted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::close_fence_with_trailing_text_is_not_recognized ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::commented_close_fence_does_not_end_a_live_shortcode ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::css_region_emits_blank_lines_around_body_for_markdown_processing ... ok
[INFO] [stdout] test ast::shortcode::tests::subscribe_round_trips_through_serde ... ok
[INFO] [stdout] test ast::plain_text::tests::ordered_list_numbers_items ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::compound_link_image_cell_with_caption_paragraphs_becomes_card_plus_siblings ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::compound_link_markdown_image_cell_with_caption_stays_uncarded ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::crlf_source_spans_are_exact ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::buttons_skips_non_link_lines ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::close_fence_with_trailing_whitespace_is_recognized ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::compound_link_text_cell_with_trailing_caption_stays_uncarded ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::compound_link_text_cell_followed_by_prose_stays_inline ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::compound_link_wikilink_image_cell_followed_by_prose_on_same_line_stays_inline ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::css_region_no_warning_emitted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::css_region_unnamed_emits_div_wrapper ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::css_region_with_id_only ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extract_shortcodes_does_not_panic_on_arbitrary_cjk_content ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extract_uses_content_derived_nonce ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::css_region_with_classes_and_id ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::divider_inside_a_code_fence_does_not_split_a_grid_cell ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_buttons_block_with_multiple_links ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_buttons_with_moss_resolved_url_intact ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_wikilink_with_parens_and_space_in_filename ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_with_bare_paths ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_with_classes ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_with_columns_arg ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::every_shortcode_kind_url_slot_is_accounted_for ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extract_markdown_link_requires_trailing_paren ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_standard_image_with_parens_in_the_destination ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_with_markdown_image_syntax ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extract_markdown_link_rejects_text_with_close_bracket ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_buttons_with_multi_line_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_with_multi_line_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extract_shortcodes_handles_buttons_with_cjk_link_text ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_with_pipe_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_buttons_block_with_one_link ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_accepts_plus_plus_plus_divider ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_with_wikilink_embed_syntax ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_with_classes ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_with_positional_columns ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_with_nested_buttons_via_arity ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_classes ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_with_positional_ratio ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_with_compound_link_cell_typed_as_link_card ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_single_cell_no_separator ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_with_cols_attr_integer ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_with_empty_middle_cell ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_grid_with_cols_attr_ratio_implies_count ... ok
[INFO] [stdout] test ast::shortcode::tests::is_scroll_row_is_false_without_the_scroll_flag_at_every_cell_count ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_gallery_wikilink_with_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::everything_after_an_unterminated_html_comment_is_inert ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_buttons_block_with_class_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_directive_line_path_and_classes ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_image_attr ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_no_image ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_directive_line_path ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_directive_line_path_and_pipe_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_bare_paths_span_exactly ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::fence_inside_gallery_body_is_still_tracked ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_subscribe_block_with_only_placeholder_attr ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_image_attr_and_pipe_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_cols_alias_still_sets_columns_and_warns ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_inside_fence_emits_nothing ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_quadruple_colon_buttons ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_recent_end_to_end_with_sentinel ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_nested_in_css_region_is_found ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_wikilink_body_image ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_subscribe_block_with_no_args ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_blank_and_indented_lines ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_subscribe_block_with_placeholder_and_button_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_inside_html_comment_emits_nothing ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_hero_block_with_body_image_typed ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_multiple_subscribes_with_increasing_indices ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_bare_path_with_pipe_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::extracts_subscribe_block_with_multi_line_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_markdown_image_line_spans_the_destination ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_per_line_wins_over_cols_but_cols_still_warns ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_ratio_still_works_through_per_line ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_nested_in_grid_cell_is_found ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_per_line_attr_sets_columns ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_with_full_flag_normalizes_to_screen ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_with_scroll_flag_sets_scroll_true ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_per_line_wins_over_cols_but_cols_still_warns ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_with_page_flag_sets_width_page ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_skips_blank_lines ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_body_media_run_spans ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_scroll_with_label_sets_both ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_without_scroll_flag_leaves_scroll_false ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_wikilink_line_path_is_stripped ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_align_end_attr_is_parsed ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_without_width_flag_leaves_width_none ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_legacy_dash_emits_deprecation_warning ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_media_after_overlay_text_stays_overlay_content ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_directive_line_path_span ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_with_wide_flag_sets_width_wide ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_consecutive_leading_media_lines_become_slides ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_without_width_flag_leaves_width_none ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_malformed_attr_block_emits_no_span_and_parser_falls_back ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_image_attr_span ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::gallery_prose_line_emits_no_span ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_cols_alias_still_sets_columns_and_warns ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_image_attribute_never_collects_slides ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_label_without_scroll_still_parses ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_per_line_attr_sets_columns ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_body_media_lines_emit_no_deprecation_warning ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_explicit_image_attr_no_deprecation_warning ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_image_attr_quoted_with_pipe_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_with_screen_flag_sets_width_screen ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_mobile_overlay_attr_is_parsed ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_without_align_attr_has_none ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_mobile_overlay_with_body_image_fallback ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::higher_arity_outer_grid_around_a_nested_fence_does_not_warn ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_multi_line_attr_block_span_is_exact ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_prose_ending_in_media_extension_is_not_a_span ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_prose_ending_in_media_extension_stays_overlay ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_unknown_align_value_emits_warning ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_unknown_mobile_value_emits_warning ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_with_full_flag_sets_width_screen ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_with_image_attr_emits_no_body_spans ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::grid_with_summary_class_and_scroll_flag_parses_both ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_with_wide_flag_sets_width_wide ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_without_mobile_attr_has_none ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::hero_without_width_flag_leaves_width_none ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::nested_css_region_higher_arity_outer_recurses_into_inner ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::nested_css_region_outer_closes_at_first_inner_close ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::no_shortcodes_round_trips_input ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::nested_grid_via_arity_keeps_the_inner_grids_cells_inside_it ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::nonce_makes_authored_collision_inert ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_placeholder_rejects_non_placeholder_html ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::multi_line_attrs_with_quoted_brace_inside ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::indented_shortcode_under_a_list_item_still_extracts ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_shortcode_opener_recognizes_empty_name_with_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::is_close_fence_handles_multibyte_utf8_lines ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_placeholder_rejects_wrong_nonce ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_shortcode_opener_recognizes_quadruple_colon ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::lower_arity_outer_wraps_grid_with_buttons_in_cell ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_shortcode_opener_recognizes_simple_name ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_shortcode_opener_rejects_just_colons ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::lower_arity_outer_wraps_higher_arity_typed_inner ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parses_apply_directive ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::nested_non_grid_block_keeps_its_own_dividers ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parses_recent_with_since_and_count ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::placeholder_preserves_block_line_count_for_source_line_accuracy ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::recent_with_malformed_count_yields_none_count ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::higher_arity_wrapper_recursively_extracts_typed_subscribe ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::recent_with_no_args_yields_all_none ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_placeholder_round_trips_index ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::same_arity_nesting_inside_grid_warns_and_names_the_higher_arity_fix ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_shortcode_opener_extracts_args ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parses_recent_with_all_three_attrs ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parses_recent_with_last_window ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::scroll_flag_on_gallery_is_recognized_but_inert ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::subscribe_legacy_body_keys_no_longer_parsed ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::shortcode_inside_an_html_comment_is_not_extracted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::shortcode_in_an_inline_code_span_is_not_extracted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::plain_grid_with_no_nesting_does_not_warn ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::recent_body_is_trimmed ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::unclosed_gallery_emits_nothing ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::parse_shortcode_opener_rejects_two_colons ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::toc_now_renders_as_unknown_shortcode ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::unclosed_multi_line_attrs_block_emits_verbatim ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::unclosed_subscribe_block_emits_verbatim ... ok
[INFO] [stdout] test ast::tags::tests::bare_hash_yields_nothing ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::shortcode_in_an_indented_code_block_is_not_extracted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::unknown_name_body_recursively_extracts_typed_inner ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::unknown_name_renders_fallback_wrapper ... ok
[INFO] [stdout] test ast::tags::tests::double_hash_is_not_a_tag ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::unknown_name_emits_build_warning ... ok
[INFO] [stdout] test ast::tags::tests::emoji_tag_is_extracted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::unknown_name_with_plus_plus_plus_in_body_passes_through ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::unknown_name_html_escapes_data_name ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::subscribe_inside_code_fence_is_not_extracted ... ok
[INFO] [stdout] test ast::tags::tests::dedup_is_case_insensitive_preserving_first_form ... ok
[INFO] [stdout] test ast::tags::tests::hash_mid_word_in_a_callout_title_is_not_a_tag ... ok
[INFO] [stdout] test ast::tags::tests::hash_mid_word_is_not_a_tag ... ok
[INFO] [stdout] test ast::tags::tests::hash_after_emphasis_is_not_a_tag ... ok
[INFO] [stdout] test ast::tags::tests::multiple_tags_on_one_line ... ok
[INFO] [stdout] test ast::tags::tests::nested_tag_is_one_tag ... ok
[INFO] [stdout] test ast::tags::tests::callout_title_tag_precedes_its_body_tag_in_document_order ... ok
[INFO] [stdout] test ast::tags::tests::cjk_tag_is_extracted ... ok
[INFO] [stdout] test ast::tags::tests::hash_after_inline_code_is_not_a_tag ... ok
[INFO] [stdout] test ast::tags::tests::numeric_with_letter_is_a_tag ... ok
[INFO] [stdout] test ast::tags::tests::tag_inside_blockquote_is_extracted ... ok
[INFO] [stdout] test ast::tags::tests::tag_in_callout_title_is_extracted ... ok
[INFO] [stdout] test ast::tags::tests::hash_after_link_is_not_a_tag ... ok
[INFO] [stdout] test ast::tags::tests::purely_numeric_tag_is_rejected ... ok
[INFO] [stdout] test ast::tags::tests::tag_after_explicit_line_break_is_extracted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::shortcode_outside_a_comment_still_extracts_normally ... ok
[INFO] [stdout] test ast::tags::tests::in_grid_tag_dedups_against_the_same_top_level_tag ... ok
[INFO] [stdout] test ast::tags::tests::tag_inside_hero_overlay_is_extracted ... ok
[INFO] [stdout] test ast::tags::tests::tag_split_across_delimiter_runs_is_recovered ... ok
[INFO] [stdout] test ast::tags::tests::tag_terminates_at_caret ... ok
[INFO] [stdout] test ast::tags::tests::tag_at_start_of_line_is_extracted ... ok
[INFO] [stdout] test ast::tags::tests::callout_title_and_body_tags_dedup_case_insensitively ... ok
[INFO] [stdout] test ast::tags::tests::tag_in_every_grid_cell_is_extracted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::subscribe_inside_tilde_fence_is_not_extracted ... ok
[INFO] [stdout] test ast::shortcode_extract::tests::spans_agree_with_parsers ... ok
[INFO] [stdout] test ast::tags::tests::tag_inside_fenced_code_block_is_not_extracted ... ok
[INFO] [stdout] test ast::tags::tests::tag_inside_grid_cell_is_extracted ... ok
[INFO] [stdout] test ast::url::tests::serde_round_trip_unresolved ... ok
[INFO] [stdout] test ast::url::tests::serde_round_trip_resolved ... ok
[INFO] [stdout] test ast::tags::tests::tag_inside_grid_link_card_is_extracted ... ok
[INFO] [stdout] test ast::url::tests::state_distinction_via_is_methods ... ok
[INFO] [stdout] test ast::url::tests::unresolved_construction_carries_input_verbatim ... ok
[INFO] [stdout] test ast::url::tests::unresolved_preserves_moss_resolved_prefix ... ok
[INFO] [stdout] test ast::visit::tests::callback_can_mutate_url_to_resolved ... ok
[INFO] [stdout] test ast::url::tests::resolved_kinds_are_distinct ... ok
[INFO] [stdout] test ast::url::tests::resolved_with_wikilink_kind ... ok
[INFO] [stdout] test ast::visit::tests::detects_a_callout_anywhere_it_can_appear ... ok
[INFO] [stdout] test ast::url::tests::serde_uses_externally_tagged_form ... ok
[INFO] [stdout] test ast::visit::tests::does_not_visit_text_or_code ... ok
[INFO] [stdout] test ast::visit::tests::detects_a_callout_class_on_a_typed_shortcode ... ok
[INFO] [stdout] test ast::tags::tests::tag_inside_inline_code_is_not_extracted ... ok
[INFO] [stdout] test ast::tags::tests::tag_inside_list_item_is_extracted ... ok
[INFO] [stdout] test ast::visit::tests::visit_blocks_descends_into_a_footnote_definition_body ... ok
[INFO] [stdout] test ast::visit::tests::empty_document_visits_nothing ... ok
[INFO] [stdout] test ast::visit::tests::visits_url_inside_emphasis_and_strong ... ok
[INFO] [stdout] test ast::visit::tests::detects_a_callout_written_as_a_css_region ... ok
[INFO] [stdout] test ast::visit::tests::detects_a_callout_in_a_recent_shortcode_fallback ... ok
[INFO] [stdout] test ast::visit::tests::visits_url_inside_figure_image ... ok
[INFO] [stdout] test ast::visit::tests::visits_url_inside_link_children ... ok
[INFO] [stdout] test ast::visit::tests::visits_urls_inside_callout ... ok
[INFO] [stdout] test ast::visit::tests::visits_urls_inside_table_header_and_rows ... ok
[INFO] [stdout] test ast::visit::tests::visit_blocks_descends_into_blockquote ... ok
[INFO] [stdout] test ast::visit::tests::visit_blocks_descends_into_list_items ... ok
[INFO] [stdout] test ast::visit::tests::visit_blocks_short_circuits_when_callback_returns_false ... ok
[INFO] [stdout] test ast::visit::tests::visits_url_in_image_src ... ok
[INFO] [stdout] test ast::visit::tests::visits_url_in_paragraph_link ... ok
[INFO] [stdout] test attachment::tests::placement_matches_the_shared_vectors ... ok
[INFO] [stdout] test attachment::tests::the_default_never_excludes_anything ... ok
[INFO] [stdout] test ast::visit::tests::figure_url_becomes_resolved_after_visit ... ok
[INFO] [stdout] test ast::visit::tests::visits_url_inside_heading ... ok
[INFO] [stdout] test ast::visit::tests::has_shortcode_recursive_returns_false_on_empty_doc ... ok
[INFO] [stdout] test ast::visit::tests::visits_urls_inside_blockquote ... ok
[INFO] [stdout] test content_graph::tests::a_name_with_an_extension_matches_only_that_extension ... ok
[INFO] [stdout] test attachment::tests::the_directory_a_page_writes_to_is_always_storage ... ok
[INFO] [stdout] test content_graph::tests::of_equally_near_pages_the_md_one_wins_without_a_tie ... ok
[INFO] [stdout] test content_graph::tests::a_language_shaped_folder_is_a_language_tree_only_when_the_site_has_one ... ok
[INFO] [stdout] test content_graph::tests::of_two_case_twins_the_same_one_is_kept_whatever_the_order ... ok
[INFO] [stdout] test attachment::tests::exclusion_matches_the_shared_vectors ... ok
[INFO] [stdout] test ast::visit::tests::visit_blocks_walks_top_level ... ok
[INFO] [stdout] test content_graph::tests::a_folder_note_is_the_home_the_build_elects ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_alphabetical_final_tiebreaker ... ok
[INFO] [stdout] test content_graph::tests::a_percent_encoded_target_is_tried_decoded ... ok
[INFO] [stdout] test content_graph::tests::generate_slug_gives_nfd_and_nfc_spellings_the_same_slug ... ok
[INFO] [stdout] test attachment::tests::validation_matches_the_shared_vectors ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_independent_of_registration_order ... ok
[INFO] [stdout] test ast::visit::tests::visits_urls_inside_list_items ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_md_wins_over_html_sibling ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_bare_ref_extension_intent_still_wins ... ok
[INFO] [stdout] test content_graph::tests::a_language_shaped_folder_beside_an_ordinary_page_is_read_from_the_page ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_prefers_matching_extension_html ... ok
[INFO] [stdout] test content_graph::tests::test_ambiguous_resolved_by_common_prefix ... ok
[INFO] [stdout] test content_graph::tests::test_all_files_order ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_suffix_match_arm_bare_ref_prefers_page ... ok
[INFO] [stdout] test content_graph::tests::test_all_files_preserves_original_case ... ok
[INFO] [stdout] test content_graph::tests::test_auto_index_dir_resolves_when_no_real_note_exists ... ok
[INFO] [stdout] test content_graph::tests::test_exact_path_match ... ok
[INFO] [stdout] test content_graph::tests::a_reference_spelled_like_one_case_twin_names_that_twin ... ok
[INFO] [stdout] test content_graph::tests::a_target_without_an_extension_finds_a_page_of_any_page_extension ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_prefers_matching_extension_png ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_bare_ref_prefers_page_over_asset ... ok
[INFO] [stdout] test content_graph::tests::test_filename_index_case_insensitive ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_bare_ref_unchanged ... ok
[INFO] [stdout] test content_graph::tests::test_filename_index_without_extension ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_case_insensitive_extension ... ok
[INFO] [stdout] test content_graph::tests::test_folder_note_falls_back_to_root_when_no_language_sibling ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_collapses_consecutive_hyphens ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_ext_match_overrides_lang_tree ... ok
[INFO] [stdout] test content_graph::tests::test_builder_adds_file ... ok
[INFO] [stdout] test content_graph::tests::test_folder_note_prefers_same_language_tree ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_deep_path ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_lowercases ... ok
[INFO] [stdout] test content_graph::tests::stem_collision_suffix_match_arm ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_no_extension ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_preserves_non_ascii ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_preserves_path_separators ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_strips_ascii_punctuation ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_dotfile_keeps_leading_dot ... ok
[INFO] [stdout] test content_graph::tests::test_folder_note_resolution ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_replaces_spaces ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_normalizes_backslashes ... ok
[INFO] [stdout] test content_graph::tests::test_contains_path ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_strips_extension ... ok
[INFO] [stdout] test content_graph::tests::test_root_reference_resolves_to_slash ... ok
[INFO] [stdout] test content_graph::tests::test_self_named_folder_note_resolution ... ok
[INFO] [stdout] test content_graph::tests::test_self_named_folder_note_via_path ... ok
[INFO] [stdout] test content_graph::tests::test_suffix_match_ambiguous_uses_tiebreaker ... ok
[INFO] [stdout] test content_graph::tests::test_generate_slug_trims_leading_trailing_hyphens_per_segment ... ok
[INFO] [stdout] test content_graph::tests::test_get_slug ... ok
[INFO] [stdout] test content_graph::tests::test_partial_path_match ... ok
[INFO] [stdout] test content_graph::tests::test_real_folder_note_wins_over_auto_index_registration ... ok
[INFO] [stdout] test content_graph::tests::test_resolve_path_preserves_original_case ... ok
[INFO] [stdout] test content_graph::tests::test_resolve_self_named_via_filename_stem ... ok
[INFO] [stdout] test contract::components::tests::every_internal_class_has_a_components_entry ... ok
[INFO] [stdout] test content_graph::tests::test_unregistered_dir_does_not_resolve_via_auto_index_fallback ... ok
[INFO] [stdout] test content_graph::tests::test_unresolved_returns_none ... ok
[INFO] [stdout] test contract::frontmatter::tests::frontmatter_fields_includes_skip_schema_entries ... ok
[INFO] [stdout] test content_graph::tests::test_vault_root_prefix_non_index ... ok
[INFO] [stdout] test content_graph::tests::test_suffix_match_partial_path ... ok
[INFO] [stdout] test contract::frontmatter::tests::frontmatter_fields_no_duplicate_names ... ok
[INFO] [stdout] test content_graph::tests::test_unicode_normalization ... ok
[INFO] [stdout] test content_graph::tests::the_nearest_copy_wins_and_only_a_true_tie_is_reported ... ok
[INFO] [stdout] test contract::frontmatter::tests::uid_description_never_claims_the_uid_is_derivable ... ok
[INFO] [stdout] test contract::shortcodes::tests::asset_attr_names_a_declared_asset_attr ... ok
[INFO] [stdout] test contract::shortcodes::tests::only_apply_is_hidden ... ok
[INFO] [stdout] test content_graph::tests::test_path_reference_falls_back_to_exact_path_when_no_language_sibling ... ok
[INFO] [stdout] test content_graph::tests::test_path_reference_prefers_same_language_tree ... ok
[INFO] [stdout] test content_graph::tests::test_resolve_folder_note_fallback_to_index ... ok
[INFO] [stdout] test content_graph::tests::test_path_reference_with_explicit_language_prefix_is_not_rescoped ... ok
[INFO] [stdout] test contract::describe::tests::apply_is_absent_from_public_contract ... ok
[INFO] [stdout] test contract::sizes::tests::grid_cell_declares_cell_not_column ... ok
[INFO] [stdout] test content_graph::tests::test_vault_root_prefix_resolves_correctly ... ok
[INFO] [stdout] test content_graph::tests::test_vault_root_prefix_deep_nesting ... ok
[INFO] [stdout] test contract::sizes::tests::sizes_strings_are_wellformed ... ok
[INFO] [stdout] test contract::sizes::tests::sizes_hero_plate_selects_the_base ... ok
[INFO] [stdout] test contract::sizes::tests::vertical_body_names_the_column_height_times_the_aspect ... ok
[INFO] [stdout] test contract::tokens::tests::parse_tokens_accepts_object_value_with_dark ... ok
[INFO] [stdout] test contract::tokens::tests::accent_hover_is_derived_from_accent_via_color_mix ... ok
[INFO] [stdout] test contract::tokens::tests::accent_has_legible_dark_value ... ok
[INFO] [stdout] test contract::shortcodes::tests::covers_every_kind_exactly_once ... ok
[INFO] [stdout] test contract::frontmatter::tests::frontmatter_fields_non_empty_and_includes_children_style ... ok
[INFO] [stdout] test contract::shortcodes::tests::grid_and_gallery_name_the_column_count_attr_per_line ... ok
[INFO] [stdout] test contract::shortcodes::tests::grid_and_gallery_templates_teach_the_positional_form ... ok
[INFO] [stdout] test contract::shortcodes::tests::grid_scroll_is_a_flag_attr_label_is_not ... ok
[INFO] [stdout] test contract::shortcodes::tests::name_matches_serde_snake_case ... ok
[INFO] [stdout] test contract::shortcodes::tests::template_opens_with_the_fence_name_and_closes_the_fence ... ok
[INFO] [stdout] test contract::sizes::tests::data_width_mapping ... ok
[INFO] [stdout] test csv_table::tests::test_csv_escaped_quote ... ok
[INFO] [stdout] test csv_table::tests::test_csv_wrapped_in_scroll_container ... ok
[INFO] [stdout] test csv_table::tests::test_tsv_tab_separator ... ok
[INFO] [stdout] test contract::tokens::tests::code_accent_primary_dark_is_pinned_not_derived_from_accent ... ok
[INFO] [stdout] test contract::tokens::tests::parse_tokens_string_value_has_no_dark ... ok
[INFO] [stdout] test csv_table::tests::test_csv_quoted_field_with_comma ... ok
[INFO] [stdout] test contract::tokens::tests::format_dark_root_block_emits_only_dark_tokens ... ok
[INFO] [stdout] test csv_table::tests::test_csv_with_caption ... ok
[INFO] [stdout] test csv_table::tests::test_csv_empty ... ok
[INFO] [stdout] test contract::tokens::tests::format_dark_root_block_returns_empty_when_no_dark_values ... ok
[INFO] [stdout] test date::tests::filename_date_followed_by_cjk_without_separator_is_rejected ... ok
[INFO] [stdout] test csv_table::tests::test_csv_html_escape ... ok
[INFO] [stdout] test contract::tokens::tests::tokens_json_includes_internal_tokens ... ok
[INFO] [stdout] test date::tests::filename_bare_date_md ... ok
[INFO] [stdout] test date::tests::filename_cjk_only_is_rejected_without_panic ... ok
[INFO] [stdout] test date::tests::filename_date_in_middle_does_not_match ... ok
[INFO] [stdout] test date::tests::filename_dated_then_cjk_slug_matches ... ok
[INFO] [stdout] test date::tests::filename_emoji_only_is_rejected_without_panic ... ok
[INFO] [stdout] test date::tests::filename_extensionless ... ok
[INFO] [stdout] test date::tests::filename_invalid_date_returns_none ... ok
[INFO] [stdout] test csv_table::tests::test_csv_basic ... ok
[INFO] [stdout] test csv_table::tests::test_csv_crlf_line_endings ... ok
[INFO] [stdout] test csv_table::tests::test_csv_no_header ... ok
[INFO] [stdout] test date::tests::filename_with_non_ascii_inside_date_window_is_rejected ... ok
[INFO] [stdout] test date::tests::frontmatter_malformed_returns_none ... ok
[INFO] [stdout] test date::tests::resolve_falls_through_to_filename ... ok
[INFO] [stdout] test date::tests::resolve_returns_none_when_nothing_available ... ok
[INFO] [stdout] test contract::sizes::tests::vertical_body_never_understates_the_aspect ... ok
[INFO] [stdout] test date::tests::filename_no_prefix ... ok
[INFO] [stdout] test date::tests::filename_with_dated_slug ... ok
[INFO] [stdout] test date::tests::resolve_uses_frontmatter_first ... ok
[INFO] [stdout] test date::tests::frontmatter_slash_form_normalized ... ok
[INFO] [stdout] test dep_graph::tests::duplicate_embed_pairs_are_collapsed ... ok
[INFO] [stdout] test dep_graph::tests::embed_closure_follows_multiple_hops ... ok
[INFO] [stdout] test date::tests::frontmatter_iso_date_passes_through ... ok
[INFO] [stdout] test dep_graph::tests::embed_closure_stops_at_the_resolver_depth_limit ... ok
[INFO] [stdout] test date::tests::frontmatter_iso_timestamp_truncated_to_date ... ok
[INFO] [stdout] test date::tests::resolve_falls_through_to_ctime ... ok
[INFO] [stdout] test date::tests::frontmatter_empty_string_returns_none ... ok
[INFO] [stdout] test dep_graph::tests::embed_pairs_compose_with_link_edges ... ok
[INFO] [stdout] test dep_graph::tests::embed_pairs_group_by_their_immediate_embedder ... ok
[INFO] [stdout] test date::tests::resolve_handles_empty_filenames_slice ... ok
[INFO] [stdout] test date::tests::resolve_tries_each_filename_in_order ... ok
[INFO] [stdout] test dep_graph::tests::empty_graph_has_no_edges ... ok
[INFO] [stdout] test event::time::tests::inclusive_and_equal_ends_are_accepted ... ok
[INFO] [stdout] test event::time::tests::malformed_values_are_rejected ... ok
[INFO] [stdout] test event::time::tests::bare_date_is_all_day ... ok
[INFO] [stdout] test event::time::tests::all_day_sorts_before_timed_on_the_same_day ... ok
[INFO] [stdout] test ast::visit::tests::visits_url_inside_figure_caption_inlines ... ok
[INFO] [stdout] test dep_graph::tests::embed_closure_terminates_on_a_cycle ... ok
[INFO] [stdout] test dep_graph::tests::embed_edges_are_a_subset_of_link_edges ... ok
[INFO] [stdout] test event::time::tests::end_before_start_is_an_error ... ok
[INFO] [stdout] test event::validation::tests::end_before_start_is_reported_once ... ok
[INFO] [stdout] test event::time::tests::space_and_t_separators_agree ... ok
[INFO] [stdout] test event::validation::tests::malformed_start_is_reported ... ok
[INFO] [stdout] test frontmatter::tests::crlf_frontmatter_spans_are_exact ... ok
[INFO] [stdout] test event::validation::tests::malformed_end_is_reported_without_a_second_ordering_complaint ... ok
[INFO] [stdout] test dep_graph::tests::forward_and_backlinks_are_reciprocal ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_cover_bare ... ok
[INFO] [stdout] test event::validation::tests::offset_and_z_are_rejected ... ok
[INFO] [stdout] test dep_graph::tests::multiple_sources_linking_the_same_target_accumulate ... ok
[INFO] [stdout] test dep_graph::tests::unknown_path_returns_empty_slice ... ok
[INFO] [stdout] test event::validation::tests::unknown_status_is_reported ... ok
[INFO] [stdout] test event::validation::tests::valid_event_fields_produce_no_diagnostic ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_block_scalar_body_is_not_scanned ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_span_partitions_the_document_byte_for_byte ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_span_splits_both_dialects ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_wikilink_cover_path_matches_generic ... ok
[INFO] [stdout] test frontmatter::tests::nested_cover_after_blank_line_is_found ... ok
[INFO] [stdout] test frontmatter::tests::parse_does_not_claim_a_thematic_break_as_frontmatter ... ok
[INFO] [stdout] test frontmatter::tests::test_frontmatter_range_byte_offsets ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_content_starts_with_dashes_but_not_frontmatter ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_crlf_byte_offsets ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_crlf_preserves_body ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_crlf_yaml_arrays ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_cover_with_trailing_comment ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_empty_frontmatter ... ok
[INFO] [stdout] test event::validation::tests::timezone_shape_is_checked ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_flow_collection_is_skipped ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_multiline_body ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_map_reads_both_dialects ... ok
[INFO] [stdout] test frontmatter::tests::no_frontmatter_delimiters_yields_no_frontmatter_refs ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_boolean_values ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_logo_uses_schema_derived_field_set ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_no_closing_delimiter ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_only_dashes ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_cover_double_quoted ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_with_frontmatter ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_frontmatter_with_trailing_whitespace_on_delimiter ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_invalid_yaml_preserves_body_no_data_loss ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_cover_single_quoted ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_invalid_yaml ... ok
[INFO] [stdout] test frontmatter::tests::test_serialize_with_frontmatter ... ok
[INFO] [stdout] test frontmatter::tests::test_render_body_equals_body_on_success ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_yaml_arrays ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_no_frontmatter ... ok
[INFO] [stdout] test frontmatter::tests::test_roundtrip ... ok
[INFO] [stdout] test frontmatter::tests::frontmatter_cover_with_pipe_attrs ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_crlf_content ... ok
[INFO] [stdout] test frontmatter::tests::test_render_body_excludes_failed_block ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_numeric_values ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::byline_accepts_a_block_scalar_with_a_markdown_link ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::byline_absent_or_empty_is_none ... ok
[INFO] [stdout] test frontmatter::tests::test_uid_scientific_notation_roundtrip ... ok
[INFO] [stdout] test frontmatter::tests::test_unquoted_uid_parsed_as_number ... ok
[INFO] [stdout] test frontmatter::tests::test_strip_control_chars_str_keeps_tab_lf_cr ... ok
[INFO] [stdout] test frontmatter::tests::test_value_as_string_handles_numbers ... ok
[INFO] [stdout] test frontmatter::tests::test_serialize_strips_stray_control_chars ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::byline_accepts_a_list ... ok
[INFO] [stdout] test frontmatter::tests::test_serialize_empty_frontmatter ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::project_typed_drops_multiple_bad_fields_keeps_good ... ok
[INFO] [stdout] test frontmatter::tests::test_parse_preserves_body_exactly ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::byline_of_the_wrong_shape_drops_only_itself ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::project_typed_ignores_unknown_fields ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::colophon_parses_like_byline_and_is_independent_of_it ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::project_typed_drops_only_the_unrepresentable_field ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::project_typed_clean_map_no_warnings ... ok
[INFO] [stdout] test frontmatter_typed::tests::frontmatter_ref_to_stem_single_char_quote_no_panic ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::project_typed_drops_malformed_skip_schema_field_keeps_neighbors ... ok
[INFO] [stdout] test frontmatter_typed::tests::float_like_uid_does_not_blank_struct ... ok
[INFO] [stdout] test frontmatter_typed::tests::editor_and_jury_round_trip_like_author ... ok
[INFO] [stdout] test frontmatter_typed::tests::missing_uid_is_none ... ok
[INFO] [stdout] test frontmatter_typed::tests::null_uid_is_none ... ok
[INFO] [stdout] test frontmatter_typed::tests::numeric_uid_via_json_path_coerces_and_preserves_siblings ... ok
[INFO] [stdout] test frontmatter_typed::tests::parses_home_marker_simplified ... ok
[INFO] [stdout] test frontmatter_typed::tests::parses_listed_field_simplified ... ok
[INFO] [stdout] test frontmatter_typed::tests::parses_listed_field_typed ... ok
[INFO] [stdout] test frontmatter_typed::tests::invalid_bool_string_still_drops_with_warning ... ok
[INFO] [stdout] test frontmatter_typed::tests::series_field_flag_roundtrips ... ok
[INFO] [stdout] test frontmatter_typed::tests::series_field_ordered_roundtrips ... ok
[INFO] [stdout] test frontmatter_typed::tests::location_and_place_page_round_trip_like_editor_and_jury ... ok
[INFO] [stdout] test frontmatter_typed::tests::string_uid_unchanged ... ok
[INFO] [stdout] test frontmatter_typed::tests::simplified_frontmatter_strips_quotes_from_bool_value ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::event_times_arrive_as_their_original_text_in_the_simplified_dialect ... ok
[INFO] [stdout] test frontmatter_typed::tests::quoted_nav_string_coerces_instead_of_vanishing ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_frontmatter_body_split_survives_crlf ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_frontmatter_ignores_a_setext_heading ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_frontmatter_ignores_a_thematic_break_after_a_closed_fence ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_frontmatter_ignores_a_url_above_a_setext_underline ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_frontmatter_ignores_dashes_inside_a_code_fence ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::every_bare_flag_is_recognised_by_the_parser ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_frontmatter_ignores_dashes_inside_a_directive_block ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_keys_are_empty_without_simplified_frontmatter ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_frontmatter_must_be_the_files_own_first_lines ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_keys_stop_at_the_delimiter_and_survive_colons_in_values ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::simplified_keys_include_the_names_the_typed_parser_drops ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::event_times_arrive_as_their_original_text_in_the_yaml_dialect ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::project_typed_numeric_uid_coerces ... ok
[INFO] [stdout] test frontmatter_typed::tests::numeric_title_coerces_to_string ... ok
[INFO] [stdout] test frontmatter_typed::tests::numeric_title_via_json_path_coerces ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_file_in_lowercase_folder ... ok
[INFO] [stdout] test frontmatter_typed::tests::numeric_uid_coerces_and_preserves_siblings ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_idempotent_for_already_lowercase ... ok
[INFO] [stdout] test frontmatter_typed::tests::parses_home_marker ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_non_index_with_url_override_in_title_case_folder ... ok
[INFO] [stdout] test frontmatter_typed::tests::quoted_bool_strings_coerce_for_every_option_bool_field ... ok
[INFO] [stdout] test frontmatter_typed::tests::simplified_frontmatter_invalid_bool_value_is_unset_not_false ... ok
[INFO] [stdout] test frontmatter_typed::project_typed_tests::project_typed_keeps_coercible_uid_drops_bad_weight ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_root_index_file ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_top_level_file ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_url_override_no_grandparent ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_slugify_path_segments_title_case_lowercased ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_url_override_cannot_escape ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_url_override_keeps_slashes ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_slugify_path_segments_lowercase_passthrough ... ok
[INFO] [stdout] test frontmatter_union::tests::author_list_is_one_name_per_item ... ok
[INFO] [stdout] test frontmatter_union::tests::author_wrong_shapes_report_what_was_found ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_url_override_with_title_case_grandparent ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_slugify_path_segments_empty ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_slugify_path_segments_spaces_kebabed ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_file_in_nested_title_case_folders ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_file_in_title_case_folder ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_slugify_path_segments_unicode_preserved ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_index_file_in_lowercase_folder ... ok
[INFO] [stdout] test frontmatter_typed::url_path_tests::test_compute_url_path_index_file_in_title_case_folder ... ok
[INFO] [stdout] test frontmatter_union::tests::author_empty_shapes_yield_no_names ... ok
[INFO] [stdout] test frontmatter_union::tests::author_single_string_is_one_name_verbatim ... ok
[INFO] [stdout] test frontmatter_union::tests::children_bool_true ... ok
[INFO] [stdout] test frontmatter_union::tests::children_other_types_off ... ok
[INFO] [stdout] test frontmatter_union::tests::credit_empty_shapes_yield_no_rows ... ok
[INFO] [stdout] test frontmatter_union::tests::series_bool ... ok
[INFO] [stdout] test frontmatter_union::tests::children_bare_path ... ok
[INFO] [stdout] test frontmatter_union::tests::children_roundtrip_via_to_value ... ok
[INFO] [stdout] test frontmatter_union::tests::credit_block_scalar_is_one_row_per_line ... ok
[INFO] [stdout] test frontmatter_union::tests::credit_wrong_shapes_report_what_was_found ... ok
[INFO] [stdout] test frontmatter_union::tests::children_bool_false ... ok
[INFO] [stdout] test frontmatter_union::tests::children_wikilink ... ok
[INFO] [stdout] test frontmatter_union::tests::children_empty_string_is_off ... ok
[INFO] [stdout] test frontmatter_union::tests::credit_rows_are_trimmed_and_blank_lines_dropped ... ok
[INFO] [stdout] test frontmatter_union::tests::children_string_true_false ... ok
[INFO] [stdout] test frontmatter_union::tests::credit_list_is_one_row_per_item ... ok
[INFO] [stdout] test frontmatter_union::tests::credit_single_string_is_one_row ... ok
[INFO] [stdout] test frontmatter_union::tests::series_empty_list_is_flag ... ok
[INFO] [stdout] test frontmatter_union::tests::series_list_of_strings ... ok
[INFO] [stdout] test frontmatter_union::tests::series_malformed_list_off ... ok
[INFO] [stdout] test frontmatter_union::tests::series_other_off ... ok
[INFO] [stdout] test heading::anchor::tests::test_accented_characters ... ok
[INFO] [stdout] test heading::anchor::tests::test_mixed_content ... ok
[INFO] [stdout] test heading::anchor::tests::test_strips_hash ... ok
[INFO] [stdout] test heading::anchor::tests::test_empty_string ... ok
[INFO] [stdout] test heading::anchor::tests::test_only_special_chars ... ok
[INFO] [stdout] test heading::anchor::tests::test_strips_leading_trailing_whitespace ... ok
[INFO] [stdout] test heading::anchor::tests::test_strips_pipe ... ok
[INFO] [stdout] test heading::anchor::tests::test_unicode_preserved ... ok
[INFO] [stdout] test heading::anchor::tests::test_basic_heading ... ok
[INFO] [stdout] test heading::extract::tests::dedups_duplicate_slugs ... ok
[INFO] [stdout] test heading::anchor::tests::test_consecutive_spaces ... ok
[INFO] [stdout] test heading::anchor::tests::test_strips_brackets ... ok
[INFO] [stdout] test heading::extract::tests::display_math_in_a_heading_keeps_both_delimiters ... ok
[INFO] [stdout] test heading::extract::tests::empty_doc_no_headings ... ok
[INFO] [stdout] test heading::extract::tests::headings_differing_only_inside_math_do_not_collide ... ok
[INFO] [stdout] test heading::extract::tests::grid_cell_heading_shares_the_page_id_counter ... ok
[INFO] [stdout] test heading::extract::tests::extracts_text_slug_level ... ok
[INFO] [stdout] test heading::anchor::tests::test_preserves_parentheses ... ok
[INFO] [stdout] test heading::extract::tests::a_cell_holding_two_same_titled_headings_still_yields_unique_ids ... ok
[INFO] [stdout] test heading::extract::tests::markdown_active_chars_in_tex_move_the_anchor_but_keep_graph_agreement ... ok
[INFO] [stdout] test heading::anchor::tests::test_strips_caret ... ok
[INFO] [stdout] test heading::extract::tests::math_heading_slug_is_identical_across_every_surface ... ok
[INFO] [stdout] test heading::extract::tests::no_id_carries_a_doubled_suffix ... ok
[INFO] [stdout] test heading::extract::tests::preserves_cjk ... ok
[INFO] [stdout] test heading::extract::tests::slug_matches_obsidian_anchor_for_punctuation ... ok
[INFO] [stdout] test heading::state::tests::a_hero_owns_the_title_slot_only_when_it_has_content_to_put_in_it ... ok
[INFO] [stdout] test heading::state::tests::a_language_suffixed_index_is_titled_by_its_folder ... ok
[INFO] [stdout] test heading::state::tests::an_image_only_hero_does_not_take_the_title_with_it ... ok
[INFO] [stdout] test heading::state::tests::body_supplies_title_cases ... ok
[INFO] [stdout] test heading::state::tests::compute_root_index_text_is_root_folder_name ... ok
[INFO] [stdout] test heading::state::tests::hero_detection_skips_leading_blank_lines ... ok
[INFO] [stdout] test heading::state::tests::hero_only_detected_at_top_not_mid_body ... ok
[INFO] [stdout] test heading::state::tests::hero_at_top_hides_heading_when_title_set ... ok
[INFO] [stdout] test heading::state::tests::hidden_for_index_file ... ok
[INFO] [stdout] test heading::state::tests::an_image_only_hero_via_body_media_fallback_does_not_take_the_title_with_it ... ok
[INFO] [stdout] test heading::state::tests::empty_title_produces_invisible_state ... ok
[INFO] [stdout] test heading::state::tests::hero_at_top_hides_heading_when_title_absent ... ok
[INFO] [stdout] test heading::state::tests::hidden_for_cjk_index ... ok
[INFO] [stdout] test heading::state::tests::hidden_for_non_markdown ... ok
[INFO] [stdout] test heading::state::tests::text_readme_uses_parent_folder ... ok
[INFO] [stdout] test heading::state::tests::text_root_index_uses_root_folder_name ... ok
[INFO] [stdout] test heading::state::tests::text_index_uses_parent_folder ... ok
[INFO] [stdout] test heading::state::tests::hidden_for_readme ... ok
[INFO] [stdout] test heading::state::tests::text_cjk_filename_preserved ... ok
[INFO] [stdout] test heading::state::tests::hidden_for_self_named_folder_note ... ok
[INFO] [stdout] test heading::state::tests::slot_only_hides_heading_when_title_absent ... ok
[INFO] [stdout] test heading::state::tests::source_is_title_when_frontmatter_title_set ... ok
[INFO] [stdout] test heading::state::tests::text_cjk_index_uses_parent ... ok
[INFO] [stdout] test heading::state::tests::text_article_uses_filename ... ok
[INFO] [stdout] test heading::state::tests::slot_only_hides_heading_regardless_of_title ... ok
[INFO] [stdout] test heading::state::tests::source_is_filename_when_title_absent ... ok
[INFO] [stdout] test heading::state::tests::text_root_self_named_uses_root_folder_name ... ok
[INFO] [stdout] test heading::state::tests::text_root_index_no_root_name_falls_back_to_stem ... ok
[INFO] [stdout] test heading::state::tests::hidden_for_root_self_named_home_with_root_folder_name ... ok
[INFO] [stdout] test heading::state::tests::hidden_when_translation_home ... ok
[INFO] [stdout] test heading::state::tests::root_index_md_still_hidden_without_root_folder_name ... ok
[INFO] [stdout] test heading::state::tests::text_with_root_article_unaffected ... ok
[INFO] [stdout] test heading::state::tests::text_self_named_folder_note_uses_parent ... ok
[INFO] [stdout] test heading::state::tests::text_underscore_normalizes_to_space ... ok
[INFO] [stdout] test heading::state::tests::text_with_root_nested_index_unaffected_by_root_name ... ok
[INFO] [stdout] test heading::state::tests::title_overrides_index_visibility_unchanged ... ok
[INFO] [stdout] test heading::state::tests::visible_for_root_level_article ... ok
[INFO] [stdout] test home::tests::test_detect_home_case_insensitive ... ok
[INFO] [stdout] test heading::text::tests::policy_is_one_function ... ok
[INFO] [stdout] test heading::state::tests::title_text_is_trimmed ... ok
[INFO] [stdout] test heading::state::tests::visible_for_cjk_article ... ok
[INFO] [stdout] test home::tests::test_detect_home_bare_stem_wins_over_lang_suffix ... ok
[INFO] [stdout] test heading::state::tests::visible_for_article_md ... ok
[INFO] [stdout] test heading::state::tests::visible_for_mdx ... ok
[INFO] [stdout] test home::tests::test_detect_home_lang_suffix_recognized_when_no_bare ... ok
[INFO] [stdout] test home::tests::test_detect_self_named_folder_note ... ok
[INFO] [stdout] test home::tests::test_detect_home_index_md_wins ... ok
[INFO] [stdout] test home::tests::test_detect_home_index_pages ... ok
[INFO] [stdout] test home::tests::test_is_home_file_empty_folder_name ... ok
[INFO] [stdout] test home::tests::test_detect_home_empty_list ... ok
[INFO] [stdout] test heading::text::tests::setext_soft_break_divergence_is_pinned_not_fixed ... ok
[INFO] [stdout] test home::tests::test_is_home_file_non_language_suffix_rejected ... ok
[INFO] [stdout] test heading::state::tests::whitespace_title_produces_invisible_state ... ok
[INFO] [stdout] test home::tests::test_detect_home_md_over_pages ... ok
[INFO] [stdout] test home::tests::test_is_home_file_self_named ... ok
[INFO] [stdout] test home::tests::test_index_beats_self_named ... ok
[INFO] [stdout] test home::tests::test_detect_home_no_candidates ... ok
[INFO] [stdout] test home::tests::test_detect_home_readme_over_underscore_index ... ok
[INFO] [stdout] test home::tests::test_is_home_file_self_named_across_case_space_and_hyphen ... ok
[INFO] [stdout] test home::tests::test_detect_home_underscore_index_over_main ... ok
[INFO] [stdout] test heading::text::tests::event_walk_and_inline_walk_agree_on_every_heading ... ok
[INFO] [stdout] test home::tests::test_detect_home_zh_shorthand_recognized ... ok
[INFO] [stdout] test home::tests::test_is_home_file_index_stem ... ok
[INFO] [stdout] test home::tests::test_is_home_file_no_match ... ok
[INFO] [stdout] test home::tests::test_marker_survives_folder_rename ... ok
[INFO] [stdout] test home::tests::test_is_home_file_self_named_case_insensitive ... ok
[INFO] [stdout] test home::tests::test_is_home_file_self_named_slug_mismatch_still_rejected ... ok
[INFO] [stdout] test home::tests::test_is_home_file_with_en_suffix ... ok
[INFO] [stdout] test home::tests::test_is_home_file_with_zh_hans_suffix ... ok
[INFO] [stdout] test home::tests::test_is_home_file_with_zh_hant_suffix ... ok
[INFO] [stdout] test home::tests::test_is_home_file_with_zh_shorthand_suffix ... ok
[INFO] [stdout] test home::tests::test_is_index_stem_rejects_non_stems ... ok
[INFO] [stdout] test home::tests::test_marker_beats_index ... ok
[INFO] [stdout] test home::tests::test_multiple_markers_pick_alphabetically_first ... ok
[INFO] [stdout] test home::tests::test_no_marker_matches_filename_detection ... ok
[INFO] [stdout] test home::tests::test_readme_beats_self_named ... ok
[INFO] [stdout] test home::tests::test_self_named_beats_alphabetical_fallback ... ok
[INFO] [stdout] test home::tests::test_self_named_beats_alphabetical_fallback_across_hyphen_and_space ... ok
[INFO] [stdout] test home::tests::test_self_named_case_insensitive ... ok
[INFO] [stdout] test home::tests::test_detect_home_fallback_to_first_doc_alphabetically ... ok
[INFO] [stdout] test home::tests::test_site_name_folder_name_normalized ... ok
[INFO] [stdout] test home::tests::test_in_folder_delegates_to_detect_home_file_for_index_stems ... ok
[INFO] [stdout] test home::tests::test_site_name_frontmatter_title_on_index_home_wins ... ok
[INFO] [stdout] test home::tests::test_is_index_stem_all_recognized ... ok
[INFO] [stdout] test home::tests::test_site_name_frontmatter_title_wins_for_article_home ... ok
[INFO] [stdout] test home::tests::test_is_index_stem_case_insensitive ... ok
[INFO] [stdout] test html_entities::tests::decodes_numeric_and_named_entities ... ok
[INFO] [stdout] test home::tests::test_site_name_no_homepage_falls_back_to_folder ... ok
[INFO] [stdout] test home::tests::test_site_name_readme_home_uses_folder ... ok
[INFO] [stdout] test home::tests::test_site_name_root_index_no_title_uses_folder ... ok
[INFO] [stdout] test home::tests::test_site_name_self_named_home_uses_folder ... ok
[INFO] [stdout] test home::tests::test_site_name_self_named_mismatched_case_keeps_own_title ... ok
[INFO] [stdout] test home::tests::test_site_name_titled_index_not_suppressed ... ok
[INFO] [stdout] test home::tests::test_strip_lang_suffix_zh_hans_still_works ... ok
[INFO] [stdout] test home::tests::test_strip_lang_suffix_zh_hant_still_works ... ok
[INFO] [stdout] test home::tests::test_strip_lang_suffix_zh_shorthand_accepted ... ok
[INFO] [stdout] test inert_regions::tests::a_second_comment_on_the_closing_line_is_still_inert ... ok
[INFO] [stdout] test inert_regions::tests::a_top_level_paragraph_ends_the_list_context ... ok
[INFO] [stdout] test inert_regions::tests::backtick_fence_body_is_inert ... ok
[INFO] [stdout] test inert_regions::tests::backtick_fence_info_string_may_not_contain_backticks ... ok
[INFO] [stdout] test inert_regions::tests::backtick_inside_a_comment_does_not_open_a_code_span ... ok
[INFO] [stdout] test inert_regions::tests::comment_inside_a_fence_does_not_leak_state ... ok
[INFO] [stdout] test date::tests::resolve_publish_date_never_panics_on_arbitrary_input ... ok
[INFO] [stdout] test inert_regions::tests::content_after_a_comment_closes_is_live_again ... ok
[INFO] [stdout] test html_entities::tests::text_that_was_never_encoded_survives_unchanged ... ok
[INFO] [stdout] test home::tests::test_strip_lang_suffix_zh_tw_still_works ... ok
[INFO] [stdout] test heading::state::tests::text_root_level_no_parent ... ok
[INFO] [stdout] test html_entities::tests::a_numeric_entity_is_decoded_whole ... ok
[INFO] [stdout] test heading::state::tests::text_root_self_named_mismatched_case_keeps_own_stem ... ok
[INFO] [stdout] test inert_regions::tests::shorter_run_does_not_close_a_longer_fence ... ok
[INFO] [stdout] test inert_regions::tests::indentation_inside_a_list_is_list_content_not_code ... ok
[INFO] [stdout] test inert_regions::tests::single_tick_does_not_close_a_double_tick_span ... ok
[INFO] [stdout] test inert_regions::tests::single_line_html_comment_is_inert ... ok
[INFO] [stdout] test inert_regions::tests::crlf_input_is_handled ... ok
[INFO] [stdout] test inert_regions::tests::double_backtick_span_is_inert ... ok
[INFO] [stdout] test inert_regions::tests::empty_comment_forms_do_not_swallow_the_document ... ok
[INFO] [stdout] test inert_regions::tests::unclosed_comment_is_inert_to_end_of_input ... ok
[INFO] [stdout] test inert_regions::tests::indented_code_block_is_inert ... ok
[INFO] [stdout] test inert_regions::tests::unmatched_backtick_leaves_the_line_live ... ok
[INFO] [stdout] test inert_regions::tests::tab_indent_counts_as_four_columns ... ok
[INFO] [stdout] test link_candidates::tests::anchor_only ... ok
[INFO] [stdout] test inert_regions::tests::tilde_fence_body_is_inert ... ok
[INFO] [stdout] test link_candidates::tests::bare_directory_name ... ok
[INFO] [stdout] test inert_regions::tests::unclosed_fence_stays_inert_to_end_of_input ... ok
[INFO] [stdout] test inert_regions::tests::inert_lines_length_matches_str_lines ... ok
[INFO] [stdout] test inert_regions::tests::inline_code_span_is_inert ... ok
[INFO] [stdout] test link_candidates::tests::trailing_slash ... ok
[INFO] [stdout] test link_candidates::tests::with_anchor_fragment ... ok
[INFO] [stdout] test link_candidates::tests::with_md_extension ... ok
[INFO] [stdout] test link_candidates::tests::without_extension ... ok
[INFO] [stdout] test link_completions::tests::a_better_match_still_beats_a_nearer_one ... ok
[INFO] [stdout] test inert_regions::tests::intersects_reports_partial_overlap ... ok
[INFO] [stdout] test link_candidates::tests::empty_target ... ok
[INFO] [stdout] test link_completions::tests::a_folder_with_a_space_inserts_a_valid_destination_that_still_resolves ... ok
[INFO] [stdout] test link_candidates::tests::with_path ... ok
[INFO] [stdout] test link_completions::tests::a_heading_inserts_its_text_in_a_wikilink_and_its_slug_in_an_inline_link ... ok
[INFO] [stdout] test link_completions::tests::a_file_is_inserted_as_the_encoded_path_from_the_page_folder ... ok
[INFO] [stdout] test link_completions::tests::a_leading_slash_in_an_inline_link_is_url_space_and_nothing_else_is ... ok
[INFO] [stdout] test inert_regions::tests::indented_code_cannot_interrupt_a_paragraph ... ok
[INFO] [stdout] test link_completions::tests::a_leading_slash_keeps_published_addresses_and_root_paths ... ok
[INFO] [stdout] test inert_regions::tests::mask_is_utf8_safe_across_cjk_prose ... ok
[INFO] [stdout] test link_completions::tests::a_page_without_a_recorded_url_is_not_offered_in_url_space ... ok
[INFO] [stdout] test link_completions::tests::a_picked_file_resolves_to_itself_although_a_copy_sits_beneath_the_page ... ok
[INFO] [stdout] test link_completions::tests::a_partial_percent_escape_while_typing_does_not_hide_everything ... ok
[INFO] [stdout] test link_completions::tests::a_folder_lists_under_a_trailing_slash_but_never_itself ... ok
[INFO] [stdout] test link_completions::tests::asset_ref_relative_from_a_root_page_is_root_relative ... ok
[INFO] [stdout] test inert_regions::tests::mask_preserves_byte_length_and_newlines ... ok
[INFO] [stdout] test link_completions::tests::a_typed_name_or_path_gives_the_same_relative_path ... ok
[INFO] [stdout] test inert_regions::tests::multi_line_html_comment_is_inert ... ok
[INFO] [stdout] test link_completions::tests::a_folder_named_like_a_language_round_trips_from_an_ordinary_page ... ok
[INFO] [stdout] test inert_regions::tests::ordered_list_marker_also_opens_list_context ... ok
[INFO] [stdout] test link_completions::tests::asset_path_syntax_never_offers_pages ... ok
[INFO] [stdout] test inert_regions::tests::indented_code_block_survives_an_internal_blank_line ... ok
[INFO] [stdout] test link_completions::tests::a_page_is_linked_by_its_relative_source_path_with_extension ... ok
[INFO] [stdout] test link_completions::tests::asset_ref_relative_never_reads_a_name_prefix_as_a_parent ... ok
[INFO] [stdout] test link_completions::tests::asset_ref_relative_normalizes_windows_separators ... ok
[INFO] [stdout] test link_completions::tests::asset_ref_relative_roots_a_path_outside_the_page_subtree ... ok
[INFO] [stdout] test link_completions::tests::asset_ref_relative_prefers_the_source_relative_form ... ok
[INFO] [stdout] test link_completions::tests::bare_wikilink_queries_keep_the_obsidian_forms ... ok
[INFO] [stdout] test link_completions::tests::bare_query_ordering_is_unchanged_by_path_keys ... ok
[INFO] [stdout] test inert_regions::tests::plain_prose_has_no_inert_regions ... ok
[INFO] [stdout] test link_completions::tests::cjk_prefix_matches ... ok
[INFO] [stdout] test link_completions::tests::embed_syntax_does_not_reorder_headings ... ok
[INFO] [stdout] test link_completions::tests::case_insensitive_match ... ok
[INFO] [stdout] test link_completions::tests::closer_in_tree_ranks_before_farther_in_same_language ... ok
[INFO] [stdout] test link_completions::tests::heading_candidates_rank_starts_with_before_contains ... ok
[INFO] [stdout] test link_completions::tests::contiguous_suffix_dir_match_outranks_a_gapped_one ... ok
[INFO] [stdout] test link_completions::tests::embed_ranks_assets_before_pages ... ok
[INFO] [stdout] test link_completions::tests::insert_for_always_round_trips_through_the_resolver ... ok
[INFO] [stdout] test link_completions::tests::root_source_prefers_root_candidate_over_language_tree ... ok
[INFO] [stdout] test link_completions::tests::same_language_tree_ranks_before_other_language ... ok
[INFO] [stdout] test link_completions::tests::empty_prefix_returns_all_candidates ... ok
[INFO] [stdout] test link_completions::tests::partial_directory_segment_still_lists_the_subtree ... ok
[INFO] [stdout] test link_completions::tests::path_query_matches_across_an_omitted_directory ... ok
[INFO] [stdout] test link_completions::tests::every_inserted_text_resolves_to_the_chosen_file_in_the_build ... ok
[INFO] [stdout] test link_completions::tests::match_quality_outranks_language ... ok
[INFO] [stdout] test link_completions::tests::the_label_is_the_title_when_there_is_one ... ok
[INFO] [stdout] test link_completions::tests::spaces_are_found_whether_typed_raw_or_as_percent_20 ... ok
[INFO] [stdout] test link_completions::tests::starts_with_uses_the_final_segment_for_a_path_query ... ok
[INFO] [stdout] test link_completions::tests::nfc_and_nfd_forms_match_each_other ... ok
[INFO] [stdout] test link_completions::tests::ties_break_by_path_deterministically ... ok
[INFO] [stdout] test link_completions::tests::folders_are_never_offered_in_url_space ... ok
[INFO] [stdout] test link_completions::tests::url_space_roots_an_asset_at_the_project_root ... ok
[INFO] [stdout] test link_completions::tests::url_space_writes_the_published_url_and_matches_its_segments ... ok
[INFO] [stdout] test link_completions::tests::path_query_rejects_a_different_directory ... ok
[INFO] [stdout] test link_completions::tests::wiki_contexts_keep_their_forms ... ok
[INFO] [stdout] test link_completions::tests::prefix_filters_and_starts_with_ranks_first ... ok
[INFO] [stdout] test link_completions::tests::trailing_slash_lists_only_that_directory ... ok
[INFO] [stdout] test link_completions::tests::generated_pages_exist_only_in_url_space ... ok
[INFO] [stdout] test link_completions::tests::heading_candidates_ignore_slashes_in_the_query ... ok
[INFO] [stdout] test link_completions::tests::a_folder_inserts_its_path_with_a_trailing_slash ... ok
[INFO] [stdout] test link_completions::tests::a_page_is_found_by_its_title_and_its_url_slug ... ok
[INFO] [stdout] test link_completions::tests::equal_matches_come_nearest_the_page_first_then_alphabetical ... ok
[INFO] [stdout] test media::tests::color_attr_does_not_leak_into_style_or_class ... ok
[INFO] [stdout] test media::tests::parse_color_attr_alongside_keywords ... ok
[INFO] [stdout] test media::tests::color_attr_alone_is_not_empty ... ok
[INFO] [stdout] test media::tests::placement_shares_a_segment_with_image_display_keywords ... ok
[INFO] [stdout] test media::tests::set_image_width_passthrough_non_image ... ok
[INFO] [stdout] test media::tests::parse_empty_color_attr_is_none ... ok
[INFO] [stdout] test media::tests::placement_leaves_prose_alone ... ok
[INFO] [stdout] test media::tests::set_image_width_standard_markdown ... ok
[INFO] [stdout] test media::tests::parse_image_width_clamps_and_rejects ... ok
[INFO] [stdout] test media::tests::repeated_color_attr_last_wins ... ok
[INFO] [stdout] test media::tests::parse_image_width_named_tokens ... ok
[INFO] [stdout] test media::tests::placement_accumulates_across_segments_instead_of_stopping_at_the_first ... ok
[INFO] [stdout] test media::tests::placement_matches_the_whole_segment_before_its_tokens ... ok
[INFO] [stdout] test media::tests::placement_earlier_segment_wins_over_a_later_one ... ok
[INFO] [stdout] test media::tests::parse_color_attr ... ok
[INFO] [stdout] test media::tests::set_image_width_strips_a_combined_align_and_size_segment ... ok
[INFO] [stdout] test media::tests::set_image_width_validates ... ok
[INFO] [stdout] test media::tests::test_align_side_css_class ... ok
[INFO] [stdout] test media::tests::test_extract_width_from_alias_caption_then_width ... ok
[INFO] [stdout] test media::tests::test_align_side_from_keyword ... ok
[INFO] [stdout] test media::tests::set_image_width_wikilink ... ok
[INFO] [stdout] test media::tests::test_classify_image_alias_empty_is_none_never_some_empty ... ok
[INFO] [stdout] test media::tests::test_classify_image_alias_structural_single_keyword ... ok
[INFO] [stdout] test media::tests::test_align_side_from_keyword_bare_directional ... ok
[INFO] [stdout] test media::tests::parse_image_width_percent ... ok
[INFO] [stdout] test media::tests::parse_image_width_rejects_non_width ... ok
[INFO] [stdout] test media::tests::placement_leaves_bare_left_and_right_to_object_position ... ok
[INFO] [stdout] test media::tests::test_extract_width_from_alias_only_first_width_extracted ... ok
[INFO] [stdout] test media::tests::test_extract_width_from_alias_single_segment_width ... ok
[INFO] [stdout] test media::tests::test_classify_image_alias_never_sees_a_width ... ok
[INFO] [stdout] test media::tests::test_extract_width_from_alias_segment_whitespace_trimmed ... ok
[INFO] [stdout] test media::tests::test_extract_width_from_alias_caption_only ... ok
[INFO] [stdout] test media::tests::test_classify_image_alias_none ... ok
[INFO] [stdout] test media::tests::placement_reads_each_vocabulary_on_its_own ... ok
[INFO] [stdout] test media::tests::test_extract_width_from_alias_caption_with_width_word_not_shadowed ... ok
[INFO] [stdout] test media::tests::test_extract_width_from_alias_width_then_caption ... ok
[INFO] [stdout] test media::tests::test_is_all_display_keywords_combined ... ok
[INFO] [stdout] test media::tests::test_is_all_display_keywords_excludes_alignment ... ok
[INFO] [stdout] test media::tests::test_is_all_display_keywords_positions ... ok
[INFO] [stdout] test media::tests::test_is_all_display_keywords_rejects_non_keywords ... ok
[INFO] [stdout] test media::tests::test_media_attrs_class_names_compose_with_align ... ok
[INFO] [stdout] test media::tests::test_match_width_token_recognized ... ok
[INFO] [stdout] test media::tests::test_fit_from_keyword_unknown ... ok
[INFO] [stdout] test media::tests::test_fit_from_keyword ... ok
[INFO] [stdout] test media::tests::test_fit_to_css_value ... ok
[INFO] [stdout] test media::tests::test_fit_from_keyword_case_insensitive ... ok
[INFO] [stdout] test media::tests::test_match_width_token_rejects_non_width ... ok
[INFO] [stdout] test media::tests::test_html_escape_basic ... ok
[INFO] [stdout] test media::tests::test_is_all_display_keywords_fits ... ok
[INFO] [stdout] test media::tests::test_media_attrs_extra_attrs_non_empty ... ok
[INFO] [stdout] test media::tests::test_media_attrs_class_names_preserved ... ok
[INFO] [stdout] test media::tests::test_classify_image_alias_caption_text ... ok
[INFO] [stdout] test media::tests::test_media_attrs_is_empty ... ok
[INFO] [stdout] test media::tests::test_classify_image_alias_structural_vs_caption ... ok
[INFO] [stdout] test media::tests::test_parse_media_attrs_align_last_wins ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_case_insensitive ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_empty_string ... ok
[INFO] [stdout] test media::tests::test_parse_media_attrs_align_with_cover ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_fit_and_position ... ok
[INFO] [stdout] test media::tests::test_position_from_keyword_compound ... ok
[INFO] [stdout] test media::tests::test_position_from_keyword_single ... ok
[INFO] [stdout] test media::tests::test_position_from_keyword_unknown ... ok
[INFO] [stdout] test media::tests::test_split_pipe_multiple_pipes ... ok
[INFO] [stdout] test media::tests::test_position_to_css_value ... ok
[INFO] [stdout] test media::tests::test_split_pipe_no_pipe ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_fit_only ... ok
[INFO] [stdout] test media::tests::test_position_from_keyword_case_insensitive ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_hyphenated_compound_position ... ok
[INFO] [stdout] test media::tests::test_strip_wikilink_empty ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_last_wins_for_duplicates ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_only_whitespace ... ok
[INFO] [stdout] test media::tests::test_strip_wikilink_with_whitespace ... ok
[INFO] [stdout] test media::tests::test_strip_wikilink_without_brackets ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_scale_down ... ok
[INFO] [stdout] test media::tests::test_parse_media_attrs_align_alone ... ok
[INFO] [stdout] test media::tests::test_split_pipe_pipe_at_edges ... ok
[INFO] [stdout] test media::tests::test_to_inline_style_empty ... ok
[INFO] [stdout] test media::tests::test_to_inline_style_fit_only ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_unknown_tokens_ignored ... ok
[INFO] [stdout] test page_kind::tests::listable_at_depth_direct_is_article_and_folder ... ok
[INFO] [stdout] test path_ext::tests::ext_dotfile_returns_none ... ok
[INFO] [stdout] test path_ext::tests::ext_no_dot_returns_none ... ok
[INFO] [stdout] test media::tests::test_strip_wikilink_with_brackets ... ok
[INFO] [stdout] test media::tests::test_to_inline_style_both ... ok
[INFO] [stdout] test page_kind::tests::default_is_article ... ok
[INFO] [stdout] test path_ext::tests::ext_query_string_not_stripped ... ok
[INFO] [stdout] test media::tests::test_strip_wikilink_with_pipe ... ok
[INFO] [stdout] test path_ext::tests::ext_plain_file ... ok
[INFO] [stdout] test page_kind::tests::listable_at_depth_all_is_article_only ... ok
[INFO] [stdout] test media::tests::test_to_inline_style_position_only ... ok
[INFO] [stdout] test path_ext::tests::ext_uppercase_lowercased ... ok
[INFO] [stdout] test path_ext::tests::ext_with_dir ... ok
[INFO] [stdout] test path_ext::tests::lower_plain_file ... ok
[INFO] [stdout] test path_ext::tests::lower_no_extension ... ok
[INFO] [stdout] test path_ext::tests::lower_strips_fragment ... ok
[INFO] [stdout] test path_ext::tests::lower_strips_query ... ok
[INFO] [stdout] test path_ext::tests::lower_with_dir ... ok
[INFO] [stdout] test render::audio::tests::audio_basic_shape ... ok
[INFO] [stdout] test media::tests::test_split_pipe_with_pipe ... ok
[INFO] [stdout] test media::tests::test_strip_wikilink_partial_brackets ... ok
[INFO] [stdout] test path_ext::tests::lower_strips_query_and_fragment ... ok
[INFO] [stdout] test path_ext::tests::lower_uppercase_lowercased ... ok
[INFO] [stdout] test path_ext::tests::lower_empty_string ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_all_unknown ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_bare_left_is_position ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_position_only ... ok
[INFO] [stdout] test media::tests::test_parse_attrs_two_word_position ... ok
[INFO] [stdout] test render::iframe::tests::iframe_with_sandbox_attr ... ok
[INFO] [stdout] test render::audio::tests::audio_emits_pre_phase_0_class_and_attrs ... ok
[INFO] [stdout] test render::iframe::tests::iframe_with_title ... ok
[INFO] [stdout] test render::audio::tests::audio_escapes_url ... ok
[INFO] [stdout] test render::audio::tests::audio_preserves_extension ... ok
[INFO] [stdout] test render::audio::tests::audio_unknown_extension_falls_back_to_octet_stream ... ok
[INFO] [stdout] test render::audio::tests::audio_with_controls ... ok
[INFO] [stdout] test render::iframe::tests::iframe_allow_empty_string_is_omitted ... ok
[INFO] [stdout] test render::iframe::tests::iframe_allowfullscreen_false_is_omitted ... ok
[INFO] [stdout] test render::iframe::tests::iframe_basic_shape ... ok
[INFO] [stdout] test render::iframe::tests::iframe_carries_the_whole_placement ... ok
[INFO] [stdout] test render::iframe::tests::iframe_with_allow_attr ... ok
[INFO] [stdout] test render::iframe::tests::iframe_with_allowfullscreen ... ok
[INFO] [stdout] test render::iframe::tests::iframe_with_query_param ... ok
[INFO] [stdout] test render::audio::tests::audio_extension_lookup_ignores_query_and_fragment ... ok
[INFO] [stdout] test render::iframe::tests::iframe_without_allow_omits_attr ... ok
[INFO] [stdout] test render::audio::tests::audio_mime_per_extension ... ok
[INFO] [stdout] test render::image::tests::alt_with_quotes_is_escaped ... ok
[INFO] [stdout] test render::image::tests::bare_img_with_dominant_color_no_lqip ... ok
[INFO] [stdout] test render::image::tests::base_descriptor_caps_at_deploy_max_edge ... ok
[INFO] [stdout] test render::image::tests::comma_named_raster_with_no_ladder_encodes_single_url_srcset ... ok
[INFO] [stdout] test render::image::tests::cover_slug_url_emits_real_dimensions_not_fallback ... ok
[INFO] [stdout] test render::image::tests::email_body_output_unchanged_by_ladder ... ok
[INFO] [stdout] test render::image::tests::extra_attrs_passed_through_verbatim ... ok
[INFO] [stdout] test render::image::tests::comma_named_webp_source_encodes_img_srcset_commas_but_not_base_src ... ok
[INFO] [stdout] test render::image::tests::hero_context_uses_full_bleed_sizes ... ok
[INFO] [stdout] test render::image::tests::hero_plate_context_uses_fixed_sizes_not_viewport ... ok
[INFO] [stdout] test render::image::tests::lqip_style_suppressed_when_extra_attrs_has_style ... ok
[INFO] [stdout] test render::image::tests::markdown_inline_does_not_wrap_in_figure ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_no_caption_wraps_in_figure ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_no_manifest_still_wraps_in_figure ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_width_page_uses_page_band_sizes ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_width_none_omits_data_width ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_width_wide_with_caption ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_wraps_picture_when_webp_present ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_with_caption_adds_figcaption ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_width_screen_emits_data_width_on_figure ... ok
[INFO] [stdout] test render::image::tests::no_comma_filename_srcset_is_not_over_encoded ... ok
[INFO] [stdout] test render::image::tests::percent_encoded_src_gets_encoded_rung_urls ... ok
[INFO] [stdout] test render::image::tests::comma_named_raster_encodes_srcset_commas_but_not_base_src ... ok
[INFO] [stdout] test render::image::tests::eager_swaps_loading_attr_and_adds_fetchpriority ... ok
[INFO] [stdout] test render::image::tests::favicon_is_bare_16x16_with_class ... ok
[INFO] [stdout] test render::image::tests::folder_card_cover_eager_still_gets_auto_sizes ... ok
[INFO] [stdout] test render::image::tests::ladder_srcset_emitted_for_wide_raster ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_caption_is_html_escaped ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_width_wide_uses_wide_band_sizes ... ok
[INFO] [stdout] test render::image::tests::missing_dimensions_fall_back_to_800x600 ... ok
[INFO] [stdout] test render::image::tests::folder_card_cover_uses_card_sizes ... ok
[INFO] [stdout] test render::image::tests::grid_cell_scope_sets_a_body_images_sizes ... ok
[INFO] [stdout] test render::image::tests::hero_plate_false_is_byte_identical_to_unit_hero ... ok
[INFO] [stdout] test render::image::tests::markdown_standalone_width_screen_uses_full_bleed_sizes ... ok
[INFO] [stdout] test render::image::tests::no_ladder_below_first_rung_keeps_legacy_shape ... ok
[INFO] [stdout] test render::image::tests::probe_paths_percent_decodes_src ... ok
[INFO] [stdout] test render::image::tests::scroll_shape_skips_tabindex_under_vertical_typesetting ... ok
[INFO] [stdout] test render::image::tests::portrait_base_descriptor_uses_post_resize_width ... ok
[INFO] [stdout] test render::image::tests::picture_wrap_when_webp_exists ... ok
[INFO] [stdout] test render::image::tests::portrait_below_first_rung_keeps_legacy_shape ... ok
[INFO] [stdout] test render::image::tests::synthesize_gallery_thumb_non_raster_bare_img ... ok
[INFO] [stdout] test render::image::tests::synthesize_email_body_no_picture_no_data ... ok
[INFO] [stdout] test render::image::tests::picture_srcset_uses_to_webp_of_src_not_stored_variant ... ok
[INFO] [stdout] test render::image::tests::scroll_shape_tags_only_when_option_and_ratio_both_say_so ... ok
[INFO] [stdout] test render::image::tests::synthesize_hero_bare_with_lqip_in_snapshot_still_bare ... ok
[INFO] [stdout] test render::image::tests::synthesize_hero_bare_with_style_via_extra_attrs ... ok
[INFO] [stdout] test render::image::tests::synthesize_site_logo_basic_shape ... ok
[INFO] [stdout] test render::image::tests::synthesize_email_body_with_dims ... ok
[INFO] [stdout] test render::image::tests::synthesize_email_body_without_dims ... ok
[INFO] [stdout] test render::image::tests::synthesize_hero_bare_basic_shape ... ok
[INFO] [stdout] test render::image::tests::synthesize_hero_bare_byte_shape_matches_legacy_fallback ... ok
[INFO] [stdout] test render::image::tests::synthesize_hero_bare_escapes_url ... ok
[INFO] [stdout] test render::image::tests::synthesize_gallery_thumb_threads_extra_attrs ... ok
[INFO] [stdout] test render::image::tests::picture_wrap_for_raster_original_no_lqip ... ok
[INFO] [stdout] test render::image::tests::transparent_image_with_empty_lqip_gets_no_placeholder_style ... ok
[INFO] [stdout] test render::image::tests::synthesize_site_logo_escapes_src ... ok
[INFO] [stdout] test render::image::tests::synthesize_tracking_pixel_escapes_url ... ok
[INFO] [stdout] test render::image::tests::unknown_dims_keep_legacy_shape ... ok
[INFO] [stdout] test render::image::tests::synthesize_tracking_pixel_basic ... ok
[INFO] [stdout] test render::image::tests::synthesize_tracking_pixel_no_lazy_no_lqip ... ok
[INFO] [stdout] test render::image::tests::vertical_body_image_declares_the_column_height_times_its_aspect ... ok
[INFO] [stdout] test render::image::tests::webp_source_animated_is_byte_identical_bare_img ... ok
[INFO] [stdout] test render::image::tests::webp_source_card_context_uses_card_sizes ... ok
[INFO] [stdout] test render::image::tests::webp_source_in_email_body_never_leaks_srcset ... ok
[INFO] [stdout] test render::image::tests::webp_source_uppercase_ext_ladders_and_uses_src_case ... ok
[INFO] [stdout] test render::image::tests::wrap_in_figure_no_width_no_attribute ... ok
[INFO] [stdout] test render::image::tests::synthesize_site_logo_does_not_emit_picture_or_lqip ... ok
[INFO] [stdout] test render::image::tests::wrap_in_figure_width_with_caption ... ok
[INFO] [stdout] test render::image::tests::wrap_in_figure_width_emits_data_width_attribute ... ok
[INFO] [stdout] test render::model::tests::model_carries_the_whole_placement ... ok
[INFO] [stdout] test render::image::tests::webp_source_lqip_style_survives_on_laddered_img ... ok
[INFO] [stdout] test render::image::tests::webp_source_gallery_context_uses_gallery_sizes ... ok
[INFO] [stdout] test render::image::tests::webp_source_explicit_non_animated_flag_ladders ... ok
[INFO] [stdout] test render::model::tests::model_basic_shape ... ok
[INFO] [stdout] test render::image::tests::webp_source_hero_context_uses_full_bleed_sizes ... ok
[INFO] [stdout] test render::model::tests::model_emits_moss_embed_class_and_data_type ... ok
[INFO] [stdout] test render::image::tests::synthesize_email_body_escapes ... ok
[INFO] [stdout] test render::image::tests::vertical_sizes_render_gate_golden_matches_the_synthesizer ... FAILED
[INFO] [stdout] test render::model::tests::model_suppresses_default_flag_when_param_false ... ok
[INFO] [stdout] test render::model::tests::model_emits_width_and_height_style ... ok
[INFO] [stdout] test render::model::tests::model_emits_width_style ... ok
[INFO] [stdout] test render::model::tests::model_with_auto_rotate ... ok
[INFO] [stdout] test render::model::tests::page_needs_model_viewer_script_detects_rendered_model ... ok
[INFO] [stdout] test render::model::tests::model_with_camera_controls ... ok
[INFO] [stdout] test render::image::tests::scroll_shape_wraps_a_bare_webp_source_in_a_scroll_container ... ok
[INFO] [stdout] test render::image::tests::synthesize_gallery_thumb_emits_picture_with_lazy ... ok
[INFO] [stdout] test render::image::tests::webp_source_portrait_base_descriptor_uses_post_resize_width ... ok
[INFO] [stdout] test render::image::tests::webp_source_small_is_byte_identical_bare_img ... ok
[INFO] [stdout] test render::model::tests::page_needs_model_viewer_script_false_without_a_model ... ok
[INFO] [stdout] test render::image::tests::webp_source_unknown_dims_is_bare_img ... ok
[INFO] [stdout] test render::pdf::tests::pdf_query_and_fragment_appended_to_url ... ok
[INFO] [stdout] test render::pdf::tests::pdf_query_before_fragment ... ok
[INFO] [stdout] test render::pdf::tests::pdf_stem_strips_directory_and_extension ... ok
[INFO] [stdout] test render::placement::tests::a_caption_is_escaped ... ok
[INFO] [stdout] test render::image::tests::webp_source_wide_emits_img_srcset_no_picture ... ok
[INFO] [stdout] test render::image::tests::picture_wrap_for_raster_original_with_lqip ... ok
[INFO] [stdout] test render::pdf::tests::pdf_basic_shape ... ok
[INFO] [stdout] test render::pdf::tests::pdf_carries_the_whole_placement ... ok
[INFO] [stdout] test render::placement::tests::an_empty_placement_contributes_nothing ... ok
[INFO] [stdout] test render::placement::tests::an_explicit_size_wins_over_a_width_token ... ok
[INFO] [stdout] test render::pdf::tests::pdf_escapes_url_specials ... ok
[INFO] [stdout] test render::placement::tests::a_caption_wrapper_carries_the_width_and_the_float ... ok
[INFO] [stdout] test render::placement::tests::a_caption_wrapper_with_only_a_size_still_carries_it ... ok
[INFO] [stdout] test render::model::tests::model_with_ar ... ok
[INFO] [stdout] test render::model::tests::model_emits_touch_action_and_loading ... ok
[INFO] [stdout] test render::pdf::tests::pdf_no_data_width_when_absent ... ok
[INFO] [stdout] test render::placement::tests::each_field_becomes_its_own_fragment ... ok
[INFO] [stdout] test render::model::tests::model_closes_tag ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_codepen_embed_passthrough ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_already_embed ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_generic_http ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_generic_https ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_invalid_id_falls_to_generic ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_malformed_url ... ok
[INFO] [stdout] test render::model::tests::model_escapes_url ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_vimeo_standard ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_codepen_pen_to_embed ... ok
[INFO] [stdout] test render::model::tests::model_defaults_emit_camera_controls_and_auto_rotate ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_vimeo_unlisted ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_shorts ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_shortlink_with_timestamp ... ok
[INFO] [stdout] test render::url_embed::tests::synthesize_url_embed_full_youtube_shape ... ok
[INFO] [stdout] test render::url_embed::tests::synthesize_url_embed_generic_no_provider_attr ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_live ... ok
[INFO] [stdout] test render::url_embed::tests::dispatch_generic_url_with_query_preserved_in_src ... ok
[INFO] [stdout] test render::url_embed::tests::synthesize_url_embed_alias_xss_is_escaped ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_shortlink ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_no_v_param_falls_to_generic ... ok
[INFO] [stdout] test render::url_embed::tests::synthesize_url_embed_codepen_has_sandbox ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_no_www ... ok
[INFO] [stdout] test render::video::tests::a_ladder_registered_for_another_video_does_not_leak ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_timestamp_with_s_suffix ... ok
[INFO] [stdout] test render::url_embed::tests::synthesize_url_embed_pothole_alias_becomes_title ... ok
[INFO] [stdout] test render::url_embed::tests::synthesize_url_embed_pothole_sizing ... ok
[INFO] [stdout] test render::video::tests::synth_video_dims_from_snapshot ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_watch ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_youtube_watch_with_timestamp ... ok
[INFO] [stdout] test render::url_embed::tests::synthesize_url_embed_pothole_width_token ... ok
[INFO] [stdout] test render::video::tests::synth_video_poster_and_thumb ... ok
[INFO] [stdout] test render::video::tests::video_emits_closing_tag ... ok
[INFO] [stdout] test render::video::tests::video_emits_controls_and_playsinline_on_default_path ... ok
[INFO] [stdout] test render::video::tests::the_ladder_form_emits_no_download_link ... ok
[INFO] [stdout] test render::video::tests::the_ladder_form_keeps_the_poster ... ok
[INFO] [stdout] test render::video::tests::video_emits_height_param_when_present ... ok
[INFO] [stdout] test render::video::tests::video_basic_shape ... ok
[INFO] [stdout] test render::video::tests::video_emits_width_param_when_present ... ok
[INFO] [stdout] test render::video::tests::video_mov_extension_swaps_to_mp4 ... ok
[INFO] [stdout] test render::video::tests::video_mp4_extension_pass_through ... ok
[INFO] [stdout] test render::video::tests::video_no_width_or_height_attrs_when_snapshot_empty ... ok
[INFO] [stdout] test render::video::tests::video_single_src_no_nested_source ... ok
[INFO] [stdout] test render::video::tests::video_src_is_html_escaped ... ok
[INFO] [stdout] test render::video::tests::video_uppercase_mov_extension_swaps_to_mp4 ... ok
[INFO] [stdout] test render::video::tests::video_with_a_registered_ladder_emits_sources_and_drops_src ... ok
[INFO] [stdout] test render::video::tests::the_progressive_mp4_is_the_last_source ... ok
[INFO] [stdout] test render::video::tests::video_webm_extension_pass_through ... ok
[INFO] [stdout] test resolve::asset_class::tests::a_bare_name_at_the_root_is_found_by_search_in_any_case ... ok
[INFO] [stdout] test render::video::tests::video_emits_moss_embed_classes ... ok
[INFO] [stdout] test resolve::asset_class::tests::a_folder_without_a_note_is_not_a_file ... ok
[INFO] [stdout] test resolve::asset_class::tests::a_name_that_literally_contains_percent_20_wins_over_the_decoded_one ... ok
[INFO] [stdout] test render::video::tests::data_type_video_emitted_on_default_branch ... ok
[INFO] [stdout] test resolve::asset_class::tests::absolute_path_resolves_from_root ... ok
[INFO] [stdout] test render::video::tests::video_emits_preload_metadata ... ok
[INFO] [stdout] test render::video::tests::loop_keyword_emits_autoplay_muted_loop_playsinline_no_controls ... ok
[INFO] [stdout] test resolve::asset_class::tests::bare_name_is_found_by_search ... ok
[INFO] [stdout] test render::video::tests::loop_keyword_emits_data_type_and_data_loop ... ok
[INFO] [stdout] test resolve::asset_class::tests::case_mismatch_reports_the_real_case ... ok
[INFO] [stdout] test resolve::asset_class::tests::equally_near_copies_are_ambiguous_with_the_builds_pick ... ok
[INFO] [stdout] test resolve::asset_class::tests::literal_exact_relative_hit ... ok
[INFO] [stdout] test resolve::asset_registry::tests::bmp_ico_tiff_are_viewer_only_images ... ok
[INFO] [stdout] test render::video::tests::loop_with_size_emits_width_height_and_loop_set ... ok
[INFO] [stdout] test render::video::tests::synth_video_mov_to_mp4 ... ok
[INFO] [stdout] test resolve::asset_class::tests::separator_fallback_to_root ... ok
[INFO] [stdout] test resolve::authored_assets::tests::image_definition_association_uses_pulldowns_label_normalization_and_byte_span ... ok
[INFO] [stdout] test render::video::tests::synth_video_omits_zero_dims ... ok
[INFO] [stdout] test resolve::asset_registry::tests::extensions_are_unique ... ok
[INFO] [stdout] test resolve::asset_class::tests::the_copy_beside_the_page_wins ... ok
[INFO] [stdout] test resolve::asset_registry::tests::image_avif_is_embeddable ... ok
[INFO] [stdout] test resolve::asset_class::tests::a_name_written_in_another_unicode_form_is_still_written_exactly ... ok
[INFO] [stdout] test resolve::authored_assets::tests::image_definition_association_uses_the_renderers_math_mode ... ok
[INFO] [stdout] test resolve::authored_assets::tests::blocking_verdict_reuses_the_canonical_resolver ... ok
[INFO] [stdout] test resolve::asset_class::tests::a_target_climbing_out_of_the_site_is_found_by_name_like_the_wiki_form ... ok
[INFO] [stdout] test resolve::authored_assets::tests::image_reference_definitions_keep_the_definition_destination_span ... ok
[INFO] [stdout] test resolve::authored_assets::tests::markdown_and_wikilink_candidates_keep_their_authored_spans ... ok
[INFO] [stdout] test resolve::authored_assets::tests::collapsed_and_shortcut_image_uses_share_one_utf8_definition_destination ... ok
[INFO] [stdout] test resolve::authored_assets::tests::offsets_survive_utf8_and_crlf ... ok
[INFO] [stdout] test resolve::authored_assets::tests::escapes_and_inert_regions_do_not_create_candidates ... ok
[INFO] [stdout] test resolve::asset_class::tests::the_nearest_copy_wins_not_the_shallowest ... ok
[INFO] [stdout] test resolve::authored_assets::tests::only_image_uses_associate_a_reference_definition ... ok
[INFO] [stdout] test resolve::authored_assets::tests::structural_boundaries_match_multiline_attrs_hero_priority_and_inert_openers ... ok
[INFO] [stdout] test resolve::asset_registry::tests::avi_mkv_present_but_not_browser_embeddable ... ok
[INFO] [stdout] test resolve::authored_assets::tests::parser_adapter_does_not_adopt_a_rename_scanners_unknown_block_superset ... ok
[INFO] [stdout] test resolve::asset_registry::tests::every_renderer_extension_is_in_registry ... ok
[INFO] [stdout] test resolve::authored_assets::tests::repeated_refs_are_distinct_but_markdown_and_gallery_overlap_once ... ok
[INFO] [stdout] test resolve::authored_assets::tests::structural_modes_share_boundaries_but_keep_their_distinct_ownership_rules ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_block_id_alphanumeric_only ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_block_id_in_code_not_transformed ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_block_id_must_be_at_line_end ... ok
[INFO] [stdout] test resolve::authored_assets::tests::parser_aligned_shortcodes_cover_attr_positional_body_and_nested_forms ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_empty_content ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_id_with_only_hyphens_rejected ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_build_src_plain ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_dim_attrs_none ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_dim_attrs_width_only ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_file_stem ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_html_escape_attr ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::a_comma_joined_keyed_segment_tolerates_a_trailing_bare_flag ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_dim_attrs_box ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_trailing_whitespace_after_id ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_html_escape_attr_apostrophe_passthrough ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::bare_more_flag_with_no_target_is_ignored ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_no_block_ids ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_strip_block_id_from_paragraph ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_content_with_trailing_newline_preserved ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::a_keyed_segment_still_wins_over_a_lookalike_caption ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_build_src_with_query ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::bare_px_token_is_not_recognized ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::marker_omits_size_when_absent ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_multiple_block_ids ... ok
[INFO] [stdout] test resolve::embed_renderer::common::tests::test_build_src_with_query_and_fragment ... ok
[INFO] [stdout] test resolve::block_refs::tests::test_tilde_fence_preserved ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::marker_roundtrips_covers ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::marker_roundtrips_more ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::caption_drops_the_placement_words_it_shared_a_segment_with ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::parses_box_size ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::parses_covers_only ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::caption_with_a_colon_is_not_swallowed_by_the_keyed_grammar ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::parses_more_target ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::parses_percent_size ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::keyed_more_with_empty_target_is_ignored ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::size_coexists_with_limit_key ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::parses_vh_size ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_dim_css_px ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_embed_marker_prefixes_stable ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::marker_roundtrips ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_dim_css_vh ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_sizing_parse_box_percent_by_px ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_sizing_parse_box_px ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_sizing_parse_box_vh_height ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_sizing_parse_empty_returns_none ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_sizing_parse_width_only_px ... ok
[INFO] [stdout] test resolve::embeds::tests::test_basic_embed ... ok
[INFO] [stdout] test resolve::embeds::tests::test_block_ref_embed ... ok
[INFO] [stdout] test resolve::embeds::tests::test_circular_embed_detection ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_sizing_parse_width_only_percent ... ok
[INFO] [stdout] test resolve::embeds::tests::test_content_around_embed_preserved ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::marker_roundtrips_new_fields ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_sizing_parse_malformed_box_is_none ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::avif_in_figure_images ... ok
[INFO] [stdout] test resolve::embeds::tests::test_deferred_markers_dispatches_single ... ok
[INFO] [stdout] test resolve::embeds::tests::test_deferred_markers_prefix_matching_exact ... ok
[INFO] [stdout] test resolve::embeds::tests::test_deferred_markers_empty_handlers_noop ... ok
[INFO] [stdout] test resolve::embeds::tests::test_deferred_markers_dispatches_multiple_different_prefixes ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_sizing_parse_rejects_display_keywords ... ok
[INFO] [stdout] test resolve::embeds::tests::test_extract_block_section_basic ... ok
[INFO] [stdout] test resolve::embeds::tests::test_embed_deps_tracked ... ok
[INFO] [stdout] test resolve::embeds::tests::test_extract_block_section_not_found ... ok
[INFO] [stdout] test resolve::embeds::tests::test_extract_heading_section_basic ... ok
[INFO] [stdout] test resolve::embeds::tests::test_extract_block_section_no_substring_collision ... ok
[INFO] [stdout] test resolve::embeds::tests::test_extract_heading_section_not_found ... ok
[INFO] [stdout] test resolve::embeds::tests::test_file_not_found ... ok
[INFO] [stdout] test resolve::embeds::tests::test_heading_scoped_embed ... ok
[INFO] [stdout] test resolve::embeds::tests::test_heading_scoped_embed_raw_anchor ... ok
[INFO] [stdout] test resolve::embeds::tests::test_no_frontmatter ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::figure_extensions_are_in_asset_registry ... ok
[INFO] [stdout] test resolve::embeds::tests::test_block_ref_not_found ... ok
[INFO] [stdout] test resolve::embeds::tests::test_extract_heading_section_last ... ok
[INFO] [stdout] test resolve::embeds::tests::test_deferred_markers_unknown_prefix_left_intact ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_embed_class_constants_stable ... ok
[INFO] [stdout] test resolve::embeds::tests::test_multiple_embeds ... ok
[INFO] [stdout] test resolve::embeds::tests::test_deferred_markers_handler_can_emit_diagnostics ... ok
[INFO] [stdout] test resolve::embeds::tests::test_deferred_markers_unclosed_marker_preserved ... ok
[INFO] [stdout] test resolve::embeds::tests::test_strip_frontmatter_no_closing ... ok
[INFO] [stdout] test resolve::embeds::tests::test_strip_frontmatter_none ... ok
[INFO] [stdout] test resolve::embeds::tests::test_unresolved_marker_preserved ... ok
[INFO] [stdout] test resolve::embeds::tests::test_parse_heading ... ok
[INFO] [stdout] test resolve::embeds::tests::test_recursive_embed ... ok
[INFO] [stdout] test resolve::embeds::tests::test_split_target ... ok
[INFO] [stdout] test resolve::ext_kind::tests::classifies_each_family ... ok
[INFO] [stdout] test resolve::ext_kind::tests::only_media_blocks_a_publish_when_it_is_missing ... ok
[INFO] [stdout] test resolve::embeds::tests::test_strip_frontmatter_basic ... ok
[INFO] [stdout] test resolve::ext_kind::tests::a_provider_url_is_a_player_and_an_image_url_is_an_image ... ok
[INFO] [stdout] test resolve::ext_kind::tests::kind_matches_registry_for_all_known_exts ... ok
[INFO] [stdout] test resolve::embeds::tests::test_heading_not_found ... ok
[INFO] [stdout] test resolve::embeds::tests::test_extract_heading_section_raw_anchor ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::md_destination_keeps_a_space_inside_angle_brackets ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::md_destination_encodes_only_what_breaks_or_changes_a_destination ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::md_destination_keeps_balanced_parentheses_and_non_ascii_raw ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::md_destination_parses_back_to_the_original_name ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_decode_path_falls_back_on_invalid_utf8 ... ok
[INFO] [stdout] test resolve::ext_kind::tests::the_dispatcher_and_the_parser_ask_two_related_questions ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_decode_path_inverts_the_segment_encoder ... ok
[INFO] [stdout] test resolve::ext_kind::tests::typed_site_embed_excludes_images_externals_and_unknown ... ok
[INFO] [stdout] test resolve::embeds::tests::test_max_depth_protection ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_encode_url_preserves_fragment ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_encode_url_no_suffix_matches_path_encoder ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_encode_url_preserves_query_and_fragment_together ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::split_url_path_at_fragment ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_encode_url_preserves_query_string ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_encode_url_still_encodes_path_segments ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::split_url_path_no_separator_returns_empty_suffix ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::split_url_path_picks_first_separator ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_asset_path_encodes_non_ascii ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_asset_path_preserves_unreserved ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_asset_path_root_to_nested ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_asset_path_same_dir ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_asset_path_sibling_dir ... ok
[INFO] [stdout] test resolve::embeds::tests::test_parse_embed_marker ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_url_index ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_url_index_from_dir ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::split_url_path_at_question_mark ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_url_nested ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_asset_path_encodes_spaces ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_url_nested_to_root ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_url_root_level_file ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_url_root_to_nested ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_resolve_case_insensitive ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_decode_path_is_a_noop_without_escapes ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_resolve_filename_only ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_url_sibling_dir ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_relative_url_same_dir ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_resolve_unresolved ... ok
[INFO] [stdout] test resolve::link_class::tests::absolute_case_mismatch ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_resolve_exact_relative ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::test_resolve_image_reference ... ok
[INFO] [stdout] test resolve::link_class::tests::absolute_mismatch_keeps_fragment_out_of_lookup ... ok
[INFO] [stdout] test resolve::link_class::tests::asset_shaped_unknown_is_silent_not_broken ... ok
[INFO] [stdout] test resolve::link_class::tests::absolute_moved_after_exact_and_normalized_miss ... ok
[INFO] [stdout] test resolve::link_class::tests::anchor_only ... ok
[INFO] [stdout] test resolve::link_class::tests::absolute_exact_resolved ... ok
[INFO] [stdout] test resolve::md_extract::tests::aliased_embed_preserves_alias ... ok
[INFO] [stdout] test resolve::link_class::tests::unknown_reference_is_broken ... ok
[INFO] [stdout] test resolve::link_class::tests::external_passthrough ... ok
[INFO] [stdout] test resolve::md_extract::tests::angle_bracket_destination_is_unwrapped ... ok
[INFO] [stdout] test resolve::md_extract::tests::backslash_escaped_refs_are_skipped ... ok
[INFO] [stdout] test resolve::md_extract::tests::definition_destination_is_extracted_and_use_needs_no_edit ... ok
[INFO] [stdout] test resolve::md_extract::tests::definition_inside_a_blockquote_is_extracted ... ok
[INFO] [stdout] test resolve::md_extract::tests::definition_inside_nested_blockquote_and_list_item_is_extracted ... ok
[INFO] [stdout] test resolve::md_extract::tests::definition_with_angle_bracket_destination_is_unwrapped ... ok
[INFO] [stdout] test resolve::link_class::tests::linkclass_constructs ... ok
[INFO] [stdout] test resolve::link_class::tests::percent_encoded_absolute_matches_its_decoded_page ... ok
[INFO] [stdout] test resolve::link_class::tests::reference_resolved ... ok
[INFO] [stdout] test resolve::md_extract::tests::footnote_definition_is_not_a_link_reference_definition ... ok
[INFO] [stdout] test resolve::md_extract::tests::link_and_image_destinations_stop_before_a_multi_word_title ... ok
[INFO] [stdout] test resolve::md_extract::tests::markdown_image ... ok
[INFO] [stdout] test resolve::md_extract::tests::markdown_link ... ok
[INFO] [stdout] test resolve::md_extract::tests::label_containing_code_span_is_preserved ... ok
[INFO] [stdout] test resolve::md_extract::tests::definition_destination_stops_before_a_title ... ok
[INFO] [stdout] test resolve::md_extract::tests::refs_inside_indented_code_are_skipped ... ok
[INFO] [stdout] test resolve::md_extract::tests::skip_inline_code_span ... ok
[INFO] [stdout] test resolve::md_extract::tests::wikilink_aliased ... ok
[INFO] [stdout] test resolve::md_extract::tests::refs_inside_html_comment_are_skipped ... ok
[INFO] [stdout] test resolve::md_extract::tests::multiple_refs_byte_offsets ... ok
[INFO] [stdout] test resolve::md_extract::tests::definition_inside_a_list_item_is_extracted ... ok
[INFO] [stdout] test resolve::md_extract::tests::ref_after_fence_is_found ... ok
[INFO] [stdout] test resolve::md_extract::tests::definition_inside_code_fence_is_ignored ... ok
[INFO] [stdout] test resolve::output_url::tests::output_url_cancels_shared_mixed_case_prefix ... ok
[INFO] [stdout] test resolve::md_extract::tests::wikilink_aliased_embed ... ok
[INFO] [stdout] test resolve::output_url::tests::pinned_url_is_depth_independent_and_case_canonical ... ok
[INFO] [stdout] test resolve::reference::tests::a_folder_path_climbing_out_of_the_site_names_no_folder ... ok
[INFO] [stdout] test resolve::md_extract::tests::wikilink_shapes ... ok
[INFO] [stdout] test resolve::output_url::tests::slugifies_intermediate_preserves_leaf ... ok
[INFO] [stdout] test resolve::reference::tests::absolute_file_embed_resolves_to_image ... ok
[INFO] [stdout] test resolve::md_extract::tests::external_link_included ... ok
[INFO] [stdout] test resolve::md_extract::tests::escaped_pipe_alias_in_a_table_cell_is_not_part_of_the_target ... ok
[INFO] [stdout] test resolve::output_url::tests::resolve_path_handles_backslash_separators ... ok
[INFO] [stdout] test resolve::reference::tests::bare_embed_resolves_root_note_from_root_source ... ok
[INFO] [stdout] test resolve::reference::tests::ambiguous_file_match_sets_candidates ... ok
[INFO] [stdout] test resolve::reference::tests::bare_embed_unresolved_stays_link ... ok
[INFO] [stdout] test resolve::reference::tests::bare_embed_path_qualified_note_is_transclusion ... ok
[INFO] [stdout] test resolve::reference::tests::bare_note_name_is_link ... ok
[INFO] [stdout] test resolve::reference::tests::embed_md_is_still_transclusion ... ok
[INFO] [stdout] test resolve::reference::tests::folder_with_static_index_is_iframe ... ok
[INFO] [stdout] test resolve::reference::tests::bare_embed_prefers_source_relative_md_note ... ok
[INFO] [stdout] test resolve::reference::tests::image_file_resolves_to_image_kind ... ok
[INFO] [stdout] test resolve::reference::tests::missing_known_ext_asset_is_not_found ... ok
[INFO] [stdout] test resolve::reference::tests::bare_link_not_embed_does_not_use_md_fallback ... ok
[INFO] [stdout] test resolve::reference::tests::bare_embed_resolves_markdown_note_as_transclusion ... ok
[INFO] [stdout] test resolve::reference::tests::folder_with_markdown_index_is_listing ... ok
[INFO] [stdout] test resolve::reference::tests::external_url_is_external ... ok
[INFO] [stdout] test resolve::reference::tests::trailing_slash_unresolved_folder_is_not_found ... ok
[INFO] [stdout] test resolve::reference::tests::html_file_resolves_to_iframe_with_size ... ok
[INFO] [stdout] test resolve::reference::tests::non_embed_md_note_resolves_as_link_not_transclusion ... ok
[INFO] [stdout] test resolve::reference::tests::not_found_has_no_path ... ok
[INFO] [stdout] test resolve::reference::tests::the_nearest_copy_is_not_ambiguous ... ok
[INFO] [stdout] test resolve::tests::a_caption_survives_every_character_that_could_end_the_marker ... ok
[INFO] [stdout] test resolve::tests::a_bare_percent_still_sizes_the_static_index_iframe ... ok
[INFO] [stdout] test resolve::tests::a_folder_embed_reads_a_float_and_its_size ... ok
[INFO] [stdout] test resolve::tests::a_self_map_marker_cannot_be_terminated_by_its_source_filename ... ok
[INFO] [stdout] test resolve::tests::a_standard_image_keeps_its_own_path_where_the_wiki_form_has_nothing_to_lower ... ok
[INFO] [stdout] test resolve::tests::an_escaped_bang_is_the_authors_text_in_both_spellings ... ok
[INFO] [stdout] test resolve::tests::a_standard_image_of_a_page_lowers_to_the_marker_the_wiki_form_gets ... ok
[INFO] [stdout] test resolve::reference::tests::non_embed_link_carries_anchor ... ok
[INFO] [stdout] test resolve::tests::an_image_inside_link_text_is_never_transcluded ... ok
[INFO] [stdout] test resolve::tests::a_live_transclusion_beside_an_inert_one_still_lowers ... ok
[INFO] [stdout] test resolve::tests::article_map_projection_does_not_transclude_its_target ... ok
[INFO] [stdout] test resolve::tests::a_folder_embed_accepts_key_equals_value ... ok
[INFO] [stdout] test resolve::tests::article_map_projection_respects_inert_regions ... ok
[INFO] [stdout] test resolve::tests::folder_list_embed_in_a_comment_is_left_alone ... ok
[INFO] [stdout] test resolve::tests::standard_markdown_link_passes_through_in_pipeline ... ok
[INFO] [stdout] test resolve::tests::test_deeply_nested_unicode_bare_filename ... ok
[INFO] [stdout] test resolve::tests::test_embedded_wikilinks_resolved ... ok
[INFO] [stdout] test resolve::tests::test_fm_embed_wikilink_with_attrs ... ok
[INFO] [stdout] test resolve::tests::test_embed_deps_tracked ... ok
[INFO] [stdout] test resolve::tests::a_folder_embed_reads_params_placement_and_caption_from_one_pothole ... ok
[INFO] [stdout] test resolve::tests::test_bare_filename_image_passes_through_in_pipeline ... ok
[INFO] [stdout] test resolve::tests::test_diagnostics_merged ... ok
[INFO] [stdout] test resolve::tests::test_fm_embed_wikilink_with_fit_and_position ... ok
[INFO] [stdout] test resolve::tests::test_fm_mixed_resolved_and_unresolved ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_array_items ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_basic_quoted ... ok
[INFO] [stdout] test resolve::tests::test_fm_simplified_frontmatter_wikilink ... ok
[INFO] [stdout] test resolve::tests::test_fm_unclosed_wikilink_preserved ... ok
[INFO] [stdout] test resolve::tests::a_line_of_standard_images_is_scanned_once ... ok
[INFO] [stdout] test resolve::tests::test_fm_no_wikilinks ... ok
[INFO] [stdout] test render::pdf::tests::pdf_with_height_param ... ok
[INFO] [stdout] test render::url_embed::tests::detect_provider_vimeo_player_passthrough ... ok
[INFO] [stdout] test resolve::embed_renderer::folder_list::tests::bare_integer_is_not_size_and_not_limit ... ok
[INFO] [stdout] test resolve::embed_renderer::tests::test_dim_css_percent ... ok
[INFO] [stdout] test resolve::ext_kind::tests::the_standard_form_transcludes_pages_tables_notebooks_and_folders ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::decode_html_reference_path_undoes_both_encoders_in_order ... ok
[INFO] [stdout] test resolve::fuzzy_path::tests::percent_decode_path_passes_through_malformed_escapes ... ok
[INFO] [stdout] test resolve::reference::tests::bare_anchor_is_anchor ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_multiple ... ok
[INFO] [stdout] test resolve::tests::test_frontmatter_embed_wikilink_with_attrs ... ok
[INFO] [stdout] test resolve::tests::test_frontmatter_preserved ... ok
[INFO] [stdout] test resolve::tests::test_frontmatter_link_wikilink_alias_discarded ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_alias_unresolved_discarded ... ok
[INFO] [stdout] test resolve::tests::test_split_does_not_treat_a_fenced_dash_line_as_frontmatter ... ok
[INFO] [stdout] test resolve::tests::test_full_resolve_pipeline ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_root ... ok
[INFO] [stdout] test resolve::tests::test_outgoing_links_tracked ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_alias_discarded ... ok
[INFO] [stdout] test resolve::tests::test_split_does_not_treat_a_grid_cell_separator_as_frontmatter ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_no_attrs_unchanged ... ok
[INFO] [stdout] test resolve::tests::test_split_no_delimiter ... ok
[INFO] [stdout] test resolve::tests::test_split_simplified_delimiter_at_eof_no_newline ... ok
[INFO] [stdout] test resolve::tests::test_frontmatter_embed_wikilink_stripped ... ok
[INFO] [stdout] test resolve::tests::test_split_fm_present ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_cover_image ... ok
[INFO] [stdout] test resolve::tests::test_split_simplified_empty_body ... ok
[INFO] [stdout] test resolve::tests::test_split_simplified_multiple_dashes_in_body ... ok
[INFO] [stdout] test resolve::tests::test_split_simplified_frontmatter ... ok
[INFO] [stdout] test resolve::tests::test_split_simplified_preserves_body ... ok
[INFO] [stdout] test resolve::tests::test_split_simplified_with_quoted_wikilink ... ok
[INFO] [stdout] test resolve::tests::transclusion_in_an_indented_code_block_is_left_alone ... ok
[INFO] [stdout] test resolve::tests::transclusion_lowers_to_a_marker ... ok
[INFO] [stdout] test resolve::tests::test_split_finds_frontmatter_that_precedes_a_directive_block ... ok
[INFO] [stdout] test resolve::tests::transclusion_in_an_inline_code_span_is_left_alone ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_folder_note ... ok
[INFO] [stdout] test resolve::tests::test_split_fm_absent ... ok
[INFO] [stdout] test resolve::tests::test_simplified_frontmatter_wikilink_resolved_to_path ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::a_captioned_embed_wears_its_placement_on_the_figure_not_the_element ... ok
[INFO] [stdout] test resolve::tests::transclusion_in_a_code_fence_is_left_alone ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::a_captioned_embed_still_escapes_the_content_column ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::a_pothole_with_no_placement_keeps_meaning_exactly_what_it_did ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::build_anchor_block_ref_is_not_slugged ... ok
[INFO] [stdout] test resolve::tests::transclusion_in_an_html_comment_is_left_alone ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::build_anchor_same_page_emits_bare_anchor ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_bare_wikilink_is_link ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_audio_extension_routes_to_synth ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::build_anchor_slugs_section_fragment ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_external_url_http_also_works ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_external_url_with_width_pothole ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_iframe_alias_carries_title ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_cover_emits_object_fit_on_inner_img ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_params_form_emits_object_fit ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_external_url_youtube_emits_html ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_two_word_position_combines ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::an_uncaptioned_embed_wears_its_placement_directly ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_percent_wins_over_a_width_token ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_cover_left_emits_fit_and_position ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_anchor_wikilink_preserves_section_in_href ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_external_url_generic_emits_html ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_width_token_preserved_as_data_width ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_model_extension_routes_to_synth ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_pdf_extension_routes_to_synth ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_iframe_extension_routes_to_synth ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_unresolved_wikilink_emits_diagnostic ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_video_extension_routes_to_synth ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_video_loop_alias_emits_ambient_set ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_video_sizing_alias_propagates_dims ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_video_sizing_alias_still_works_without_loop ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_video_loop_first_then_size ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_wikilink_with_alias_uses_alias_text ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::image_pothole_vocabulary_table ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_kv_pair_is_params ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_kv_with_hyphenated_key ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_bare_alt_blocks_kv_parse ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_video_loop_alias_case_insensitive ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_video_size_and_loop_alias_propagates_all ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_only_fires_for_wikilink_caller ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_inner_img_has_single_style_attr ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_obsidian_width_keyword ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_plain_emits_the_bare_paragraph_a_standard_image_gets ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_partial_kv_falls_through_to_alias ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_plain_alias ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_pure_digit_is_alias_not_width_token ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::split_dest_url_query_then_anchor ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::split_dest_url_with_anchor ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::split_dest_url_with_query ... ok
[INFO] [stdout] test resolved::tests::is_explicit_classifies_origins ... ok
[INFO] [stdout] test resolved::tests::roundtrips_through_serde ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_empty_string_is_empty ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_uppercase_key_blocks_kv_parse ... ok
[INFO] [stdout] test schema::tests::test_all_non_skip_fields_have_group ... ok
[INFO] [stdout] test schema::tests::test_builtin_fields_have_no_source ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_also_in_array ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_boolean_fields ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_children_union ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_date_field ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::split_dest_url_anchor_then_query ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_unquoted ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_no_equals_is_alias ... ok
[INFO] [stdout] test resolve::tests::test_split_fm_no_closing ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_has_required_title ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_parses ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_field_count ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_integer_fields ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_sidebar_field ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_series_union ... ok
[INFO] [stdout] test schema::tests::test_parse_schema_invalid_json ... ok
[INFO] [stdout] test resolve::tests::test_fm_wikilink_unresolved ... ok
[INFO] [stdout] test resolve::tests::test_no_obsidian_syntax ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::pothole_single_kv_is_params ... ok
[INFO] [stdout] test schema::tests::test_field_definition_without_source_omits_it ... ok
[INFO] [stdout] test schema::tests::test_parse_schema_missing_fields ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::split_dest_url_plain_file ... ok
[INFO] [stdout] test schema::tests::test_field_type_serde ... ok
[INFO] [stdout] test schema_fields::tests::name_list_fields_is_exactly_the_five_name_list_fields ... ok
[INFO] [stdout] test schema_fields::tests::every_file_picker_field_declares_file_kinds ... ok
[INFO] [stdout] test schema::tests::test_builtin_schema_shortcodes ... ok
[INFO] [stdout] test schema::tests::union_members_round_trip ... ok
[INFO] [stdout] test schema::tests::test_roundtrip_serialization ... ok
[INFO] [stdout] test schema_fields::tests::test_groups_are_valid_scope_groups ... ok
[INFO] [stdout] test schema_fields::tests::test_event_fields_are_registered ... ok
[INFO] [stdout] test schema_fields::tests::test_labels_propagate_to_schema ... ok
[INFO] [stdout] test schema_fields::tests::test_no_duplicate_field_names ... ok
[INFO] [stdout] test schema_fields::tests::test_all_non_skip_fields_have_a_group ... ok
[INFO] [stdout] test schema_fields::tests::term_claim_fields_is_exactly_the_five_term_claim_fields ... ok
[INFO] [stdout] test resolve::wikilink_dispatch::tests::dispatch_image_caption_text_keeps_alt_in_the_node_but_not_in_the_html ... ok
[INFO] [stdout] test schema_fields::tests::test_array_fields_have_items_type ... ok
[INFO] [stdout] test schema::tests::test_field_definition_with_source_roundtrips ... ok
[INFO] [stdout] test schema_fields::tests::test_no_label_means_none ... ok
[INFO] [stdout] test schema::tests::test_widget_serde ... ok
[INFO] [stdout] test schema_fields::tests::test_score_in_valid_range ... ok
[INFO] [stdout] test slug::tests::nfd_and_nfc_spellings_give_the_same_slug ... ok
[INFO] [stdout] test schema_fields::tests::test_select_fields_have_enum_values ... ok
[INFO] [stdout] test slug::tests::normalize_separators_converts_backslashes ... ok
[INFO] [stdout] test schema_fields::tests::test_skip_schema_fields_are_on_the_allowlist ... ok
[INFO] [stdout] test slug::tests::path_segments_handle_backslash_separators ... ok
[INFO] [stdout] test slug::tests::path_segments_drop_dot_and_empty_parts ... ok
[INFO] [stdout] test slug::tests::cjk_preserved ... ok
[INFO] [stdout] test slug::tests::empty_falls_back_to_untitled ... ok
[INFO] [stdout] test slug::tests::path_segments_slugified ... ok
[INFO] [stdout] test slug::tests::special_chars_replaced ... ok
[INFO] [stdout] test sort::inference_tests::empty_folder_defaults_to_title ... ok
[INFO] [stdout] test sort::inference_tests::explicit_list_refs_normalized_to_stems ... ok
[INFO] [stdout] test sort::inference_tests::explicit_axis_wins ... ok
[INFO] [stdout] test sort::cmp_labels_tests::han_is_not_yet_collated_by_stroke_count ... ok
[INFO] [stdout] test sort::inference_tests::dates_above_threshold_infer_date ... ok
[INFO] [stdout] test sort::inference_tests::dates_below_threshold_fallback_to_title ... ok
[INFO] [stdout] test sort::inference_tests::explicit_list_implies_chrome_on ... ok
[INFO] [stdout] test sort::cmp_labels_tests::a_lowercase_name_sorts_among_its_peers ... ok
[INFO] [stdout] test sort::cmp_labels_tests::case_only_differences_stay_ordered_and_never_equal ... ok
[INFO] [stdout] test schema_fields::tests::asset_field_names_is_exactly_cover_and_logo ... ok
[INFO] [stdout] test slug::tests::ascii_lowercased_and_hyphenated ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::date_desc ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::date_ties_order_by_url_path_whatever_the_input_order ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::explicit_wikilink_order_normalized_and_beats_date_axis ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::weight_asc_unweighted_last ... ok
[INFO] [stdout] test sort::tests::shows_date_is_true_for_both_date_axes_only ... ok
[INFO] [stdout] test sort::inference_tests::root_with_only_subfolders_falls_to_title ... ok
[INFO] [stdout] test sort::inference_tests::subfolders_excluded_from_inference ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::date_asc_orders_oldest_first ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::title_alpha ... ok
[INFO] [stdout] test terms::tests::claim_name_resolves_use_title_to_the_page_title ... ok
[INFO] [stdout] test terms::tests::slug_preserves_cjk_and_hyphenates_spaces ... ok
[INFO] [stdout] test sort::tests::sort_field_parses_list ... ok
[INFO] [stdout] test terms::tests::merge_prefers_frontmatter_and_dedupes_case_insensitively ... ok
[INFO] [stdout] test untrusted_text::tests::an_authored_string_is_bounded_and_carries_no_invisible_control ... ok
[INFO] [stdout] test template::tests::instantiate_adds_no_date_when_the_template_has_none ... ok
[INFO] [stdout] test sort::tests::sort_field_rejects_unknown_axis ... ok
[INFO] [stdout] test validation::tests::case_and_separators_fold_to_one_entry ... ok
[INFO] [stdout] test validation::tests::order_warning_says_what_to_use_and_other_names_keep_the_hint ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::weight_and_title_ties_order_by_url_path_whatever_the_input_order ... ok
[INFO] [stdout] test sort::inference_tests::weight_beats_date ... ok
[INFO] [stdout] test validation::tests::order_with_a_list_is_the_sort_alias_and_earns_no_hint ... ok
[INFO] [stdout] test sort::tests::sort_field_parses_axis_strings ... ok
[INFO] [stdout] test validation::tests::skip_schema_fields_are_not_flagged_unknown ... ok
[INFO] [stdout] test sort::inference_tests::weight_present_infers_weight ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::explicit_list_with_tail ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::date_asc_still_keeps_undated_entries_last ... ok
[INFO] [stdout] test terms::tests::fold_is_trimmed_and_case_insensitive ... ok
[INFO] [stdout] test sort::sort_dispatch_tests::explicit_order_matches_by_order_match_name_not_clean_stem ... ok
[INFO] [stdout] test validation::tests::test_array_item_type_validation ... ok
[INFO] [stdout] test template::tests::instantiate_clears_identity_fields_and_stamps_date ... ok
[INFO] [stdout] test validation::tests::test_enum_valid ... ok
[INFO] [stdout] test validation::tests::sort_accepts_an_axis_name_or_an_explicit_list ... ok
[INFO] [stdout] test validation::tests::every_suggested_field_actually_exists_in_the_schema ... ok
[INFO] [stdout] test template::tests::instantiate_preserves_other_fields_verbatim ... ok
[INFO] [stdout] test validation::tests::test_enum_violation ... ok
[INFO] [stdout] test validation::tests::iso_timestamps_are_valid_dates ... ok
[INFO] [stdout] test validation::tests::test_invalid_leap_year ... ok
[INFO] [stdout] test validation::tests::test_empty_frontmatter_only_required_errors ... ok
[INFO] [stdout] test validation::tests::test_invalid_date_format ... ok
[INFO] [stdout] test validation::tests::test_enum_summary_valid ... ok
[INFO] [stdout] test validation::tests::reduced_precision_dates_are_valid ... ok
[INFO] [stdout] test validation::tests::slug_suggests_url ... ok
[INFO] [stdout] test validation::tests::a_name_moss_simply_does_not_know_stays_silent ... ok
[INFO] [stdout] test validation::tests::test_is_valid_date ... ok
[INFO] [stdout] test validation::tests::test_enum_card_now_invalid ... ok
[INFO] [stdout] test validation::tests::test_valid_integer_field ... ok
[INFO] [stdout] test validation::tests::test_valid_date_format ... ok
[INFO] [stdout] test validation::tests::no_hint_key_is_itself_a_real_moss_field ... ok
[INFO] [stdout] test validation::tests::the_unknown_field_hint_carries_the_suggestion ... ok
[INFO] [stdout] test validation::tests::test_missing_required_title ... ok
[INFO] [stdout] test validation::tests::test_quoted_true_false_strings_accepted_for_boolean ... ok
[INFO] [stdout] test validation::tests::test_type_mismatch_boolean_for_string ... ok
[INFO] [stdout] test validation::tests::test_type_mismatch_string_for_boolean ... ok
[INFO] [stdout] test validation::tests::test_type_mismatch_string_for_integer ... ok
[INFO] [stdout] test validation::tests::test_valid_frontmatter ... ok
[INFO] [stdout] test validation::tests::test_unknown_fields_are_hints ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- render::image::tests::vertical_sizes_render_gate_golden_matches_the_synthesizer stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'render::image::tests::vertical_sizes_render_gate_golden_matches_the_synthesizer' (2970) panicked at src/render/image_tests.rs:2008:5:
[INFO] [stdout] assertion `left == right` failed: stale /opt/rustwide/workdir/../../tests/render-gates/site/vertical-sizes.golden.json: rerun with SNAPSHOTS=overwrite
[INFO] [stdout]   left: ""
[INFO] [stdout]  right: "{\n  \"2400x1771\": \"calc(1.356 * (100vh - 4rem))\",\n  \"6000x1500\": \"calc(4.000 * (100vh - 4rem))\",\n  \"2000x4000\": \"calc(0.500 * (100vh - 4rem))\",\n  \"2400x2400\": \"calc(1.000 * (100vh - 4rem))\"\n}\n"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55b64fd64211 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x55b64fd7cfea - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x55b64fd6888c - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x55b64fd3e9c6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x55b64fd5c1b9 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x55b64fcb3210 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x55b64fd5c372 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x55b64fd3ea72 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x55b64fd374a9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x55b64fd3f67d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x55b64fd7d7cc - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x55b64fd7d743 - core[a373ad73a504971]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x55b64fa1a617 - core[a373ad73a504971]::panicking::assert_failed::<alloc[2e1b2a31b91974c5]::string::String, alloc[2e1b2a31b91974c5]::string::String>
[INFO] [stdout]   13:     0x55b64fb49d4e - <moss_core[3a3610e0a78f842c]::render::image::tests::vertical_sizes_render_gate_golden_matches_the_synthesizer::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x55b64fca665b - 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:     0x55b64fcb3835 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x55b64fcad124 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x55b64fcb68c2 - <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:     0x55b64fd6352f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7e2a299addfa - <unknown>
[INFO] [stdout]   20:     0x7e2a29a413d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     render::image::tests::vertical_sizes_render_gate_golden_matches_the_synthesizer
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2133 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418", kill_on_drop: false }`
[INFO] [stdout] 9cd63404866283f022ad5acf945c3fb3da9e95ef687b1f9e00f69ac9e25ea418
