[INFO] fetching crate slidx_cli 0.3.0...
[INFO] testing slidx_cli-0.3.0 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate slidx_cli 0.3.0 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate slidx_cli 0.3.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate slidx_cli 0.3.0
[INFO] tweaked toml for crates.io crate slidx_cli 0.3.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate slidx_cli 0.3.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate slidx_cli 0.3.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.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded ts-rs-macros v12.0.1
[INFO] [stderr]   Downloaded ts-rs v12.0.1
[INFO] [stderr]   Downloaded ox_content_allocator v2.81.0
[INFO] [stderr]   Downloaded slidx_jsonrpc v0.3.0
[INFO] [stderr]   Downloaded ox_content_ast v2.81.0
[INFO] [stderr]   Downloaded slidx_fmt v0.3.0
[INFO] [stderr]   Downloaded unicode-id v0.3.6
[INFO] [stderr]   Downloaded slidx_dialect v0.3.0
[INFO] [stderr]   Downloaded slidx_export v0.3.0
[INFO] [stderr]   Downloaded slidx_qr v0.3.0
[INFO] [stderr]   Downloaded slidx_highlight v0.3.0
[INFO] [stderr]   Downloaded slidx_i18n v0.3.0
[INFO] [stderr]   Downloaded slidx_publish v0.3.0
[INFO] [stderr]   Downloaded slidx_lint v0.3.0
[INFO] [stderr]   Downloaded slidx_theme v0.3.0
[INFO] [stderr]   Downloaded slidx_lsp v0.3.0
[INFO] [stderr]   Downloaded slidx_edit v0.3.0
[INFO] [stderr]   Downloaded slidx_core v0.3.0
[INFO] [stderr]   Downloaded slidx_doctor v0.3.0
[INFO] [stderr]   Downloaded ox_content_parser v2.81.0
[INFO] [stderr]   Downloaded slidx_render v0.3.0
[INFO] [stderr]   Downloaded ox_content_renderer v2.81.0
[INFO] [stderr]   Downloaded markdown v1.0.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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] b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c
[INFO] running `Command { std: "docker" "start" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c", 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" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c", 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" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling slidx_highlight v0.3.0
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling bumpalo v3.20.3
[INFO] [stderr]    Compiling unicode-id v0.3.6
[INFO] [stderr]    Compiling slidx_export v0.3.0
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling castaway v0.2.4
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling compact_str v0.9.1
[INFO] [stderr]    Compiling markdown v1.0.0
[INFO] [stderr]    Compiling ox_content_allocator v2.81.0
[INFO] [stderr]    Compiling ox_content_ast v2.81.0
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]    Compiling ox_content_renderer v2.81.0
[INFO] [stderr]    Compiling ts-rs-macros v12.0.1
[INFO] [stderr]    Compiling ts-rs v12.0.1
[INFO] [stderr]    Compiling logos-codegen v0.16.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling slidx_qr v0.3.0
[INFO] [stderr]    Compiling slidx_jsonrpc v0.3.0
[INFO] [stderr]    Compiling slidx_doctor v0.3.0
[INFO] [stderr]    Compiling slidx_publish v0.3.0
[INFO] [stderr]    Compiling logos-derive v0.16.1
[INFO] [stderr]    Compiling logos v0.16.1
[INFO] [stderr]    Compiling ox_content_parser v2.81.0
[INFO] [stderr]    Compiling slidx_core v0.3.0
[INFO] [stderr]    Compiling slidx_lint v0.3.0
[INFO] [stderr]    Compiling slidx_theme v0.3.0
[INFO] [stderr]    Compiling slidx_edit v0.3.0
[INFO] [stderr]    Compiling slidx_dialect v0.3.0
[INFO] [stderr]    Compiling slidx_render v0.3.0
[INFO] [stderr]    Compiling slidx_fmt v0.3.0
[INFO] [stderr]    Compiling slidx_i18n v0.3.0
[INFO] [stderr]    Compiling slidx_lsp v0.3.0
[INFO] [stderr]    Compiling slidx_cli v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 14s
[INFO] running `Command { std: "docker" "inspect" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c", 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" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling slidx_cli v0.3.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 41.17s
[INFO] running `Command { std: "docker" "inspect" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c", 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" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/slidx_cli-d8b6c9310ae8a1ba)
[INFO] [stdout] 
[INFO] [stdout] running 1103 tests
[INFO] [stdout] test add::tests::a_deck_whose_files_are_not_numbered_is_refused_rather_than_guessed_at ... ok
[INFO] [stdout] test add::tests::adding_before_the_first_slide_of_a_directory_deck_says_why_it_will_not ... ok
[INFO] [stdout] test add::tests::a_file_moved_along_keeps_the_label_its_author_gave_it ... ok
[INFO] [stdout] test add::tests::an_authors_own_spacing_and_bullets_survive_a_slide_being_added ... ok
[INFO] [stdout] test add::tests::a_slide_number_outside_the_deck_says_what_the_end_is ... ok
[INFO] [stdout] test add::tests::a_file_holding_two_slides_makes_a_position_ambiguous_and_is_said_so ... ok
[INFO] [stdout] test add::tests::a_slide_added_at_the_end_leaves_every_other_byte_of_the_source_alone ... ok
[INFO] [stdout] test add::tests::a_slide_number_that_is_not_a_number_is_a_misuse ... ok
[INFO] [stdout] test add::tests::a_file_name_keeps_its_width_when_it_moves_along ... ok
[INFO] [stdout] test add::tests::a_slide_added_in_the_middle_moves_the_files_after_it_along ... ok
[INFO] [stdout] test add::tests::a_slide_added_to_a_directory_deck_becomes_one_new_file_and_touches_no_other ... ok
[INFO] [stdout] test add::tests::a_name_another_slide_is_about_to_vacate_is_not_treated_as_taken ... ok
[INFO] [stdout] test args::tests::a_flag_of_a_nested_command_is_not_accepted_by_its_sibling ... ok
[INFO] [stdout] test add::tests::a_slide_added_in_the_middle_pushes_the_one_that_was_there_down ... ok
[INFO] [stdout] test add::tests::a_slide_number_is_one_based_because_that_is_how_a_speaker_counts ... ok
[INFO] [stdout] test args::tests::a_mistyped_subcommand_is_answered_with_the_one_that_was_meant ... ok
[INFO] [stdout] test args::tests::a_nested_command_is_reached_through_its_parent ... ok
[INFO] [stdout] test add::tests::a_rename_onto_something_that_is_not_a_slide_stops_before_anything_moves ... ok
[INFO] [stdout] test args::tests::a_nested_commands_arguments_belong_to_it_and_not_to_its_parent ... ok
[INFO] [stdout] test args::tests::a_flag_left_without_its_value_says_so_rather_than_swallowing_the_path ... ok
[INFO] [stdout] test args::tests::a_flag_that_is_not_repeatable_keeps_the_last_value_given ... ok
[INFO] [stdout] test args::tests::a_path_after_a_bare_double_dash_is_a_path_even_when_it_looks_like_a_flag ... ok
[INFO] [stdout] test args::tests::a_mistyped_flag_is_answered_with_the_one_that_was_meant ... ok
[INFO] [stdout] test args::tests::a_parent_with_no_subcommand_falls_back_to_its_obvious_reading ... ok
[INFO] [stdout] test args::tests::a_repeatable_flag_keeps_every_value_in_order ... ok
[INFO] [stdout] test args::tests::a_flag_after_a_bare_parent_still_reaches_the_default_subcommand ... ok
[INFO] [stdout] test add::tests::the_title_is_the_new_slides_heading_and_nothing_else_is_composed ... ok
[INFO] [stdout] test args::tests::a_mistyped_root_option_is_answered_with_the_one_that_was_meant ... ok
[INFO] [stdout] test args::tests::an_unknown_flag_names_the_command_and_says_what_that_command_is_for ... ok
[INFO] [stdout] test add::tests::notes_are_written_by_the_edit_crate_rather_than_spelled_out_here ... ok
[INFO] [stdout] test args::tests::an_unknown_subcommand_lists_the_ones_that_exist ... ok
[INFO] [stdout] test add::tests::the_new_slide_is_reported_by_its_number_and_its_file ... ok
[INFO] [stdout] test add::tests::a_single_file_deck_is_written_back_as_the_spliced_source ... ok
[INFO] [stdout] test args::tests::build_is_answered_with_the_plugin_rather_than_with_unknown_command ... ok
[INFO] [stdout] test args::tests::a_mistyped_command_is_answered_with_the_one_that_was_meant ... ok
[INFO] [stdout] test args::tests::a_value_containing_an_equals_survives_the_split ... ok
[INFO] [stdout] test args::tests::every_command_in_the_table_parses_with_no_arguments ... ok
[INFO] [stdout] test args::tests::a_flag_takes_the_argument_after_it_or_the_one_glued_on_with_an_equals ... ok
[INFO] [stdout] test args::tests::an_unknown_command_names_the_commands_that_do_exist ... ok
[INFO] [stdout] test args::tests::every_flag_in_the_table_is_accepted_by_the_command_that_declares_it ... ok
[INFO] [stdout] test args::tests::an_unknown_flag_lists_what_the_command_does_accept ... ok
[INFO] [stdout] test args::tests::help_can_be_asked_for_globally_or_of_one_command ... ok
[INFO] [stdout] test args::tests::every_nested_command_in_the_table_parses ... ok
[INFO] [stdout] test args::tests::a_mistyped_flag_given_a_value_inline_is_still_recognised ... ok
[INFO] [stdout] test cd::tests::a_ranked_query_prefers_the_deck_whose_title_or_path_matches ... ok
[INFO] [stdout] test args::tests::help_asked_of_a_nested_command_describes_that_one ... ok
[INFO] [stdout] test cd::tests::an_ambiguous_query_with_no_terminal_says_which_deck_it_took ... ok
[INFO] [stdout] test args::tests::help_asked_of_a_parent_describes_the_parent_rather_than_its_default ... ok
[INFO] [stdout] test args::tests::the_version_is_asked_for_before_a_subcommand_is_looked_for ... ok
[INFO] [stdout] test cd::tests::nothing_matched_prints_nothing_at_all_on_standard_output ... ok
[INFO] [stdout] test args::tests::a_single_dash_is_a_positional_rather_than_an_unknown_flag ... ok
[INFO] [stdout] test cd::tests::the_output_is_one_line_so_a_shell_never_receives_two_paths ... ok
[INFO] [stdout] test args::tests::help_wins_over_everything_else_on_the_line ... ok
[INFO] [stdout] test args::tests::a_switch_given_a_value_is_a_misuse_rather_than_a_silent_ignore ... ok
[INFO] [stdout] test cd::tests::the_path_is_the_only_thing_on_standard_output ... ok
[INFO] [stdout] test command::nearest::tests::one_edit_is_always_close_enough_however_short_the_word ... ok
[INFO] [stdout] test command::nearest::tests::a_short_word_is_held_to_a_stricter_standard_than_a_long_one ... ok
[INFO] [stdout] test cd::tests::a_directory_name_with_a_space_in_it_is_printed_whole_and_unescaped ... ok
[INFO] [stdout] test args::tests::the_deck_path_is_read_as_a_positional ... ok
[INFO] [stdout] test args::tests::a_switch_is_recorded_without_a_value ... ok
[INFO] [stdout] test command::nearest::tests::a_flag_is_the_same_problem_and_gets_the_same_answer ... ok
[INFO] [stdout] test args::tests::slidx_on_its_own_prints_the_help_rather_than_doing_something ... ok
[INFO] [stdout] test command::nearest::tests::something_that_is_not_a_misspelling_of_anything_gets_no_guess ... ok
[INFO] [stdout] test command::nearest::tests::a_missing_or_doubled_letter_is_caught ... ok
[INFO] [stdout] test command::nearest::tests::the_closest_of_several_candidates_wins ... ok
[INFO] [stdout] test args::tests::something_that_is_not_a_misspelling_gets_the_list_and_no_guess ... ok
[INFO] [stdout] test command::tests::a_flag_is_found_by_its_long_name_or_its_short_letter ... ok
[INFO] [stdout] test command::tests::a_command_that_takes_the_caller_with_it_names_the_thing_that_carries_it ... ok
[INFO] [stdout] test command::tests::a_flag_that_takes_a_value_names_its_placeholder ... ok
[INFO] [stdout] test command::nearest::tests::distance_counts_characters_rather_than_bytes ... ok
[INFO] [stdout] test command::tests::every_command_accepts_the_global_flags_without_declaring_them ... ok
[INFO] [stdout] test command::tests::every_command_says_what_it_is_for ... ok
[INFO] [stdout] test command::tests::every_command_shows_at_least_one_worked_example ... ok
[INFO] [stdout] test command::tests::flag_names_are_spelled_without_their_dashes ... ok
[INFO] [stdout] test command::tests::no_command_declares_the_same_flag_twice ... ok
[INFO] [stdout] test command::tests::no_command_is_both_offered_and_declined ... ok
[INFO] [stdout] test command::nearest::tests::distance_counts_the_edits_it_says_it_does ... ok
[INFO] [stdout] test command::nearest::tests::the_start_of_a_word_is_taken_as_that_word ... ok
[INFO] [stdout] test command::tests::every_command_is_declared_exactly_once ... ok
[INFO] [stdout] test completions::bash::tests::a_command_with_children_offers_them_before_one_is_chosen ... ok
[INFO] [stdout] test command::nearest::tests::nothing_typed_at_all_suggests_nothing ... ok
[INFO] [stdout] test completions::bash::tests::every_case_arm_is_closed ... ok
[INFO] [stdout] test cd::tests::a_path_that_is_not_ascii_survives_byte_for_byte ... ok
[INFO] [stdout] test completions::bash::tests::every_declared_command_is_offered_by_name ... ok
[INFO] [stdout] test command::tests::an_example_fits_the_page_it_is_printed_on ... ok
[INFO] [stdout] test command::nearest::tests::a_transposition_is_the_typo_everybody_makes_and_is_caught ... ok
[INFO] [stdout] test command::nearest::tests::an_exact_match_is_its_own_nearest ... ok
[INFO] [stdout] test command::nearest::tests::case_is_not_a_difference_because_nobody_meant_it_to_be ... ok
[INFO] [stdout] test command::tests::a_declined_command_names_the_tool_that_does_own_the_job ... ok
[INFO] [stdout] test completions::bash::tests::the_function_is_registered_for_the_binary ... ok
[INFO] [stdout] test completions::bash::tests::flags_are_skipped_when_looking_for_the_command ... ok
[INFO] [stdout] test command::tests::at_least_one_command_needs_the_callers_shell_or_the_integration_is_a_stub ... ok
[INFO] [stdout] test completions::bash::tests::the_script_says_it_is_generated_and_where_from ... ok
[INFO] [stdout] test completions::bash::tests::the_top_level_offers_every_command_and_the_root_flags ... ok
[INFO] [stdout] test completions::fish::tests::a_description_containing_a_quote_is_escaped_rather_than_ending_the_string ... ok
[INFO] [stdout] test completions::fish::tests::a_top_level_command_is_offered_only_before_a_subcommand_is_chosen ... ok
[INFO] [stdout] test completions::fish::tests::a_flag_that_takes_a_value_is_marked_as_requiring_one ... ok
[INFO] [stdout] test completions::fish::tests::nothing_completes_a_bare_file_name_at_the_top_level ... ok
[INFO] [stdout] test completions::fish::tests::a_nested_command_is_offered_after_its_parent ... ok
[INFO] [stdout] test completions::fish::tests::a_nested_command_stops_being_offered_once_one_is_chosen ... ok
[INFO] [stdout] test completions::fish::tests::a_short_letter_is_offered_alongside_its_long_name ... ok
[INFO] [stdout] test completions::fish::tests::a_switch_is_not_marked_as_requiring_a_value ... ok
[INFO] [stdout] test completions::fish::tests::the_script_says_it_is_generated_and_where_from ... ok
[INFO] [stdout] test completions::nushell::tests::a_nested_command_is_declared_under_its_parent_the_way_it_is_typed ... ok
[INFO] [stdout] test completions::nushell::tests::a_positional_is_read_out_of_the_usage_line_rather_than_declared_twice ... ok
[INFO] [stdout] test completions::nushell::tests::a_flag_that_takes_a_value_is_typed_and_a_switch_is_not ... ok
[INFO] [stdout] test completions::nushell::tests::a_flag_that_wants_a_number_is_typed_as_one ... ok
[INFO] [stdout] test completions::nushell::tests::a_parent_lists_its_children_where_the_menu_will_show_them ... ok
[INFO] [stdout] test completions::nushell::tests::a_short_letter_is_written_the_way_nushell_spells_a_pair ... ok
[INFO] [stdout] test completions::nushell::tests::every_command_gets_a_signature_nushell_can_complete_from ... ok
[INFO] [stdout] test completions::nushell::tests::every_positional_is_optional_and_a_rest_argument_follows_it ... ok
[INFO] [stdout] test completions::nushell::tests::the_help_flag_is_left_to_nushell_and_the_file_says_why ... ok
[INFO] [stdout] test command::tests::no_command_is_documented_with_a_label_instead_of_an_explanation ... ok
[INFO] [stdout] test command::tests::no_command_redeclares_a_global_flag ... ok
[INFO] [stdout] test command::tests::only_a_top_level_command_asks_for_the_callers_shell ... ok
[INFO] [stdout] test completions::bash::tests::a_chosen_child_offers_its_own_flags_and_not_its_siblings ... ok
[INFO] [stdout] test completions::powershell::tests::a_flag_is_offered_as_a_parameter_rather_than_as_a_value ... ok
[INFO] [stdout] test completions::nushell::tests::the_root_command_carries_the_flags_that_come_before_a_subcommand ... ok
[INFO] [stdout] test completions::bash::tests::nothing_in_the_word_lists_needs_escaping ... ok
[INFO] [stdout] test completions::powershell::tests::a_nested_command_is_offered_once_its_parent_is_on_the_line ... ok
[INFO] [stdout] test completions::powershell::tests::a_quote_in_a_description_is_doubled_rather_than_ending_the_string ... ok
[INFO] [stdout] test completions::powershell::tests::candidates_are_filtered_by_what_has_been_typed ... ok
[INFO] [stdout] test completions::powershell::tests::every_brace_is_closed ... ok
[INFO] [stdout] test completions::nushell::tests::the_script_says_it_is_generated_and_where_from ... ok
[INFO] [stdout] test completions::powershell::tests::a_description_is_single_quoted_so_a_dollar_sign_is_not_expanded ... ok
[INFO] [stdout] test completions::powershell::tests::every_command_is_offered_with_a_tooltip ... ok
[INFO] [stdout] test completions::tests::a_shell_that_cannot_complete_at_all_is_told_why_rather_than_handed_a_stub ... ok
[INFO] [stdout] test completions::tests::a_shell_with_no_script_is_told_which_ones_have_one ... ok
[INFO] [stdout] test completions::tests::no_script_carries_a_raw_newline_out_of_a_description ... ok
[INFO] [stdout] test completions::powershell::tests::flags_are_skipped_when_working_out_which_command_is_on_the_line ... ok
[INFO] [stdout] test completions::powershell::tests::the_namespaces_the_completion_types_live_in_are_imported ... ok
[INFO] [stdout] test completions::tests::every_command_in_the_table_completes_in_every_shell ... ok
[INFO] [stdout] test completions::powershell::tests::the_script_says_it_is_generated_and_where_from ... ok
[INFO] [stdout] test completions::tests::a_script_goes_to_standard_output_so_it_can_be_redirected_into_a_file ... ok
[INFO] [stdout] test completions::tests::every_nested_command_completes_in_every_shell ... ok
[INFO] [stdout] test completions::powershell::tests::the_script_registers_a_native_completer_for_the_binary ... ok
[INFO] [stdout] test completions::tests::every_shell_produces_a_script ... ok
[INFO] [stdout] test completions::tests::every_flag_the_parser_accepts_completes_in_every_shell ... ok
[INFO] [stdout] test completions::ush::tests::every_flag_the_parser_accepts_is_offered ... ok
[INFO] [stdout] test completions::ush::tests::it_is_written_in_ushs_own_spelling_so_it_compiles_where_it_lands ... ok
[INFO] [stdout] test completions::ush::tests::nothing_slidx_declines_to_do_is_offered_as_a_command ... ok
[INFO] [stdout] test completions::tests::nothing_a_command_deliberately_does_not_have_is_offered ... ok
[INFO] [stdout] test completions::tests::every_shell_with_a_script_is_reachable_by_the_name_its_binary_has ... ok
[INFO] [stdout] test completions::nushell::tests::a_summary_is_the_line_above_the_signature_because_that_is_what_nushell_shows ... ok
[INFO] [stdout] test completions::zsh::tests::a_colon_in_a_description_is_escaped_so_it_does_not_read_as_a_separator ... ok
[INFO] [stdout] test completions::zsh::tests::a_flag_that_takes_a_value_names_what_it_wants ... ok
[INFO] [stdout] test completions::tests::a_script_is_never_coloured_however_the_terminal_is_set ... ok
[INFO] [stdout] test completions::tests::pwsh_is_understood_as_powershell_because_that_is_what_the_binary_is_called ... ok
[INFO] [stdout] test completions::zsh::tests::a_quote_in_a_description_is_escaped_rather_than_ending_the_string ... ok
[INFO] [stdout] test completions::ush::tests::it_says_it_is_not_a_script_and_where_it_actually_goes ... ok
[INFO] [stdout] test completions::zsh::tests::a_short_and_long_pair_is_marked_mutually_exclusive ... ok
[INFO] [stdout] test completions::nushell::tests::a_comment_carries_no_newline_out_of_a_summary ... ok
[INFO] [stdout] test completions::zsh::tests::the_script_declares_itself_a_completion_for_slidx ... ok
[INFO] [stdout] test completions::zsh::tests::a_switch_asks_for_no_value ... ok
[INFO] [stdout] test completions::zsh::tests::every_case_is_closed ... ok
[INFO] [stdout] test completions::tests::no_shell_at_all_says_what_to_type_and_where_every_script_goes ... ok
[INFO] [stdout] test completions::ush::tests::a_flag_that_wants_a_path_is_marked_so_ush_offers_a_filename ... ok
[INFO] [stdout] test completions::zsh::tests::the_script_says_it_is_generated_and_where_from ... ok
[INFO] [stdout] test create::tests::a_directory_name_that_is_not_a_valid_package_name_is_made_into_one ... ok
[INFO] [stdout] test create::tests::a_directory_with_something_in_it_is_refused_rather_than_written_over ... ok
[INFO] [stdout] test completions::zsh::tests::every_command_is_offered_with_its_summary ... ok
[INFO] [stdout] test create::tests::a_deck_with_nothing_declared_is_titled_after_its_directory ... ok
[INFO] [stdout] test completions::tests::the_commands_each_shell_offers_are_the_ones_the_table_declares ... ok
[INFO] [stdout] test create::tests::no_path_at_all_shows_what_a_whole_invocation_looks_like ... ok
[INFO] [stdout] test create::tests::the_manifest_is_json_a_package_manager_will_read ... ok
[INFO] [stdout] test completions::ush::tests::a_command_with_children_gets_the_second_list_ush_dispatches_on ... ok
[INFO] [stdout] test create::tests::the_deck_a_new_project_starts_with_parses_and_lints_clean ... ok
[INFO] [stdout] test completions::ush::tests::a_flag_is_offered_once_however_many_commands_accept_it ... ok
[INFO] [stdout] test create::tests::build_output_and_dependencies_are_ignored_by_git_from_the_start ... ok
[INFO] [stdout] test completions::ush::tests::a_switch_is_in_no_option_spec_because_nothing_follows_it ... ok
[INFO] [stdout] test completions::ush::tests::every_command_is_in_the_catalogue ... ok
[INFO] [stdout] test completions::zsh::tests::a_command_with_children_gets_its_own_list ... ok
[INFO] [stdout] test create::tests::a_project_is_four_files_and_the_deck_is_where_the_plugin_looks_for_it ... ok
[INFO] [stdout] test create::tests::a_title_that_yaml_would_read_as_something_else_is_quoted_by_the_edit_crate ... ok
[INFO] [stdout] test create::tests::an_empty_directory_is_a_fine_place_to_start ... ok
[INFO] [stdout] test create::tests::the_manifest_pins_the_plugin_to_the_slidx_that_wrote_it ... ok
[INFO] [stdout] test create::tests::the_report_says_what_to_run_next_because_nothing_was_installed ... ok
[INFO] [stdout] test dev::launch::tests::every_runner_can_be_named_the_way_somebody_would_have_typed_it ... ok
[INFO] [stdout] test dev::launch::tests::the_flags_slidx_chose_come_after_the_runners_own_arguments ... ok
[INFO] [stdout] test create::tests::the_vite_config_is_the_one_line_of_configuration_the_plugin_claims ... ok
[INFO] [stdout] test create::tests::the_next_steps_are_quoted_where_a_shell_would_need_them_to_be ... ok
[INFO] [stdout] test dev::launch::tests::npm_gets_a_double_dash_so_a_port_is_not_read_as_its_own_option ... ok
[INFO] [stdout] test dev::launch::tests::a_project_that_uses_vite_plus_is_started_with_its_own_dev_command ... ok
[INFO] [stdout] test dev::launch::tests::a_project_with_no_lockfile_anywhere_falls_back_to_npm ... ok
[INFO] [stdout] test create::tests::what_the_author_said_is_in_the_frontmatter_and_on_the_title_slide ... ok
[INFO] [stdout] test dev::project::tests::a_project_is_the_directory_holding_the_vite_config ... ok
[INFO] [stdout] test dev::project::tests::a_project_is_found_from_inside_the_slides_directory ... ok
[INFO] [stdout] test dev::launch::tests::a_lockfile_above_the_deck_still_decides_because_a_monorepo_keeps_it_at_the_root ... ok
[INFO] [stdout] test dev::launch::tests::a_project_with_a_pnpm_lockfile_reaches_vite_through_pnpm ... ok
[INFO] [stdout] test dev::project::tests::a_directory_with_no_vite_config_above_it_is_not_a_project ... ok
[INFO] [stdout] test dev::launch::tests::every_manager_is_recognised_by_the_lockfile_it_writes ... ok
[INFO] [stdout] test create::tests::the_project_is_written_where_it_was_asked_for ... ok
[INFO] [stdout] test dev::share::secret::tests::a_machine_with_no_randomness_is_told_what_will_not_happen ... ok
[INFO] [stdout] test dev::project::tests::a_project_that_depends_on_the_plugin_says_so_through_its_manifest ... ok
[INFO] [stdout] test dev::share::qr::tests::a_share_link_becomes_a_code_that_fits_in_a_terminal ... ok
[INFO] [stdout] test dev::share::qr::tests::a_link_too_long_for_a_readable_symbol_is_no_code_rather_than_a_bad_one ... ok
[INFO] [stdout] test dev::share::secret::tests::the_secret_is_the_same_length_the_phone_remote_uses ... ok
[INFO] [stdout] test dev::share::secret::tests::two_secrets_minted_in_a_row_are_not_the_same ... ok
[INFO] [stdout] test dev::share::qr::tests::the_indent_is_the_indent_the_rest_of_the_report_uses ... ok
[INFO] [stdout] test dev::share::qr::tests::a_quiet_zone_surrounds_the_symbol_so_a_reader_can_find_its_edge ... ok
[INFO] [stdout] test dev::share::secret::tests::a_secret_is_lowercase_hex_of_the_length_the_reader_expects ... ok
[INFO] [stdout] test dev::project::tests::a_config_under_any_of_vites_own_extensions_counts ... ok
[INFO] [stdout] test dev::share::tests::a_link_carries_the_secret_after_the_hash_and_nowhere_else ... ok
[INFO] [stdout] test dev::share::address::tests::an_ipv4_origin_is_what_a_browser_would_be_typed ... ok
[INFO] [stdout] test dev::share::tests::a_links_fragment_is_shaped_the_way_the_phone_remote_reads_one ... ok
[INFO] [stdout] test dev::share::qr::tests::every_row_forces_dark_on_light_because_that_is_what_a_camera_needs ... ok
[INFO] [stdout] test dev::share::tests::the_variables_are_the_ones_the_plugin_reads ... ok
[INFO] [stdout] test dev::share::qr::tests::nothing_is_drawn_when_colour_is_off_rather_than_a_code_that_will_not_scan ... ok
[INFO] [stdout] test dev::project::tests::an_unrelated_vite_project_mentions_no_slidx_and_is_still_a_project ... ok
[INFO] [stdout] test dev::share::tests::a_coloured_share_block_draws_the_code_under_the_link ... ok
[INFO] [stdout] test dev::share::address::tests::an_ipv6_origin_brackets_the_address_so_the_port_is_still_a_port ... ok
[INFO] [stdout] test dev::share::tests::a_read_only_share_says_the_link_cannot_change_the_deck ... ok
[INFO] [stdout] test dev::share::address::tests::asking_the_routing_table_sends_nothing_and_can_be_asked_twice ... ok
[INFO] [stdout] test dev::share::address::tests::the_address_this_machine_is_reachable_at_is_never_loopback ... ok
[INFO] [stdout] test dev::share::qr::tests::the_code_is_square_within_one_row_because_two_modules_share_a_cell ... ok
[INFO] [stdout] test dev::tests::a_deck_that_is_not_there_stops_the_command_before_a_server_is_started ... ok
[INFO] [stdout] test dev::tests::a_dev_server_that_failed_to_start_exits_two_rather_than_one ... ok
[INFO] [stdout] test dev::tests::a_project_that_is_not_there_is_answered_with_the_plugin_and_with_preview ... ok
[INFO] [stdout] test dev::tests::asking_for_nothing_shares_nothing ... ok
[INFO] [stdout] test dev::tests::a_missing_deck_says_that_an_empty_slide_directory_would_have_been_enough ... ok
[INFO] [stdout] test dev::tests::a_browser_is_opened_on_the_editor_rather_than_on_the_first_slide ... ok
[INFO] [stdout] test dev::tests::no_open_passes_no_flags_at_all_so_a_headless_machine_is_left_alone ... ok
[INFO] [stdout] test dev::tests::a_dev_server_stopped_with_ctrl_c_exits_zero_because_that_is_how_it_ends ... ok
[INFO] [stdout] test dev::share::tests::a_share_block_says_the_links_end_with_the_dev_server ... ok
[INFO] [stdout] test dev::tests::a_machine_with_no_network_is_told_rather_than_handed_a_loopback_link ... ok
[INFO] [stdout] test dev::share::tests::a_share_block_carries_no_escape_sequences_when_colour_is_off ... ok
[INFO] [stdout] test dev::share::tests::a_session_without_edit_access_has_no_edit_secret_at_all ... ok
[INFO] [stdout] test dev::project::tests::a_project_that_registers_the_plugin_in_its_config_says_so_there ... ok
[INFO] [stdout] test dev::tests::the_editor_route_is_the_one_the_plugin_serves ... ok
[INFO] [stdout] test dev::tests::the_ready_line_carries_no_escape_sequences_when_colour_is_off ... ok
[INFO] [stdout] test dev::tests::nothing_is_bound_beyond_localhost_unless_sharing_was_asked_for ... ok
[INFO] [stdout] test doctor::tests::a_directory_with_no_deck_in_it_expects_nothing_rather_than_failing ... ok
[INFO] [stdout] test dev::share::tests::a_share_that_grants_editing_warns_about_the_link_that_does_it ... ok
[INFO] [stdout] test dev::tests::the_ready_line_says_where_the_editor_is_and_what_is_being_run ... ok
[INFO] [stdout] test dev::share::tests::granting_edit_access_adds_a_second_secret_rather_than_changing_the_first ... ok
[INFO] [stdout] test doctor::tests::a_pass_takes_one_line_and_says_nothing_further ... ok
[INFO] [stdout] test doctor::tests::a_clean_machine_is_told_so_in_a_sentence_rather_than_by_absence ... ok
[INFO] [stdout] test dev::tests::sharing_binds_wide_and_pins_the_port_the_link_names ... ok
[INFO] [stdout] test doctor::tests::a_status_column_lines_up_whether_or_not_colour_is_on ... ok
[INFO] [stdout] test dev::tests::a_port_is_handed_to_vite_in_vites_own_spelling ... ok
[INFO] [stdout] test dev::tests::a_port_that_is_not_a_number_is_refused_here_rather_than_by_the_child ... ok
[INFO] [stdout] test dev::tests::a_shared_ready_line_never_puts_the_secret_before_the_hash ... ok
[INFO] [stdout] test dev::tests::granting_edit_access_without_sharing_is_refused_rather_than_ignored ... ok
[INFO] [stdout] test dev::tests::the_ready_line_of_a_shared_deck_prints_the_link_and_says_it_is_read_only ... ok
[INFO] [stdout] test doctor::tests::a_deck_that_places_a_camera_is_what_makes_the_camera_check_say_anything ... ok
[INFO] [stdout] test doctor::tests::the_verdict_is_the_first_thing_under_the_title ... ok
[INFO] [stdout] test doctor::tests::only_an_outright_failure_exits_non_zero ... ok
[INFO] [stdout] test doctor::tests::an_unmeasured_reading_never_reads_as_a_clean_bill ... ok
[INFO] [stdout] test doctor::tests::explain_adds_what_a_check_exists_to_catch_and_is_off_by_default ... ok
[INFO] [stdout] test doctor::tests::what_needs_doing_is_given_room_and_what_passed_is_given_a_list ... ok
[INFO] [stdout] test export::build::tests::a_project_with_no_vite_names_what_to_install_and_the_way_round_it ... ok
[INFO] [stdout] test doctor::tests::dir_points_the_disk_check_at_the_volume_the_deck_is_on ... ok
[INFO] [stdout] test doctor::tests::every_finding_that_is_not_a_pass_prints_its_remedy_on_its_own_line ... ok
[INFO] [stdout] test doctor::tests::findings_are_printed_worst_first ... ok
[INFO] [stdout] test doctor::tests::no_line_of_a_report_runs_past_the_fixed_width ... ok
[INFO] [stdout] test export::build::tests::nothing_installed_is_reported_rather_than_reached_for_over_a_network ... ok
[INFO] [stdout] test export::build::tests::the_decks_own_vite_is_found_beside_it ... ok
[INFO] [stdout] test export::build::tests::the_variable_the_plugin_reads_is_spelled_once ... ok
[INFO] [stdout] test doctor::tests::offline_builds_a_request_that_opens_no_sockets ... ok
[INFO] [stdout] test export::package::tests::an_archive_path_uses_the_separator_zip_means_on_every_platform ... ok
[INFO] [stdout] test doctor::tests::the_report_adds_no_characters_a_venue_console_could_mangle ... ok
[INFO] [stdout] test doctor::tests::the_verdict_counts_each_severity_separately ... ok
[INFO] [stdout] test export::build::tests::a_build_that_failed_says_the_output_above_is_the_reason ... ok
[INFO] [stdout] test export::build::tests::a_deck_in_a_workspace_finds_the_vite_hoisted_to_its_root ... ok
[INFO] [stdout] test export::package::tests::no_frames_at_all_names_what_renders_them_and_why_no_build_may_have_none ... ok
[INFO] [stdout] test export::package::tests::a_frame_of_the_wrong_kind_is_not_packaged_as_one ... ok
[INFO] [stdout] test export::package::tests::a_build_with_no_pdf_says_what_renders_one_rather_than_writing_an_empty_file ... ok
[INFO] [stdout] test export::package::tests::a_directory_that_cannot_be_written_says_how_to_point_it_somewhere_else ... ok
[INFO] [stdout] test dev::tests::the_ready_line_of_an_editable_share_names_both_links ... ok
[INFO] [stdout] test export::package::tests::exporting_the_same_build_twice_writes_the_same_bytes ... ok
[INFO] [stdout] test dev::tests::the_ready_line_admits_it_when_nothing_in_the_project_names_the_plugin ... ok
[INFO] [stdout] test dev::tests::a_missing_package_manager_names_the_command_to_run_by_hand ... ok
[INFO] [stdout] test export::package::tests::the_pdf_export_is_the_document_the_build_rendered_rather_than_a_new_one ... ok
[INFO] [stdout] test export::package::tests::the_image_export_holds_one_file_per_stop ... ok
[INFO] [stdout] test export::package::tests::the_per_slide_export_holds_one_pdf_per_slide_under_the_name_the_build_gave_it ... ok
[INFO] [stdout] test export::package::tests::the_frames_a_previous_export_staged_are_not_part_of_the_site ... ok
[INFO] [stdout] test export::tests::the_flag_that_takes_a_target_lists_every_target_there_is ... ok
[INFO] [stdout] test export::package::tests::the_site_export_holds_every_page_the_build_wrote ... ok
[INFO] [stdout] test export::package::tests::the_site_export_is_an_archive_a_reader_can_open ... ok
[INFO] [stdout] test export::tests::a_deck_that_is_not_there_exits_two_rather_than_writing_an_empty_archive ... ok
[INFO] [stdout] test export::tests::a_target_nobody_has_names_the_ones_that_exist ... ok
[INFO] [stdout] test export::tests::no_target_lists_every_target_rather_than_picking_one ... ok
[INFO] [stdout] test find::highlight::tests::a_position_that_is_not_a_character_boundary_is_skipped ... ok
[INFO] [stdout] test find::highlight::tests::a_position_past_the_end_of_the_text_is_dropped_rather_than_panicking ... ok
[INFO] [stdout] test find::highlight::tests::colour_is_added_on_top_and_changes_no_column ... ok
[INFO] [stdout] test find::highlight::tests::nothing_is_marked_when_nothing_matched ... ok
[INFO] [stdout] test find::highlight::tests::only_the_positions_inside_the_piece_being_drawn_are_kept ... ok
[INFO] [stdout] test find::highlight::tests::positions_follow_a_path_whose_home_directory_was_shortened ... ok
[INFO] [stdout] test find::highlight::tests::the_brackets_are_there_without_colour_because_a_pipe_has_no_colour ... ok
[INFO] [stdout] test find::highlight::tests::what_matched_is_shown_and_the_rest_is_left_alone ... ok
[INFO] [stdout] test find::highlight::tests::a_highlight_inside_japanese_text_does_not_change_the_text_around_it ... ok
[INFO] [stdout] test find::highlight::tests::a_match_in_japanese_text_brackets_whole_characters ... ok
[INFO] [stdout] test find::highlight::tests::a_match_inside_the_part_that_was_replaced_is_not_shown_at_all ... ok
[INFO] [stdout] test find::highlight::tests::adjacent_matches_are_one_run_rather_than_one_bracket_each ... ok
[INFO] [stdout] test find::picker::tests::backspace_widens_it_again ... ok
[INFO] [stdout] test find::picker::tests::a_printable_character_narrows_and_a_key_with_no_command_does_nothing ... ok
[INFO] [stdout] test find::picker::tests::an_opening_query_is_applied_before_a_key_is_pressed ... ok
[INFO] [stdout] test find::picker::tests::choosing_with_nothing_matching_chooses_nothing ... ok
[INFO] [stdout] test find::picker::tests::enter_chooses_and_both_ways_of_giving_up_cancel ... ok
[INFO] [stdout] test find::highlight::tests::matches_with_a_gap_between_them_get_a_bracket_each ... ok
[INFO] [stdout] test find::picker::tests::narrowing_pulls_the_cursor_back_into_the_list ... ok
[INFO] [stdout] test find::picker::tests::the_cursor_stops_at_both_ends_rather_than_wrapping ... ok
[INFO] [stdout] test find::picker::tests::the_keys_the_browser_runtime_uses_move_the_cursor_the_same_way_here ... ok
[INFO] [stdout] test find::picker::tests::typing_narrows_the_list ... ok
[INFO] [stdout] test find::scoring::tests::a_long_path_does_not_sink_an_otherwise_perfect_match ... ok
[INFO] [stdout] test find::scoring::tests::a_match_at_the_front_beats_the_same_match_buried_in_a_path ... ok
[INFO] [stdout] test find::picker::tests::backspace_widens_the_query ... ok
[INFO] [stdout] test find::scoring::tests::a_needle_that_is_not_a_subsequence_does_not_match_at_all ... ok
[INFO] [stdout] test find::picker::tests::choosing_reports_the_position_in_the_list_that_was_handed_in ... ok
[INFO] [stdout] test find::scoring::tests::a_run_of_characters_beats_the_same_characters_scattered ... ok
[INFO] [stdout] test find::scoring::tests::an_empty_needle_matches_everything_so_an_empty_prompt_lists_the_index ... ok
[INFO] [stdout] test find::scoring::tests::matching_ignores_case_but_the_exact_case_still_wins ... ok
[INFO] [stdout] test find::scoring::tests::characters_have_to_appear_in_order ... ok
[INFO] [stdout] test find::scoring::tests::equally_good_matches_keep_the_order_they_came_in ... ok
[INFO] [stdout] test find::scoring::tests::initials_find_a_camel_case_name ... ok
[INFO] [stdout] test find::scoring::tests::initials_find_a_hyphenated_name ... ok
[INFO] [stdout] test find::scoring::tests::positions_are_byte_offsets_so_they_survive_multi_byte_text ... ok
[INFO] [stdout] test find::screen::tests::a_deck_is_shown_by_its_title_when_it_has_one ... ok
[INFO] [stdout] test find::scoring::tests::the_positions_point_at_what_matched_for_highlighting ... ok
[INFO] [stdout] test find::scoring::tests::ranking_puts_the_best_match_first_and_drops_the_non_matches ... ok
[INFO] [stdout] test find::screen::tests::a_list_shorter_than_the_window_draws_all_of_it ... ok
[INFO] [stdout] test find::screen::tests::a_highlight_in_a_japanese_title_leaves_the_path_column_where_it_was ... ok
[INFO] [stdout] test find::screen::tests::a_machine_with_no_home_directory_still_renders_paths ... ok
[INFO] [stdout] test find::screen::tests::a_match_inside_the_home_directory_is_not_marked_because_it_is_not_shown ... ok
[INFO] [stdout] test find::screen::tests::a_path_outside_the_home_directory_is_shown_whole ... ok
[INFO] [stdout] test find::screen::tests::a_query_with_multi_byte_characters_does_not_split_a_codepoint ... ok
[INFO] [stdout] test find::screen::tests::a_query_that_spans_the_path_and_the_title_is_marked_in_both ... ok
[INFO] [stdout] test find::screen::tests::a_very_long_title_pushes_its_path_along_rather_than_being_cut ... ok
[INFO] [stdout] test find::screen::tests::a_row_shows_which_characters_of_the_path_the_query_matched ... ok
[INFO] [stdout] test find::screen::tests::a_row_shows_which_characters_of_the_title_the_query_matched ... ok
[INFO] [stdout] test find::screen::tests::a_selection_past_the_end_of_the_list_still_draws_something ... ok
[INFO] [stdout] test find::screen::tests::an_empty_query_invites_typing_rather_than_showing_a_blank_line ... ok
[INFO] [stdout] test find::scoring::tests::ranking_an_empty_needle_keeps_every_candidate_in_its_own_order ... ok
[INFO] [stdout] test find::screen::tests::a_home_directory_is_shortened_to_a_tilde ... ok
[INFO] [stdout] test find::screen::tests::colour_does_not_move_a_column_the_highlight_is_on ... ok
[INFO] [stdout] test find::screen::tests::colour_changes_the_frames_height_by_nothing ... ok
[INFO] [stdout] test find::screen::tests::only_a_windowful_is_drawn_however_long_the_list_is ... ok
[INFO] [stdout] test find::screen::tests::an_empty_query_marks_nothing_rather_than_every_row ... ok
[INFO] [stdout] test find::screen::tests::an_entry_with_no_title_falls_back_to_its_directory_name ... ok
[INFO] [stdout] test find::screen::tests::no_matches_says_so_and_says_what_to_do_about_it ... ok
[INFO] [stdout] test find::screen::tests::nothing_drawn_runs_past_the_fixed_width_for_an_ordinary_deck ... ok
[INFO] [stdout] test find::screen::tests::the_frame_is_ascii_so_it_renders_over_ssh_and_in_any_terminal ... ok
[INFO] [stdout] test find::screen::tests::the_header_says_where_in_the_list_the_cursor_is ... ok
[INFO] [stdout] test find::screen::tests::the_highlight_survives_a_terminal_with_no_colour_at_all ... ok
[INFO] [stdout] test find::screen::tests::the_list_stays_still_until_the_cursor_reaches_the_bottom_of_it ... ok
[INFO] [stdout] test find::screen::tests::the_last_entry_is_reachable_without_scrolling_past_the_end ... ok
[INFO] [stdout] test find::screen::tests::the_window_follows_the_cursor_past_the_bottom_by_one_row_at_a_time ... ok
[INFO] [stdout] test find::screen::tests::the_path_column_lines_up_across_rows_of_similar_titles ... ok
[INFO] [stdout] test find::tests::a_query_that_matches_nothing_exits_one_with_nothing_on_stdout ... ok
[INFO] [stdout] test find::tests::a_listing_puts_paths_on_stdout_and_the_names_beside_them_on_stderr ... ok
[INFO] [stdout] test find::tests::an_empty_index_explains_that_it_fills_itself_rather_than_asking_for_setup ... ok
[INFO] [stdout] test find::tests::a_listing_says_the_occasion_next_to_the_name ... ok
[INFO] [stdout] test find::tests::json_carries_everything_the_index_knows_rather_than_just_paths ... ok
[INFO] [stdout] test find::tests::the_chosen_path_is_the_only_thing_on_standard_output ... ok
[INFO] [stdout] test find::tests::ranking_finds_a_deck_by_its_title_as_well_as_its_path ... ok
[INFO] [stdout] test fmt::tests::a_deck_that_is_not_there_exits_two_rather_than_reporting_a_clean_run ... ok
[INFO] [stdout] test fmt::tests::a_clean_deck_passes_check ... ok
[INFO] [stdout] test fmt::tests::a_file_already_formatted_is_not_written_to_at_all ... ok
[INFO] [stdout] test fmt::tests::check_writes_nothing_and_exits_non_zero ... ok
[INFO] [stdout] test fmt::tests::a_file_that_needs_formatting_is_rewritten_and_the_run_still_passes ... ok
[INFO] [stdout] test fmt::tests::a_custom_separator_reaches_the_formatter ... ok
[INFO] [stdout] test fmt::tests::every_file_of_a_multi_file_deck_is_formatted_on_its_own ... ok
[INFO] [stdout] test find::screen::tests::the_occasion_is_shown_only_under_the_row_being_looked_at ... ok
[INFO] [stdout] test find::screen::tests::the_selected_row_is_the_only_one_wearing_the_cursor ... ok
[INFO] [stdout] test git::tests::a_path_is_spelled_with_forward_slashes_whatever_the_platform_uses ... ok
[INFO] [stdout] test export::tests::packaging_a_directory_with_no_build_in_it_says_so_rather_than_writing_nothing ... ok
[INFO] [stdout] test export::tests::the_report_carries_no_escape_sequences_when_colour_is_off ... ok
[INFO] [stdout] test git::tests::a_status_record_is_read_as_its_code_and_its_path ... ok
[INFO] [stdout] test export::tests::the_per_slide_export_holds_one_document_per_slide ... ok
[INFO] [stdout] test export::tests::the_image_export_holds_one_image_per_stop ... ok
[INFO] [stdout] test export::tests::the_report_says_how_many_files_went_in_and_what_survived_the_trip ... ok
[INFO] [stdout] test export::tests::the_site_export_holds_the_pages_the_build_wrote ... ok
[INFO] [stdout] test export::tests::the_site_export_is_named_for_the_deck_and_is_an_archive ... ok
[INFO] [stdout] test git::tests::the_repository_root_is_spelled_as_a_path_rather_than_as_nothing ... ok
[INFO] [stdout] test git::tests::a_directory_that_is_not_a_repository_is_not_reported_as_one ... ok
[INFO] [stdout] test export::tests::the_pdf_export_is_a_pdf ... ok
[INFO] [stdout] test grep::tests::a_line_that_fits_is_shown_as_it_was_written ... ok
[INFO] [stdout] test grep::tests::a_long_line_is_cut_around_the_match_rather_than_from_the_start ... ok
[INFO] [stdout] test grep::tests::a_long_japanese_line_is_cut_to_the_cells_it_will_occupy ... ok
[INFO] [stdout] test grep::tests::a_match_is_reported_by_the_slide_it_is_on_rather_than_the_line_of_a_file ... ok
[INFO] [stdout] test grep::tests::a_lowercase_query_matches_either_case_and_a_capital_makes_it_exact ... ok
[INFO] [stdout] test grep::tests::an_empty_query_is_a_misuse_rather_than_every_line_of_every_deck ... ok
[INFO] [stdout] test grep::tests::json_carries_the_project_path_so_a_hit_can_be_opened ... ok
[INFO] [stdout] test grep::tests::a_single_file_deck_reports_the_slide_the_match_is_on_and_not_the_file ... ok
[INFO] [stdout] test grep::tests::no_match_exits_one_so_a_shell_can_branch_on_it ... ok
[INFO] [stdout] test grep::tests::nothing_a_search_prints_runs_past_the_fixed_width ... ok
[INFO] [stdout] test grep::tests::a_match_in_the_last_slide_of_a_long_deck_is_numbered_from_one ... ok
[INFO] [stdout] test grep::tests::every_project_in_the_index_is_searched ... ok
[INFO] [stdout] test grep::tests::a_project_that_has_been_deleted_is_skipped_rather_than_failing_the_search ... ok
[INFO] [stdout] test grep::tests::nothing_in_node_modules_is_searched_however_much_markdown_is_in_there ... ok
[INFO] [stdout] test grep::tests::matches_are_grouped_under_the_deck_they_are_in ... ok
[INFO] [stdout] test grep::tests::the_search_stops_at_the_limit_and_says_that_it_did ... ok
[INFO] [stdout] test help::tests::a_command_help_documents_every_flag_the_parser_accepts ... ok
[INFO] [stdout] test help::tests::a_flag_that_takes_a_value_shows_the_placeholder_next_to_it ... ok
[INFO] [stdout] test grep::tests::nothing_under_the_slidx_home_is_searched ... ok
[INFO] [stdout] test help::tests::a_nested_commands_usage_line_names_it_once ... ok
[INFO] [stdout] test help::tests::every_page_reachable_by_flag_is_reachable_by_name ... ok
[INFO] [stdout] test help::tests::every_summary_in_the_command_list_starts_in_the_same_column ... ok
[INFO] [stdout] test help::tests::every_command_help_offers_help_itself ... ok
[INFO] [stdout] test help::tests::every_usage_line_is_a_command_line_somebody_could_type ... ok
[INFO] [stdout] test help::tests::asking_for_help_by_name_and_by_flag_prints_the_same_page ... ok
[INFO] [stdout] test help::tests::help_for_something_that_is_not_a_command_suggests_the_nearest_one ... ok
[INFO] [stdout] test help::tests::help_goes_to_standard_output_because_it_was_asked_for ... ok
[INFO] [stdout] test help::tests::help_with_nothing_named_is_the_page_the_bare_command_prints ... ok
[INFO] [stdout] test help::tests::the_root_help_lists_every_command_with_what_it_is_for ... ok
[INFO] [stdout] test help::tests::the_short_and_long_forms_of_a_flag_line_up_in_the_column ... ok
[INFO] [stdout] test home::tests::a_machine_with_no_home_directory_still_resolves_to_something ... ok
[INFO] [stdout] test home::tests::a_unix_machine_gets_a_dotfile_in_the_home_directory ... ok
[INFO] [stdout] test home::tests::an_exported_but_empty_variable_is_not_a_request_to_install_into_the_root ... ok
[INFO] [stdout] test help::tests::no_help_line_runs_past_eighty_columns ... ok
[INFO] [stdout] test help::tests::plain_help_carries_no_escape_sequences_anywhere ... ok
[INFO] [stdout] test help::tests::the_lint_help_says_what_the_exit_code_means ... ok
[INFO] [stdout] test help::tests::the_root_help_names_the_plugin_rather_than_leaving_building_unexplained ... ok
[INFO] [stdout] test home::tests::every_path_hangs_off_the_one_root ... ok
[INFO] [stdout] test home::tests::slidx_home_wins_over_everything ... ok
[INFO] [stdout] test home::tests::the_binary_directory_is_the_one_the_shell_installer_writes_to ... ok
[INFO] [stdout] test home::tests::windows_does_not_consult_xdg_data_home ... ok
[INFO] [stdout] test home::tests::windows_without_localappdata_falls_back_to_the_user_profile ... ok
[INFO] [stdout] test home::tests::xdg_data_home_wins_over_the_default_where_the_platform_has_that_convention ... ok
[INFO] [stdout] test home::tests::resolving_a_path_creates_nothing ... ok
[INFO] [stdout] test home::tests::windows_gets_a_windows_path_rather_than_a_dotfile ... ok
[INFO] [stdout] test i18n::tests::a_dry_run_says_what_would_happen_and_writes_nothing ... ok
[INFO] [stdout] test i18n::tests::applying_a_catalogue_that_translates_nothing_leaves_every_file_byte_identical ... ok
[INFO] [stdout] test i18n::tests::a_translation_that_dropped_a_mark_key_is_refused_and_exits_non_zero ... ok
[INFO] [stdout] test i18n::tests::applying_to_a_deck_that_is_already_a_translation_is_refused ... ok
[INFO] [stdout] test i18n::tests::extract_without_a_language_says_what_to_type ... ok
[INFO] [stdout] test index::tests::a_corrupt_index_reads_as_an_empty_one_rather_than_failing_a_command ... ok
[INFO] [stdout] test index::tests::a_deck_is_recorded_with_what_its_frontmatter_says_about_it ... ok
[INFO] [stdout] test i18n::tests::applying_a_translation_writes_a_sibling_deck_and_keeps_the_slide_ids ... ok
[INFO] [stdout] test i18n::tests::extract_writes_a_po_file_a_translation_tool_can_open ... ok
[INFO] [stdout] test i18n::tests::applying_always_says_what_a_translation_cannot_carry_across ... ok
[INFO] [stdout] test i18n::tests::re_extracting_over_a_catalogue_keeps_the_translations_already_in_it ... ok
[INFO] [stdout] test index::tests::a_deck_that_was_moved_on_purpose_is_dropped_rather_than_left_to_be_pruned ... ok
[INFO] [stdout] test index::tests::a_deck_whose_directory_has_gone_is_not_in_the_results ... ok
[INFO] [stdout] test index::tests::a_deck_with_no_title_is_labelled_by_its_directory_rather_than_left_blank ... ok
[INFO] [stdout] test index::tests::a_file_where_a_project_used_to_be_does_not_count_as_a_project ... ok
[INFO] [stdout] test index::tests::a_search_matches_the_path_the_title_and_the_event ... ok
[INFO] [stdout] test index::tests::a_missing_index_reads_as_an_empty_one ... ok
[INFO] [stdout] test index::tests::a_title_that_is_only_whitespace_is_treated_as_no_title ... ok
[INFO] [stdout] test index::tests::recording_stats_nothing_so_the_write_path_stays_cheap_on_every_invocation ... ok
[INFO] [stdout] test index::tests::remembering_a_deck_never_fails_however_unwritable_the_index_is ... ok
[INFO] [stdout] test index::tests::recording_the_same_deck_twice_refreshes_it_rather_than_duplicating_it ... ok
[INFO] [stdout] test index::tests::an_index_round_trips_through_the_file ... ok
[INFO] [stdout] test index::tests::the_most_recently_seen_deck_is_first ... ok
[INFO] [stdout] test index::tests::pruning_drops_the_dead_entries_from_the_file_itself ... ok
[INFO] [stdout] test index::tests::saving_creates_the_directory_rather_than_failing_on_a_fresh_machine ... ok
[INFO] [stdout] test lint::source::tests::a_directory_is_read_in_file_name_order_rather_than_directory_order ... ok
[INFO] [stdout] test index::tests::remembering_a_deck_puts_it_in_the_file ... ok
[INFO] [stdout] test lint::source::tests::a_directory_with_no_slides_explains_the_layout_rather_than_reporting_zero ... ok
[INFO] [stdout] test index::tests::the_occasion_reads_as_a_sentence_whichever_half_is_present ... ok
[INFO] [stdout] test index::tests::the_least_recently_seen_deck_falls_off_the_end ... ok
[INFO] [stdout] test lint::source::tests::a_file_that_opens_with_its_own_separator_does_not_get_a_second_one ... ok
[INFO] [stdout] test lint::source::tests::a_single_file_deck_maps_to_no_slide_file_because_it_needs_no_mapping ... ok
[INFO] [stdout] test lint::source::tests::a_path_that_does_not_exist_says_where_it_looked_and_what_it_wanted ... ok
[INFO] [stdout] test lint::source::tests::a_slide_that_ends_with_its_notes_survives_being_joined_to_the_next_one ... ok
[INFO] [stdout] test lint::source::tests::files_that_are_not_slides_are_left_out ... ok
[INFO] [stdout] test lint::source::tests::every_byte_of_the_joined_source_maps_back_to_the_file_it_came_from ... ok
[INFO] [stdout] test lint::source::tests::slide_files_are_joined_with_the_separator_alone_between_blank_lines ... ok
[INFO] [stdout] test lint::source::tests::the_deck_separator_is_whatever_the_deck_uses ... ok
[INFO] [stdout] test lint::source::tests::the_extension_match_ignores_case ... ok
[INFO] [stdout] test lint::source::tests::the_first_files_frontmatter_stays_at_the_very_start_of_the_deck ... ok
[INFO] [stdout] test lint::tests::a_clean_deck_is_told_so_in_a_sentence_rather_than_by_an_empty_report ... ok
[INFO] [stdout] test lint::source::tests::an_empty_slide_file_adds_no_separator_of_its_own ... ok
[INFO] [stdout] test lint::tests::a_blocking_finding_is_printed_before_the_advice ... ok
[INFO] [stdout] test lint::tests::a_clean_deck_reports_nothing_and_exits_zero ... ok
[INFO] [stdout] test lint::source::tests::a_subdirectory_is_not_mistaken_for_a_slide ... ok
[INFO] [stdout] test lint::source::tests::a_single_file_deck_is_read_without_being_touched ... ok
[INFO] [stdout] test lint::tests::a_deck_kept_somewhere_other_than_slides_is_its_own_project ... ok
[INFO] [stdout] test lint::tests::a_deck_wide_finding_says_deck_rather_than_naming_a_slide ... ok
[INFO] [stdout] test git::tests::a_path_with_a_space_in_it_is_reported_unmangled ... ok
[INFO] [stdout] test lint::tests::a_finding_carries_its_code_for_looking_up_or_suppressing ... ok
[INFO] [stdout] test lint::tests::a_locator_gives_up_title_before_it_gives_up_the_rule_code ... ok
[INFO] [stdout] test lint::tests::a_long_slide_title_is_cut_short_in_the_locator_and_marked_as_cut ... ok
[INFO] [stdout] test lint::tests::a_missing_deck_exits_two_rather_than_reporting_a_clean_run ... ok
[INFO] [stdout] test lint::tests::a_path_that_does_not_exist_is_not_recorded_at_all ... ok
[INFO] [stdout] test lint::tests::a_dialect_mistake_is_worth_a_look_rather_than_a_failed_run ... ok
[INFO] [stdout] test lint::tests::a_single_file_deck_records_the_directory_it_sits_in ... ok
[INFO] [stdout] test lint::tests::a_report_lines_up_the_same_coloured_and_plain ... ok
[INFO] [stdout] test lint::tests::a_deck_that_reaches_the_network_for_an_asset_exits_non_zero ... ok
[INFO] [stdout] test lint::tests::a_dialect_mistake_is_reported_by_this_command ... ok
[INFO] [stdout] test lint::tests::a_finding_names_the_slide_by_number_and_title ... ok
[INFO] [stdout] test lint::tests::allow_can_be_given_more_than_once ... ok
[INFO] [stdout] test lint::tests::a_findings_help_is_printed_under_it_rather_than_dropped ... ok
[INFO] [stdout] test lint::tests::findings_of_equal_severity_are_printed_in_deck_order ... ok
[INFO] [stdout] test lint::tests::findings_that_are_only_advice_do_not_fail_the_run ... ok
[INFO] [stdout] test lint::tests::allow_suppresses_a_rule_and_a_whole_group_alike ... ok
[INFO] [stdout] test lint::tests::parse_diagnostics_are_reported_before_the_lint_findings ... ok
[INFO] [stdout] test lint::tests::the_dialect_group_can_be_switched_off_without_the_room_rules ... ok
[INFO] [stdout] test lint::tests::the_project_recorded_is_the_directory_above_a_conventional_slides_folder ... ok
[INFO] [stdout] test lint::tests::an_unknown_theme_name_falls_back_rather_than_failing_the_run ... ok
[INFO] [stdout] test list::tests::a_deck_with_no_declared_slot_shows_a_dash_rather_than_zero_minutes ... ok
[INFO] [stdout] test lint::tests::the_verdict_is_the_first_thing_under_the_title ... ok
[INFO] [stdout] test list::tests::a_japanese_title_keeps_the_columns_after_it_where_they_are ... ok
[INFO] [stdout] test list::tests::a_long_japanese_title_is_cut_by_the_cells_it_occupies ... ok
[INFO] [stdout] test lint::tests::the_verdict_counts_one_slide_as_a_slide_rather_than_as_slides ... ok
[INFO] [stdout] test lint::tests::the_room_rules_can_be_switched_off_without_the_dialect_group ... ok
[INFO] [stdout] test list::tests::a_project_whose_deck_cannot_be_read_still_gets_a_row ... ok
[INFO] [stdout] test list::tests::a_row_says_more_than_the_name_because_half_of_them_are_called_slides ... ok
[INFO] [stdout] test list::tests::a_long_title_is_cut_short_so_the_columns_after_it_stay_put ... ok
[INFO] [stdout] test list::tests::a_title_that_fits_is_left_exactly_as_the_author_wrote_it ... ok
[INFO] [stdout] test list::tests::json_carries_the_path_that_the_table_leaves_out ... ok
[INFO] [stdout] test list::tests::one_deck_is_counted_in_the_singular ... ok
[INFO] [stdout] test list::tests::json_leaves_out_what_a_deck_does_not_say_rather_than_writing_null ... ok
[INFO] [stdout] test list::tests::the_columns_line_up_in_every_row ... ok
[INFO] [stdout] test list::tests::the_most_recently_touched_deck_is_first ... ok
[INFO] [stdout] test list::tests::the_table_says_how_to_get_to_one_of_the_decks_it_listed ... ok
[INFO] [stdout] test list::tests::the_table_carries_no_escape_sequences_when_colour_is_off ... ok
[INFO] [stdout] test lsp::tests::a_client_that_vanished_exits_two_rather_than_one ... ok
[INFO] [stdout] test list::tests::a_slot_that_is_not_whole_minutes_keeps_its_seconds ... ok
[INFO] [stdout] test lsp::tests::a_session_the_client_ended_properly_exits_zero ... ok
[INFO] [stdout] test mcp::content::tests::an_answer_always_arrives_as_text_whichever_revision_was_agreed ... ok
[INFO] [stdout] test mcp::content::tests::structured_output_is_withheld_from_a_client_that_cannot_read_it ... ok
[INFO] [stdout] test mcp::deck::tests::a_file_keeps_the_whitespace_it_had_around_its_own_content ... ok
[INFO] [stdout] test mcp::deck::tests::a_file_that_already_opens_with_a_separator_brings_its_own ... ok
[INFO] [stdout] test mcp::deck::tests::a_file_that_lost_its_last_slide_is_removed_rather_than_emptied ... ok
[INFO] [stdout] test mcp::deck::tests::a_file_whose_bytes_did_not_change_is_not_written_at_all ... ok
[INFO] [stdout] test mcp::deck::tests::a_files_span_is_the_bytes_it_contributed ... ok
[INFO] [stdout] test mcp::deck::tests::a_slide_crossing_a_file_boundary_is_refused_rather_than_half_written ... ok
[INFO] [stdout] test git::tests::a_fresh_repository_has_no_commits_to_compare_against ... ok
[INFO] [stdout] test mcp::deck::tests::an_empty_file_contributes_no_separator_and_keeps_its_place ... ok
[INFO] [stdout] test mcp::deck::tests::an_inserted_slide_joins_the_file_it_pushed_down ... ok
[INFO] [stdout] test mcp::deck::tests::slide_files_are_joined_with_a_blank_line_under_the_separator ... ok
[INFO] [stdout] test lsp::tests::a_slide_file_in_a_conventional_project_is_what_the_server_will_serve ... ok
[INFO] [stdout] test lsp::tests::the_directory_the_server_calls_a_deck_is_the_one_lint_falls_back_to ... ok
[INFO] [stdout] test mcp::deck::tests::the_join_and_the_cut_are_inverses ... ok
[INFO] [stdout] test lsp::tests::typing_it_at_a_prompt_says_what_it_is_and_names_what_to_run_instead ... ok
[INFO] [stdout] test mcp::content::tests::a_tool_that_could_not_do_the_job_says_so_in_a_successful_call ... ok
[INFO] [stdout] test mcp::deck::tests::the_decks_own_frontmatter_follows_whichever_slide_is_first ... ok
[INFO] [stdout] test mcp::edit::tests::a_single_file_deck_is_spliced_in_place ... ok
[INFO] [stdout] test mcp::edit::tests::a_slide_removed_from_its_own_file_takes_the_file_with_it ... ok
[INFO] [stdout] test mcp::edit::tests::a_japanese_deck_is_spliced_by_bytes_rather_than_characters ... ok
[INFO] [stdout] test mcp::edit::tests::the_authors_own_spacing_and_bullets_survive_an_edit ... ok
[INFO] [stdout] test mcp::edit::tests::an_operation_that_asks_for_what_the_source_already_says_writes_nothing ... ok
[INFO] [stdout] test mcp::edit::tests::an_operation_changes_exactly_the_file_it_named ... ok
[INFO] [stdout] test mcp::edit::tests::an_operation_naming_a_slide_that_is_gone_is_an_answer_rather_than_a_panic ... ok
[INFO] [stdout] test lint::tests::the_theme_flag_decides_which_colours_are_checked ... ok
[INFO] [stdout] test mcp::history::tests::an_edit_that_changed_nothing_is_not_worth_undoing ... ok
[INFO] [stdout] test mcp::history::tests::an_entry_remembers_which_deck_it_belongs_to ... ok
[INFO] [stdout] test mcp::instructions::tests::a_decks_own_content_is_named_as_untrusted_whatever_the_authority ... ok
[INFO] [stdout] test mcp::history::tests::an_inverse_is_stored_as_the_value_it_is_rather_than_recomputed ... ok
[INFO] [stdout] test mcp::history::tests::the_most_recent_change_is_the_one_that_comes_back_first ... ok
[INFO] [stdout] test mcp::instructions::tests::a_read_only_server_says_so_and_says_whose_decision_that_was ... ok
[INFO] [stdout] test mcp::instructions::tests::a_writing_server_states_the_splice_rule_before_anything_it_could_do_wrong ... ok
[INFO] [stdout] test mcp::instructions::tests::every_line_fits_a_terminal_because_a_person_reads_this_in_review ... ok
[INFO] [stdout] test mcp::instructions::tests::the_dialect_a_client_cannot_infer_is_spelled_out ... ok
[INFO] [stdout] test mcp::instructions::tests::what_slidx_cannot_do_is_named_rather_than_left_to_be_discovered ... ok
[INFO] [stdout] test mcp::instructions::tests::a_writing_server_says_to_prefer_the_narrow_operation ... ok
[INFO] [stdout] test mcp::prompt::tests::a_prompt_that_does_not_exist_names_the_ones_that_do ... ok
[INFO] [stdout] test mcp::prompt::tests::a_slide_that_is_not_there_says_how_many_there_are ... ok
[INFO] [stdout] test mcp::prompt::tests::a_slide_number_arrives_as_text_because_that_is_what_the_protocol_carries ... ok
[INFO] [stdout] test mcp::prompt::tests::every_prompt_says_what_it_is_for_and_what_it_takes ... ok
[INFO] [stdout] test mcp::prompt::tests::a_prompt_carries_the_slide_rather_than_telling_a_model_to_go_and_read_it ... ok
[INFO] [stdout] test mcp::prompt::tests::the_notes_prompt_states_what_notes_are_for_in_slidx ... ok
[INFO] [stdout] test mcp::edit::tests::the_inverse_puts_the_deck_back_byte_for_byte ... ok
[INFO] [stdout] test mcp::protocol::tests::a_client_that_names_no_revision_is_refused_rather_than_defaulted ... ok
[INFO] [stdout] test mcp::prompt::tests::the_notes_prompt_works_out_the_time_this_slide_has ... ok
[INFO] [stdout] test mcp::protocol::tests::structured_output_belongs_to_the_revision_that_introduced_it_and_no_earlier_one ... ok
[INFO] [stdout] test mcp::prompt::tests::the_room_prompt_takes_what_is_known_about_the_venue ... ok
[INFO] [stdout] test mcp::prompt::tests::the_split_prompt_forbids_tidying_on_the_way ... ok
[INFO] [stdout] test mcp::prompt::tests::the_split_prompt_names_the_marks_that_have_to_move_with_their_text ... ok
[INFO] [stdout] test mcp::protocol::tests::a_revision_nobody_here_speaks_carries_what_was_asked_for_into_the_refusal ... ok
[INFO] [stdout] test mcp::prompt::tests::the_room_prompt_says_what_a_clean_lint_run_does_not_prove ... ok
[INFO] [stdout] test mcp::protocol::tests::the_batching_revision_is_not_in_the_list ... ok
[INFO] [stdout] test mcp::resource::card::tests::a_slide_that_is_not_there_says_how_many_there_are ... ok
[INFO] [stdout] test mcp::resource::card::tests::base64_survives_bytes_that_are_not_text ... ok
[INFO] [stdout] test mcp::protocol::tests::the_newest_revision_this_server_speaks_is_the_one_it_declares ... ok
[INFO] [stdout] test mcp::protocol::tests::the_revision_a_client_asks_for_is_the_one_it_gets ... ok
[INFO] [stdout] test mcp::resource::card::tests::the_card_for_slide_zero_is_the_file_the_plugin_named_one ... ok
[INFO] [stdout] test mcp::resource::card::tests::a_built_deck_answers_with_the_png_the_build_rasterised ... ok
[INFO] [stdout] test mcp::resource::card::tests::a_deck_that_has_not_been_built_still_answers_with_a_picture ... ok
[INFO] [stdout] test mcp::resource::card::tests::base64_encodes_the_way_every_decoder_expects ... ok
[INFO] [stdout] test mcp::resource::deck::tests::a_decks_model_is_the_one_the_build_consumes ... ok
[INFO] [stdout] test mcp::resource::deck::tests::a_project_outside_the_roots_is_refused_the_same_way_a_tool_is ... ok
[INFO] [stdout] test mcp::resource::deck::tests::a_slides_html_carries_the_step_anchors_the_runtime_reads ... ok
[INFO] [stdout] test mcp::resource::deck::tests::a_slide_that_is_not_there_says_how_many_there_are ... ok
[INFO] [stdout] test mcp::resource::deck::tests::a_slides_source_is_the_authors_own_bytes_rather_than_the_parsed_content ... ok
[INFO] [stdout] test mcp::resource::deck::tests::the_timeline_counts_the_stops_a_speaker_will_click_through ... ok
[INFO] [stdout] test mcp::resource::tests::a_uri_this_server_does_not_serve_is_answered_rather_than_thrown ... ok
[INFO] [stdout] test mcp::resource::deck::tests::the_diagnostics_are_the_linters_own_findings ... ok
[INFO] [stdout] test mcp::resource::tests::a_root_is_listed_in_every_shape_a_deck_is_served_in ... ok
[INFO] [stdout] test mcp::resource::tests::every_listed_resource_names_a_uri_this_server_can_parse ... ok
[INFO] [stdout] test mcp::resource::tests::every_template_is_a_uri_a_client_can_fill_in ... ok
[INFO] [stdout] test mcp::resource::tests::indexed_projects_are_templated_rather_than_listed_one_by_one ... ok
[INFO] [stdout] test mcp::resource::tests::the_index_is_listed_whatever_the_server_was_pointed_at ... ok
[INFO] [stdout] test mcp::session::tests::a_mutating_tool_on_a_read_only_session_is_refused_by_authority_not_by_argument ... ok
[INFO] [stdout] test mcp::resource::tests::the_card_template_says_it_is_not_a_screenshot ... ok
[INFO] [stdout] test mcp::session::tests::a_batch_is_refused_under_a_null_id_because_it_has_no_single_one ... ok
[INFO] [stdout] test mcp::session::tests::a_call_with_no_tool_name_is_a_protocol_error_rather_than_a_failing_tool ... ok
[INFO] [stdout] test mcp::session::tests::a_read_only_session_lists_only_the_tools_it_will_run ... ok
[INFO] [stdout] test mcp::session::tests::a_response_arriving_at_this_server_is_not_answered ... ok
[INFO] [stdout] test mcp::session::tests::the_agreed_revision_is_remembered_because_it_shapes_every_later_reply ... ok
[INFO] [stdout] test mcp::session::tests::the_capabilities_declare_no_notification_this_server_cannot_send ... ok
[INFO] [stdout] test mcp::tests::every_root_named_on_the_command_line_is_served ... ok
[INFO] [stdout] test mcp::tests::a_session_over_an_empty_stream_ends_without_writing_anything ... ok
[INFO] [stdout] test mcp::tests::with_no_root_the_server_serves_the_directory_it_was_started_in ... ok
[INFO] [stdout] test mcp::tool::apply::tests::a_redundant_operation_says_so_rather_than_claiming_a_write ... ok
[INFO] [stdout] test mcp::tool::apply::tests::every_mutating_tool_promises_the_same_four_things ... ok
[INFO] [stdout] test mcp::tool::apply::tests::the_report_names_the_authors_files_rather_than_the_operation ... ok
[INFO] [stdout] test mcp::tool::args::tests::a_class_written_with_its_dot_is_still_one_class ... ok
[INFO] [stdout] test mcp::tool::apply::tests::the_report_counts_its_own_nouns ... ok
[INFO] [stdout] test mcp::tool::args::tests::a_group_lands_several_intents_on_one_click ... ok
[INFO] [stdout] test mcp::tool::args::tests::a_key_copied_with_its_hash_still_names_the_mark ... ok
[INFO] [stdout] test mcp::tool::args::tests::a_missing_slide_says_both_ways_of_naming_one ... ok
[INFO] [stdout] test mcp::tool::args::tests::a_range_is_measured_in_bytes_so_japanese_lands_where_it_was_meant ... ok
[INFO] [stdout] test mcp::tool::args::tests::a_set_step_that_changes_nothing_is_refused ... ok
[INFO] [stdout] test mcp::tool::args::tests::a_slide_is_named_by_a_bare_number_or_a_bare_string ... ok
[INFO] [stdout] test mcp::tool::args::tests::a_step_is_built_from_a_flat_object_rather_than_serdes_tagged_shape ... ok
[INFO] [stdout] test mcp::tool::args::tests::an_occurrence_picks_which_one ... ok
[INFO] [stdout] test mcp::tool::args::tests::empty_attributes_are_how_a_mark_is_unwrapped_rather_than_an_error ... ok
[INFO] [stdout] test mcp::tool::args::tests::text_that_appears_twice_is_refused_rather_than_marked_at_a_guess ... ok
[INFO] [stdout] test mcp::tool::args::tests::text_that_is_not_there_is_answered_with_what_the_slide_does_say ... ok
[INFO] [stdout] test mcp::tool::args::tests::an_unknown_action_names_the_ones_there_are_and_warns_about_takes ... ok
[INFO] [stdout] test mcp::tool::args::tests::the_text_a_mark_should_wrap_is_found_in_the_slides_body ... ok
[INFO] [stdout] test mcp::session::tests::a_notification_produces_no_frames_at_all ... ok
[INFO] [stdout] test mcp::session::tests::a_revision_nobody_here_speaks_leaves_the_session_uninitialised ... ok
[INFO] [stdout] test mcp::tool::args::tests::tuning_left_out_stays_at_slidxs_own_default ... ok
[INFO] [stdout] test mcp::session::tests::a_writing_session_lists_the_operations_too ... ok
[INFO] [stdout] test git::tests::a_commit_message_is_written_exactly_as_it_was_given ... ok
[INFO] [stdout] test mcp::tool::check::tests::allow_suppresses_a_rule_and_a_whole_group_alike ... ok
[INFO] [stdout] test git::tests::the_commit_and_branch_a_project_was_on_are_readable_for_a_manifest ... ok
[INFO] [stdout] test git::tests::the_files_head_held_are_listed_in_deck_order ... ok
[INFO] [stdout] test git::tests::a_new_file_is_reported_as_untracked_and_a_changed_one_as_modified ... ok
[INFO] [stdout] test mcp::tool::check::tests::a_clean_deck_is_told_so_in_a_sentence_rather_than_by_an_empty_answer ... ok
[INFO] [stdout] test mcp::tool::check::tests::a_directory_outside_the_roots_cannot_be_measured_either ... ok
[INFO] [stdout] test mcp::tool::check::tests::a_missing_deck_argument_says_what_the_argument_is_for ... ok
[INFO] [stdout] test mcp::tool::args::tests::tuning_that_was_asked_for_is_applied ... ok
[INFO] [stdout] test mcp::session::tests::nothing_is_on_the_undo_stack_until_something_changes ... ok
[INFO] [stdout] test mcp::tool::find::tests::a_missing_query_says_what_the_argument_is_for ... ok
[INFO] [stdout] test mcp::tool::find::tests::a_query_that_matches_nothing_says_so_plainly ... ok
[INFO] [stdout] test mcp::tool::find::tests::an_empty_index_is_a_different_answer_from_no_match ... ok
[INFO] [stdout] test mcp::tool::find::tests::a_hit_names_the_slide_rather_than_only_the_line ... ok
[INFO] [stdout] test mcp::tool::find::tests::searching_reads_and_never_writes ... ok
[INFO] [stdout] test mcp::tool::check::tests::the_report_a_model_reads_is_the_report_a_person_reads ... ok
[INFO] [stdout] test mcp::tool::check::tests::a_deck_that_reaches_the_network_for_an_asset_is_reported_as_blocking ... ok
[INFO] [stdout] test mcp::tool::format::tests::it_names_no_slide_because_it_is_not_an_operation ... ok
[INFO] [stdout] test mcp::tool::mark::tests::a_mark_can_be_named_by_position_or_by_key ... ok
[INFO] [stdout] test mcp::tool::mark::tests::adding_a_mark_takes_text_rather_than_a_byte_range ... ok
[INFO] [stdout] test mcp::tool::mark::tests::removing_a_mark_warns_about_the_steps_that_pointed_at_it ... ok
[INFO] [stdout] test mcp::tool::find::tests::the_limit_is_reported_so_a_model_knows_there_may_be_more ... ok
[INFO] [stdout] test mcp::tool::format::tests::it_is_offered_as_the_alternative_to_tidying_by_hand ... ok
[INFO] [stdout] test mcp::tool::mark::tests::the_take_rule_is_stated_where_an_agent_would_get_it_wrong ... ok
[INFO] [stdout] test mcp::tool::mark::tests::unwrapping_a_mark_is_documented_as_what_empty_attributes_mean ... ok
[INFO] [stdout] test mcp::tool::format::tests::it_answers_in_the_same_shape_every_other_change_does ... ok
[INFO] [stdout] test mcp::tool::format::tests::the_description_says_what_it_will_not_touch ... ok
[INFO] [stdout] test mcp::tool::slide::tests::every_slide_tool_takes_a_deck_and_says_why_it_has_to_be_inside_a_root ... ok
[INFO] [stdout] test mcp::tool::slide::tests::a_slide_can_always_be_named_either_way ... ok
[INFO] [stdout] test mcp::tool::step::tests::playing_after_a_stop_is_documented_as_the_alternative_to_a_group ... ok
[INFO] [stdout] test git::tests::a_project_that_is_itself_the_repository_can_still_be_committed_whole ... ok
[INFO] [stdout] test mcp::tool::slide::tests::every_slide_tool_writes_and_says_so ... ok
[INFO] [stdout] test mcp::tool::step::tests::each_action_kind_says_what_it_is_for ... ok
[INFO] [stdout] test mcp::tool::check::tests::the_theme_argument_decides_which_colours_are_checked ... ok
[INFO] [stdout] test mcp::tool::slide::tests::the_body_and_the_heading_tools_say_which_one_a_rename_wants ... ok
[INFO] [stdout] test git::tests::a_file_is_readable_as_head_has_it_rather_than_as_disk_has_it ... ok
[INFO] [stdout] test mcp::tool::slide::tests::the_deck_arguments_are_spliced_in_rather_than_restated ... ok
[INFO] [stdout] test mcp::tool::step::tests::the_snapshot_rule_is_stated_where_a_step_is_written ... ok
[INFO] [stdout] test mcp::tool::step::tests::removing_a_step_warns_that_the_later_ones_move ... ok
[INFO] [stdout] test mcp::tool::step::tests::the_take_alternative_is_offered_beside_the_actions_it_is_mistaken_for ... ok
[INFO] [stdout] test git::tests::only_the_paths_named_are_committed_even_with_something_else_staged ... ok
[INFO] [stdout] test mcp::tool::step::tests::the_presets_offered_are_the_ones_slidx_has ... ok
[INFO] [stdout] test mcp::tool::tests::a_descriptor_carries_an_output_schema_only_for_a_revision_that_has_one ... ok
[INFO] [stdout] test mcp::tool::tests::a_mutating_tool_is_still_findable_on_a_read_only_server ... ok
[INFO] [stdout] test mcp::tool::tests::a_writing_server_lists_everything ... ok
[INFO] [stdout] test mcp::tool::tests::a_read_only_server_lists_nothing_that_writes ... ok
[INFO] [stdout] test mcp::tool::tests::every_operation_slidx_edit_defines_has_a_tool ... ok
[INFO] [stdout] test mcp::tool::tests::every_tool_says_what_slidx_knows_that_a_model_does_not ... ok
[INFO] [stdout] test mcp::tool::tests::every_tool_is_reachable_by_the_name_it_is_listed_under ... ok
[INFO] [stdout] test mcp::tool::undo::tests::undoing_nothing_says_it_does_not_reach_past_the_server_starting ... ok
[INFO] [stdout] test mcp::uri::tests::a_deck_uri_round_trips_through_its_own_parser ... ok
[INFO] [stdout] test mcp::tool::tests::every_schema_is_an_object_with_documented_properties ... ok
[INFO] [stdout] test mcp::tool::undo::tests::the_tool_takes_no_arguments_and_says_so ... ok
[INFO] [stdout] test mcp::tool::undo::tests::the_description_says_what_makes_this_possible_and_what_it_does_not_cover ... ok
[INFO] [stdout] test mcp::tool::tests::every_tool_is_declared_exactly_once ... ok
[INFO] [stdout] test mcp::tool::undo::tests::undo_is_a_write_so_a_read_only_server_does_not_offer_it ... ok
[INFO] [stdout] test mcp::tool::tests::no_tool_takes_raw_file_content ... ok
[INFO] [stdout] test mcp::workspace::tests::a_path_outside_every_root_is_refused_and_the_message_names_the_roots ... ok
[INFO] [stdout] test mcp::workspace::tests::a_decks_own_separator_is_honoured_when_the_caller_names_one ... ok
[INFO] [stdout] test mcp::uri::tests::a_uri_this_server_does_not_serve_is_none_rather_than_a_guess ... ok
[INFO] [stdout] test mcp::workspace::tests::a_deck_under_a_root_is_read ... ok
[INFO] [stdout] test mcp::workspace::tests::a_path_that_does_not_exist_says_what_a_deck_looks_like ... ok
[INFO] [stdout] test mcp::uri::tests::a_japanese_project_name_survives_the_round_trip ... ok
[INFO] [stdout] test mcp::workspace::tests::a_project_the_index_knows_about_is_readable_without_being_a_root ... ok
[INFO] [stdout] test mv::tests::a_name_with_a_path_in_it_moves_the_project_house ... ok
[INFO] [stdout] test mv::tests::a_project_slidx_has_never_seen_is_still_recorded_under_its_new_name ... ok
[INFO] [stdout] test mcp::workspace::tests::an_unresolvable_root_still_appears_in_the_refusal_it_causes ... ok
[INFO] [stdout] test mv::tests::a_query_is_matched_against_the_index_the_way_every_other_command_matches_one ... ok
[INFO] [stdout] test mcp::workspace::tests::the_project_directory_means_the_deck_inside_it ... ok
[INFO] [stdout] test mv::tests::a_bare_name_renames_the_project_where_it_already_is ... ok
[INFO] [stdout] test mv::tests::a_query_that_is_a_directory_is_taken_as_the_project_rather_than_searched_for ... ok
[INFO] [stdout] test mcp::tool::find::tests::the_description_says_when_to_reach_for_it ... ok
[INFO] [stdout] test mv::tests::a_destination_that_exists_is_refused_rather_than_merged ... ok
[INFO] [stdout] test mv::tests::a_renamed_project_keeps_when_the_talk_was_last_seen ... ok
[INFO] [stdout] test mv::tests::a_retitle_that_could_not_happen_is_said_out_loud_rather_than_swallowed ... ok
[INFO] [stdout] test mv::tests::one_name_is_not_enough_to_rename_with ... ok
[INFO] [stdout] test mv::tests::the_index_follows_the_project_rather_than_being_left_behind ... ok
[INFO] [stdout] test preview::opener::tests::a_file_that_does_exist_may_be ... ok
[INFO] [stdout] test preview::opener::tests::a_file_that_does_not_exist_may_not_be_opened ... ok
[INFO] [stdout] test preview::opener::tests::a_loopback_url_may_be_opened ... ok
[INFO] [stdout] test preview::opener::tests::a_platform_with_no_desktop_convention_has_no_opener_rather_than_a_guess ... ok
[INFO] [stdout] test preview::opener::tests::a_url_pointing_anywhere_else_may_not_be ... ok
[INFO] [stdout] test preview::opener::tests::each_desktop_platform_has_its_own_opener ... ok
[INFO] [stdout] test preview::opener::tests::free_desktops_have_fallbacks_for_a_machine_without_xdg_utils ... ok
[INFO] [stdout] test preview::opener::tests::opening_something_that_is_not_allowed_reports_failure_rather_than_running_anything ... ok
[INFO] [stdout] test preview::server::tests::a_current_directory_component_is_ordinary_rather_than_an_escape ... ok
[INFO] [stdout] test mv::tests::a_retitle_writes_the_frontmatter_through_the_edit_crate ... ok
[INFO] [stdout] test preview::server::tests::a_directory_resolves_to_the_index_the_build_wrote_into_it ... ok
[INFO] [stdout] test preview::server::tests::a_malformed_request_line_is_not_a_target ... ok
[INFO] [stdout] test preview::server::tests::a_missing_file_and_an_escape_attempt_are_answered_the_same_way ... ok
[INFO] [stdout] test preview::server::tests::a_file_is_served_by_its_own_path ... ok
[INFO] [stdout] test preview::server::tests::a_request_is_consumed_through_the_empty_line_after_its_headers ... ok
[INFO] [stdout] test preview::server::tests::a_request_line_yields_its_target ... ok
[INFO] [stdout] test preview::server::tests::a_query_string_is_not_part_of_the_file_name ... ok
[INFO] [stdout] test mv::tests::the_report_says_both_halves_of_the_rename_happened ... ok
[INFO] [stdout] test preview::server::tests::a_request_for_something_that_is_not_there_is_answered_rather_than_dropped ... ok
[INFO] [stdout] test preview::opener::tests::the_windows_opener_passes_an_empty_title_before_the_path ... ok
[INFO] [stdout] test preview::server::tests::an_unbounded_header_is_refused_before_a_response_is_written ... ok
[INFO] [stdout] test preview::server::tests::an_absolute_windows_style_target_does_not_escape_either ... ok
[INFO] [stdout] test preview::server::tests::anything_but_a_read_is_refused ... ok
[INFO] [stdout] test preview::server::tests::every_kind_of_file_a_deck_ships_has_a_content_type ... ok
[INFO] [stdout] test preview::server::tests::nothing_can_climb_out_of_the_directory_being_served ... ok
[INFO] [stdout] test preview::server::tests::something_with_no_extension_is_handed_over_as_bytes_rather_than_guessed_at ... ok
[INFO] [stdout] test preview::server::tests::the_listener_binds_loopback_and_nothing_else ... ok
[INFO] [stdout] test preview::server::tests::the_runtime_is_served_as_javascript_so_a_staged_deck_can_import_it ... ok
[INFO] [stdout] test preview::tests::a_deck_built_at_the_root_of_the_output_is_found_at_the_root ... ok
[INFO] [stdout] test preview::tests::a_build_with_no_pdf_is_still_a_build ... ok
[INFO] [stdout] test preview::server::tests::a_served_deck_answers_a_real_request_over_a_real_socket ... ok
[INFO] [stdout] test preview::server::tests::the_response_reaches_eof_before_the_server_drops_its_socket_handle ... ok
[INFO] [stdout] test preview::tests::a_deck_built_under_another_base_is_found_too ... ok
[INFO] [stdout] test preview::tests::a_directory_with_no_deck_in_it_is_not_a_build ... ok
[INFO] [stdout] test mcp::uri::tests::a_mangled_escape_reads_as_a_project_that_does_not_exist ... ok
[INFO] [stdout] test mcp::uri::tests::a_projects_path_separators_do_not_become_uri_segments ... ok
[INFO] [stdout] test preview::tests::a_port_that_is_not_a_number_says_so_rather_than_binding_something_else ... ok
[INFO] [stdout] test mcp::uri::tests::a_slide_uri_round_trips_through_its_own_parser ... ok
[INFO] [stdout] test mcp::uri::tests::the_index_is_its_own_uri ... ok
[INFO] [stdout] test mcp::uri::tests::a_windows_path_survives_the_round_trip ... ok
[INFO] [stdout] test preview::tests::a_deck_embedded_in_a_web_project_is_found_rather_than_the_site_around_it ... ok
[INFO] [stdout] test preview::tests::a_default_build_is_found_at_the_route_the_plugin_writes_it_to ... ok
[INFO] [stdout] test preview::tests::a_directory_that_is_not_a_deck_says_what_it_was_looking_for ... ok
[INFO] [stdout] test preview::tests::a_pdf_under_another_name_is_still_found ... ok
[INFO] [stdout] test preview::tests::a_single_stop_deck_with_no_runtime_is_still_previewable ... ok
[INFO] [stdout] test preview::tests::no_pdf_points_at_the_other_way_to_look_at_the_deck ... ok
[INFO] [stdout] test preview::tests::the_decks_own_pdf_is_preferred_when_the_output_holds_more_than_one ... ok
[INFO] [stdout] test preview::server::tests::a_percent_encoded_space_finds_the_file_it_names ... ok
[INFO] [stdout] test preview::tests::the_ready_line_says_the_url_the_directory_and_that_it_is_loopback_only ... ok
[INFO] [stdout] test preview::tests::the_url_points_at_loopback_and_at_the_decks_own_route ... ok
[INFO] [stdout] test project::tests::a_project_that_is_not_there_has_no_decks_rather_than_failing ... ok
[INFO] [stdout] test project::tests::a_project_with_no_slides_directory_keeps_its_deck_as_a_file_at_the_top ... ok
[INFO] [stdout] test project::tests::an_age_reads_as_a_person_would_say_it ... ok
[INFO] [stdout] test project::tests::a_deck_touched_in_the_future_reads_as_just_now_rather_than_underflowing ... ok
[INFO] [stdout] test project::tests::a_dot_directory_is_left_alone_because_a_tool_put_it_there ... ok
[INFO] [stdout] test project::tests::a_readme_beside_a_slides_directory_is_not_read_as_a_deck ... ok
[INFO] [stdout] test project::tests::a_deck_below_the_depth_limit_is_not_looked_for ... ok
[INFO] [stdout] test project::tests::nothing_inside_node_modules_is_ever_read_as_a_deck ... ok
[INFO] [stdout] test prompt::tests::a_question_asked_where_there_is_no_terminal_says_so_rather_than_waiting ... ok
[INFO] [stdout] test prompt::tests::no_terminal_is_not_a_no_but_its_own_answer ... ok
[INFO] [stdout] test project::tests::a_deck_nested_in_a_monorepo_is_found ... ok
[INFO] [stdout] test project::tests::the_newest_slide_file_is_when_the_deck_was_last_touched ... ok
[INFO] [stdout] test prompt::tests::only_a_plain_yes_is_a_yes ... ok
[INFO] [stdout] test project::tests::the_primary_deck_is_the_one_nearest_the_top_of_the_project ... ok
[INFO] [stdout] test project::tests::build_output_is_skipped_so_a_search_never_reports_a_generated_copy ... ok
[INFO] [stdout] test publish::deck::tests::a_deck_that_names_none_of_them_reports_nothing_rather_than_empty_lists ... ok
[INFO] [stdout] test publish::deck::tests::a_build_that_produced_nothing_offers_no_artifacts_rather_than_failing ... ok
[INFO] [stdout] test publish::deck::tests::one_tag_written_as_a_string_means_a_list_of_one ... ok
[INFO] [stdout] test publish::deck::tests::the_slides_carry_their_notes_because_the_write_up_is_made_of_them ... ok
[INFO] [stdout] test publish::deck::tests::a_pdf_named_on_the_command_line_and_not_on_disk_is_a_mistake_rather_than_an_absence ... ok
[INFO] [stdout] test publish::deck::tests::the_talks_own_fields_are_flattened_out_of_the_deck_model ... ok
[INFO] [stdout] test publish::hand_off::tests::a_post_is_handed_over_without_a_page_because_it_has_no_one_destination ... ok
[INFO] [stdout] test publish::report::tests::a_blocked_step_prints_one_line_to_act_on_per_reason ... ok
[INFO] [stdout] test publish::hand_off::tests::the_two_slide_hosts_are_handed_over_with_their_own_field_names ... ok
[INFO] [stdout] test publish::deck::tests::the_three_keys_only_publishing_reads_come_out_of_the_raw_frontmatter ... ok
[INFO] [stdout] test publish::hand_off::tests::a_destination_that_needs_an_account_is_handed_over_with_its_fields_named ... ok
[INFO] [stdout] test publish::hand_off::tests::a_field_the_deck_has_no_value_for_is_left_out_rather_than_printed_empty ... ok
[INFO] [stdout] test publish::hand_off::tests::a_page_slidx_writes_itself_is_not_handed_over ... ok
[INFO] [stdout] test publish::hand_off::tests::the_upload_pages_are_pages_rather_than_endpoints ... ok
[INFO] [stdout] test publish::report::tests::a_page_slidx_wrote_itself_has_no_payload_printed_under_it ... ok
[INFO] [stdout] test publish::report::tests::a_destination_slidx_will_not_finish_says_so_on_the_line_you_act_on ... ok
[INFO] [stdout] test publish::report::tests::a_plan_writes_nothing_and_says_nothing_was_written ... ok
[INFO] [stdout] test publish::report::tests::a_report_lines_up_the_same_coloured_and_plain ... ok
[INFO] [stdout] test publish::report::tests::a_written_page_says_where_it_went ... ok
[INFO] [stdout] test publish::report::tests::asking_for_no_destination_is_reported_rather_than_printed_as_an_empty_page ... ok
[INFO] [stdout] test publish::report::tests::nothing_the_report_prints_runs_past_the_fixed_width ... ok
[INFO] [stdout] test publish::report::tests::the_verdict_counts_one_destination_as_a_destination ... ok
[INFO] [stdout] test publish::tests::a_blocked_destination_exits_one_so_a_ci_job_can_fail_on_it ... ok
[INFO] [stdout] test publish::tests::a_plan_writes_nothing_at_all ... ok
[INFO] [stdout] test publish::report::tests::the_verdict_is_the_first_thing_under_the_title ... ok
[INFO] [stdout] test publish::tests::a_deck_that_is_not_there_exits_two_rather_than_reporting_a_clean_publish ... ok
[INFO] [stdout] test publish::tests::a_subset_is_planned_in_the_plans_order_however_it_was_asked_for ... ok
[INFO] [stdout] test publish::tests::the_pages_that_need_no_account_are_written_to_disk ... ok
[INFO] [stdout] test publish::tests::the_report_carries_no_escape_sequences_when_colour_is_off ... ok
[INFO] [stdout] test publish::write::tests::a_destination_that_needs_an_account_is_not_something_this_module_answers ... ok
[INFO] [stdout] test publish::write::tests::a_directory_that_cannot_be_written_says_so_in_a_sentence_a_person_can_act_on ... ok
[INFO] [stdout] test publish::report::tests::the_payload_is_printed_as_fields_a_person_pastes_rather_than_as_a_blob ... ok
[INFO] [stdout] test publish::tests::the_plan_as_json_is_the_same_bytes_for_the_same_deck ... ok
[INFO] [stdout] test publish::write::tests::a_file_in_the_archive_that_is_not_a_record_is_left_out_of_the_index ... ok
[INFO] [stdout] test publish::tests::a_destination_nobody_has_is_a_misuse_rather_than_an_empty_plan ... ok
[INFO] [stdout] test publish::write::tests::a_talk_recorded_last_spring_stays_in_the_index_when_another_is_added ... ok
[INFO] [stdout] test publish::write::tests::the_index_is_written_beside_the_record_rather_than_a_run_later ... ok
[INFO] [stdout] test report::tests::a_command_offered_for_copying_is_quoted_where_a_shell_would_need_it ... ok
[INFO] [stdout] test report::tests::a_block_without_a_remedy_prints_no_marker_line ... ok
[INFO] [stdout] test publish::write::tests::running_twice_writes_the_same_files_rather_than_more_of_them ... ok
[INFO] [stdout] test report::tests::a_line_keeps_its_subject_in_a_column_so_a_list_of_them_reads_down ... ok
[INFO] [stdout] test report::tests::a_report_carries_no_escape_sequences_when_colour_is_off ... ok
[INFO] [stdout] test report::tests::colour_changes_no_line_count_and_no_column ... ok
[INFO] [stdout] test report::tests::nothing_a_block_prints_runs_past_the_fixed_width ... ok
[INFO] [stdout] test publish::tests::the_recording_added_months_later_changes_the_record_and_nothing_else ... ok
[INFO] [stdout] test report::tests::the_marker_is_ascii_so_no_console_can_turn_it_into_a_box ... ok
[INFO] [stdout] test publish::tests::a_destination_that_needs_an_account_is_handed_over_rather_than_performed ... ok
[INFO] [stdout] test report::tests::a_line_whose_detail_is_long_wraps_under_its_own_column ... ok
[INFO] [stdout] test report::tests::a_remedy_that_wraps_hangs_clear_of_the_marker_column ... ok
[INFO] [stdout] test rm::archive::tests::a_copy_that_fails_leaves_the_original_where_it_was ... ok
[INFO] [stdout] test rm::archive::tests::a_timestamp_reads_as_a_date_somebody_can_recognise ... ok
[INFO] [stdout] test rm::archive::tests::a_search_matches_the_directory_name_the_title_and_the_event ... ok
[INFO] [stdout] test rm::archive::tests::an_archive_that_has_never_been_written_to_is_empty_rather_than_an_error ... ok
[INFO] [stdout] test rm::archive::tests::an_entry_is_named_by_the_deck_rather_than_by_the_directory_where_it_can_be ... ok
[INFO] [stdout] test rm::archive::tests::an_archived_project_with_uncommitted_work_says_so_in_its_manifest ... ok
[INFO] [stdout] test rm::archive::tests::a_restored_project_is_where_it_was_with_everything_in_it ... ok
[INFO] [stdout] test rm::archive::tests::a_directory_in_the_archive_with_no_manifest_is_ignored_rather_than_fatal ... ok
[INFO] [stdout] test publish::write::tests::the_pages_that_need_no_account_are_written_rather_than_described ... ok
[INFO] [stdout] test report::tests::a_block_leads_with_the_status_and_then_what_it_is_about ... ok
[INFO] [stdout] test rm::archive::tests::restoring_onto_something_that_is_there_again_is_refused ... ok
[INFO] [stdout] test rm::archive::tests::the_time_in_a_name_sorts_the_archive_oldest_first ... ok
[INFO] [stdout] test rm::archive::tests::the_manifest_records_where_the_project_came_from ... ok
[INFO] [stdout] test rm::tests::a_bare_command_says_all_three_things_it_can_do ... ok
[INFO] [stdout] test rm::archive::tests::a_project_restored_into_a_parent_that_is_gone_gets_its_parent_back ... ok
[INFO] [stdout] test rm::archive::tests::archiving_moves_the_project_rather_than_unlinking_it ... ok
[INFO] [stdout] test rm::archive::tests::the_manifest_sits_beside_the_project_rather_than_inside_it ... ok
[INFO] [stdout] test rm::tests::a_query_that_is_a_directory_is_taken_as_the_project_rather_than_searched_for ... ok
[INFO] [stdout] test rm::archive::tests::two_projects_archived_in_the_same_second_do_not_land_on_each_other ... ok
[INFO] [stdout] test rm::tests::an_empty_archive_says_what_puts_something_in_it ... ok
[INFO] [stdout] test rm::tests::a_delete_with_no_terminal_to_confirm_on_deletes_nothing ... ok
[INFO] [stdout] test rm::tests::a_listing_marks_an_archived_project_that_holds_work_in_no_commit ... ok
[INFO] [stdout] test rm::tests::nothing_matching_is_a_misuse_rather_than_a_removal_of_the_nearest_thing ... ok
[INFO] [stdout] test rm::tests::a_listing_shows_where_each_project_came_from_and_when ... ok
[INFO] [stdout] test rm::tests::an_archived_project_leaves_the_index_in_the_same_breath ... ok
[INFO] [stdout] test rm::tests::restoring_something_the_archive_does_not_have_says_what_it_does_have ... ok
[INFO] [stdout] test rm::tests::the_warning_about_uncommitted_work_says_how_much_and_offers_the_archive ... ok
[INFO] [stdout] test rm::tests::restoring_puts_the_project_back_where_it_came_from_and_into_the_index ... ok
[INFO] [stdout] test preview::tests::the_ready_line_carries_no_escape_sequences_when_colour_is_off ... ok
[INFO] [stdout] test preview::tests::nothing_built_names_the_command_that_would_build_it ... ok
[INFO] [stdout] test publish::tests::waiting_on_a_person_is_not_a_failure ... ok
[INFO] [stdout] test rm::archive::tests::everything_under_the_project_comes_with_it_including_the_assets ... ok
[INFO] [stdout] test save::tests::a_message_given_on_the_command_line_keeps_its_own_line_ending ... ok
[INFO] [stdout] test doctor::tests::json_prints_the_findings_as_a_list_rather_than_the_rendered_report ... ok
[INFO] [stdout] test save::tests::a_machine_with_no_git_says_so_without_pretending_the_deck_is_at_risk ... ok
[INFO] [stdout] test rm::archive::tests::the_archive_lists_what_is_in_it_oldest_first ... ok
[INFO] [stdout] test rm::tests::the_report_says_the_command_that_undoes_it ... ok
[INFO] [stdout] test rm::tests::the_deck_is_described_in_the_manifest_so_a_year_later_it_is_recognisable ... ok
[INFO] [stdout] test save::tests::no_repository_and_nobody_to_ask_prints_the_two_commands_rather_than_making_one ... ok
[INFO] [stdout] test project::tests::a_project_laid_out_the_conventional_way_has_one_deck_in_its_slides_directory ... ok
[INFO] [stdout] test rm::tests::removing_a_project_archives_it_and_leaves_nothing_unlinked ... ok
[INFO] [stdout] test save::tests::the_report_quotes_the_message_that_was_written ... ok
[INFO] [stdout] test self_update::tests::a_release_reports_one_strict_safe_version_line ... ok
[INFO] [stdout] test self_update::tests::only_a_managed_or_shell_installed_binary_can_take_itself_over ... ok
[INFO] [stdout] test self_update::tests::promoting_a_verified_stage_installs_selects_and_records_it ... ok
[INFO] [stdout] test self_update::tests::semantic_versions_compare_as_numbers_and_releases_follow_prereleases ... ok
[INFO] [stdout] test save::tests::a_dry_run_prints_the_message_and_writes_nothing ... ok
[INFO] [stdout] test sha256::tests::a_digest_is_sixty_four_lowercase_hex_characters ... ok
[INFO] [stdout] test sha256::tests::a_fresh_hasher_and_a_default_one_are_the_same_thing ... ok
[INFO] [stdout] test sha256::tests::a_message_that_lands_exactly_on_a_block_boundary_is_padded_into_a_new_block ... ok
[INFO] [stdout] test sha256::tests::a_million_a_characters_hash_to_the_published_digest ... ok
[INFO] [stdout] test sha256::tests::a_single_changed_bit_changes_the_digest_completely ... ok
[INFO] [stdout] test doctor::tests::reading_this_machine_produces_a_report_of_every_check ... ok
[INFO] [stdout] test sha256::tests::the_published_test_vectors_hash_to_their_published_digests ... ok
[INFO] [stdout] test shell::integration::tests::each_script_says_which_shells_it_is_for_and_that_it_is_generated ... ok
[INFO] [stdout] test shell::integration::tests::every_expansion_in_the_posix_script_is_quoted ... ok
[INFO] [stdout] test shell::integration::tests::every_script_follows_exactly_the_commands_the_table_marks ... ok
[INFO] [stdout] test shell::integration::tests::nothing_else_in_the_table_is_captured ... ok
[INFO] [stdout] test shell::integration::tests::nothing_is_followed_unless_it_is_a_directory_that_exists ... ok
[INFO] [stdout] test shell::integration::tests::the_directory_is_printed_as_well_as_followed ... ok
[INFO] [stdout] test shell::integration::tests::the_exit_code_survives_the_function ... ok
[INFO] [stdout] test save::tests::a_repository_with_no_commits_yet_is_the_decks_first_save ... ok
[INFO] [stdout] test shell::integration::tests::the_posix_script_uses_nothing_a_posix_shell_does_not_have ... ok
[INFO] [stdout] test shell::integration::tests::the_variable_is_set_for_the_captured_command_only ... ok
[INFO] [stdout] test shell::integration::tests::the_variable_the_wrapper_sets_is_the_one_the_binary_reads ... ok
[INFO] [stdout] test shell::integration::tests::the_wrapper_calls_the_binary_rather_than_itself ... ok
[INFO] [stdout] test shell::integration::tests::the_posix_script_is_balanced ... ok
[INFO] [stdout] test shell::tests::a_shell_is_found_by_the_name_its_executable_actually_has ... ok
[INFO] [stdout] test shell::tests::a_shell_nobody_has_heard_of_is_told_which_ones_slidx_knows ... ok
[INFO] [stdout] test shell::tests::a_shell_with_a_completion_script_says_where_the_script_goes ... ok
[INFO] [stdout] test shell::tests::a_shell_with_no_completions_explains_itself_in_a_sentence ... ok
[INFO] [stdout] test shell::tests::asking_for_one_shells_integration_writes_it_to_standard_output ... ok
[INFO] [stdout] test shell::tests::every_shell_gets_an_integration_even_where_completions_are_impossible ... ok
[INFO] [stdout] test shell::tests::every_shell_is_named_once_across_its_name_and_its_aliases ... ok
[INFO] [stdout] test shell::tests::every_shell_says_where_its_integration_line_goes ... ok
[INFO] [stdout] test shell::tests::no_shell_at_all_lists_them_with_the_file_the_line_goes_in ... ok
[INFO] [stdout] test shell::tests::nothing_written_for_a_shell_is_ever_coloured ... ok
[INFO] [stdout] test shell::tests::shells_in_one_family_are_handed_the_same_script ... ok
[INFO] [stdout] test style::tests::a_coloured_style_wraps_the_text_and_closes_the_sequence ... ok
[INFO] [stdout] test style::tests::a_japanese_subject_is_padded_to_the_cells_it_will_occupy ... ok
[INFO] [stdout] test style::tests::a_padded_column_is_the_same_width_coloured_and_plain ... ok
[INFO] [stdout] test style::tests::a_pipe_gets_plain_text_even_with_a_capable_terminal_behind_it ... ok
[INFO] [stdout] test style::tests::a_plain_style_emits_the_text_and_nothing_around_it ... ok
[INFO] [stdout] test style::tests::a_terminal_that_says_it_is_dumb_is_believed ... ok
[INFO] [stdout] test style::tests::a_terminal_with_no_term_variable_still_gets_colour ... ok
[INFO] [stdout] test style::tests::a_text_that_already_fits_comes_back_as_one_line ... ok
[INFO] [stdout] test style::tests::a_word_longer_than_the_column_is_left_whole_and_overhangs ... ok
[INFO] [stdout] test style::tests::an_empty_no_color_is_not_a_request_for_plain_text ... ok
[INFO] [stdout] test style::tests::every_colour_is_one_an_eight_colour_terminal_has ... ok
[INFO] [stdout] test style::tests::every_ink_has_its_own_sequence_so_two_statuses_never_look_alike ... ok
[INFO] [stdout] test style::tests::no_color_turns_colour_off_on_a_real_terminal ... ok
[INFO] [stdout] test style::tests::text_longer_than_its_column_is_never_truncated ... ok
[INFO] [stdout] test style::tests::wrapping_a_japanese_sentence_breaks_where_the_terminal_draws_the_edge ... ok
[INFO] [stdout] test style::tests::wrapping_breaks_on_spaces_and_never_mid_word ... ok
[INFO] [stdout] test style::tests::wrapping_nothing_produces_no_lines_rather_than_one_empty_one ... ok
[INFO] [stdout] test style::width::tests::a_clipped_string_never_measures_wider_than_the_column_it_was_given ... ok
[INFO] [stdout] test style::width::tests::a_half_width_katakana_stays_one_column_because_that_is_the_point_of_it ... ok
[INFO] [stdout] test style::width::tests::a_japanese_title_is_two_columns_per_character ... ok
[INFO] [stdout] test style::width::tests::a_mixed_title_adds_up_to_what_the_terminal_will_draw ... ok
[INFO] [stdout] test style::width::tests::a_painted_japanese_string_measures_the_same_as_an_unpainted_one ... ok
[INFO] [stdout] test style::width::tests::an_escape_sequence_occupies_no_columns_at_all ... ok
[INFO] [stdout] test style::width::tests::ascii_is_one_column_per_character ... ok
[INFO] [stdout] test style::width::tests::clipping_never_splits_a_character ... ok
[INFO] [stdout] test style::width::tests::clipping_something_that_already_fits_returns_all_of_it ... ok
[INFO] [stdout] test style::width::tests::full_width_punctuation_is_wide_and_its_ascii_twin_is_not ... ok
[INFO] [stdout] test terminal::tests::a_bare_escape_with_nothing_behind_it_is_escape ... ok
[INFO] [stdout] test terminal::tests::a_mouse_button_nothing_is_bound_to_is_ignored_rather_than_guessed_at ... ok
[INFO] [stdout] test terminal::tests::a_printable_character_comes_through_and_a_stray_control_code_does_not ... ok
[INFO] [stdout] test terminal::tests::a_shell_function_holding_the_output_is_not_a_pipe_with_nobody_behind_it ... ok
[INFO] [stdout] test terminal::tests::a_pipe_means_nobody_is_there_to_press_a_key ... ok
[INFO] [stdout] test terminal::tests::a_terminal_that_goes_away_reports_an_interrupt_rather_than_spinning ... ok
[INFO] [stdout] test terminal::tests::a_wheel_notch_is_decoded_from_an_sgr_mouse_report ... ok
[INFO] [stdout] test terminal::tests::a_wheel_report_from_a_wide_window_is_still_one_keypress ... ok
[INFO] [stdout] test terminal::tests::an_empty_variable_is_not_a_shell_function_holding_anything ... ok
[INFO] [stdout] test terminal::tests::an_unrecognised_sequence_is_escape_rather_than_a_guess ... ok
[INFO] [stdout] test sha256::tests::feeding_the_same_bytes_in_different_sized_pieces_gives_the_same_digest ... ok
[INFO] [stdout] test terminal::tests::an_application_cursor_terminal_sends_the_same_keys_a_different_way ... ok
[INFO] [stdout] test terminal::tests::ctrl_c_arrives_as_a_key_rather_than_as_a_signal ... ok
[INFO] [stdout] test terminal::tests::enter_space_and_backspace_are_decoded_in_every_spelling ... ok
[INFO] [stdout] test terminal::tests::page_up_and_down_are_decoded_with_their_trailing_tilde_consumed ... ok
[INFO] [stdout] test terminal::tests::home_and_end_are_decoded_in_both_spellings_terminals_use ... ok
[INFO] [stdout] test terminal::tests::the_home_row_pair_moves_the_same_way_the_arrows_do ... ok
[INFO] [stdout] test tests::asking_for_a_build_prints_the_plugin_and_exits_two ... ok
[INFO] [stdout] test tests::a_misuse_goes_to_stderr_and_exits_two_rather_than_one ... ok
[INFO] [stdout] test terminal::tests::the_arrow_keys_a_presentation_remote_sends_are_decoded ... ok
[INFO] [stdout] test tests::help_goes_to_stdout_and_exits_zero_because_it_was_asked_for ... ok
[INFO] [stdout] test tests::the_version_is_printed_on_its_own_line_with_nothing_else ... ok
[INFO] [stdout] test theme::tests::a_document_that_is_not_a_theme_says_so_rather_than_reporting_on_nothing ... ok
[INFO] [stdout] test theme::tests::a_path_that_is_not_there_is_a_misuse_rather_than_a_finding ... ok
[INFO] [stdout] test theme::tests::a_theme_that_is_illegible_in_a_bright_room_exits_non_zero ... ok
[INFO] [stdout] test save::tests::a_deck_that_has_not_changed_makes_no_commit_and_says_so ... ok
[INFO] [stdout] test save::tests::everything_in_the_project_goes_in_when_that_is_what_was_asked_for ... ok
[INFO] [stdout] test save::tests::nothing_is_appended_to_the_message_that_reaches_the_repository ... ok
[INFO] [stdout] test save::tests::a_first_save_commits_the_deck_and_says_what_it_is ... ok
[INFO] [stdout] test theme::tests::every_row_of_the_list_lines_up_under_the_one_above_it ... ok
[INFO] [stdout] test save::tests::only_the_deck_is_committed_and_a_half_staged_afternoon_is_left_alone ... ok
[INFO] [stdout] test tui::canvas::tests::a_shorter_frame_clears_what_the_taller_one_left_below_it ... ok
[INFO] [stdout] test tui::canvas::tests::a_frame_is_one_write_because_two_can_be_seen_between ... ok
[INFO] [stdout] test tui::canvas::tests::everything_turned_on_is_turned_off_again ... ok
[INFO] [stdout] test tui::canvas::tests::the_way_out_undoes_the_way_in_in_the_opposite_order ... ok
[INFO] [stdout] test tui::code::tests::a_language_the_highlighter_has_no_scanner_for_is_left_plain ... ok
[INFO] [stdout] test tui::canvas::tests::every_line_returns_the_carriage_as_well_as_advancing ... ok
[INFO] [stdout] test tui::code::tests::a_terminal_without_truecolour_gets_the_nearest_colour_it_has ... ok
[INFO] [stdout] test tui::code::tests::a_theme_palette_reaches_the_line_through_the_public_entry_point ... ok
[INFO] [stdout] test tui::code::tests::a_theme_that_recolours_strings_recolours_them_here ... ok
[INFO] [stdout] test tui::code::tests::code_is_drawn_plainly_when_colour_is_off ... ok
[INFO] [stdout] test tui::code::tests::a_truecolour_terminal_gets_the_exact_colour_the_theme_chose ... ok
[INFO] [stdout] test tui::code::tests::every_character_of_the_source_survives_being_painted ... ok
[INFO] [stdout] test tui::canvas::tests::a_frame_is_drawn_over_the_last_one_rather_than_after_clearing_it ... ok
[INFO] [stdout] test tui::code::tests::every_language_the_highlighter_knows_is_recognised_by_its_own_name ... ok
[INFO] [stdout] test tui::code::tests::the_colour_cube_rounds_rather_than_truncating ... ok
[INFO] [stdout] test tui::code::tests::the_scanner_decides_what_a_keyword_is_and_this_only_decides_the_colour ... ok
[INFO] [stdout] test tui::outline::tests::a_blockquote_keeps_its_text_and_loses_its_marker ... ok
[INFO] [stdout] test tui::outline::tests::a_fenced_block_is_code_until_it_closes ... ok
[INFO] [stdout] test tui::outline::tests::a_fence_with_no_language_is_still_a_block ... ok
[INFO] [stdout] test tui::outline::tests::a_heading_carries_its_level_and_loses_its_hashes ... ok
[INFO] [stdout] test tui::outline::tests::a_hidden_line_keeps_its_text_so_the_slide_does_not_reflow ... ok
[INFO] [stdout] test tui::outline::tests::a_mark_a_step_has_not_revealed_yet_is_flagged_hidden ... ok
[INFO] [stdout] test tui::outline::tests::a_nested_bullet_carries_its_depth ... ok
[INFO] [stdout] test tui::outline::tests::a_numbered_list_is_told_apart_from_a_sentence_beginning_with_a_number ... ok
[INFO] [stdout] test tui::outline::tests::a_slide_with_no_marks_hides_nothing_however_many_stops_it_has ... ok
[INFO] [stdout] test tui::outline::tests::a_slide_with_nothing_on_it_produces_no_lines_rather_than_a_blank_one ... ok
[INFO] [stdout] test tui::outline::tests::a_tilde_fence_works_the_same_as_a_backtick_one ... ok
[INFO] [stdout] test tui::outline::tests::blank_lines_at_the_edges_are_dropped_and_the_ones_between_are_kept ... ok
[INFO] [stdout] test tui::outline::tests::every_bullet_marker_markdown_allows_is_a_bullet ... ok
[INFO] [stdout] test tui::outline::tests::every_line_of_a_block_carries_the_language_the_fence_declared ... ok
[INFO] [stdout] test tui::outline::tests::markdown_inside_a_code_block_is_not_read_as_markdown ... ok
[INFO] [stdout] test tui::outline::tests::something_that_only_looks_like_a_heading_is_not_one ... ok
[INFO] [stdout] test tui::screen::tests::a_box_too_tall_for_the_window_gives_up_width_rather_than_shape ... ok
[INFO] [stdout] test tui::screen::tests::a_bullet_is_drawn_with_a_marker_and_its_nesting ... ok
[INFO] [stdout] test tui::screen::tests::a_four_by_three_deck_gets_a_taller_box_than_a_widescreen_one ... ok
[INFO] [stdout] test tui::screen::tests::a_heading_is_drawn_without_its_hashes ... ok
[INFO] [stdout] test tui::screen::tests::a_line_wider_than_the_box_does_not_widen_it ... ok
[INFO] [stdout] test tui::screen::tests::a_mark_a_step_has_not_revealed_is_drawn_as_a_placeholder_of_its_width ... ok
[INFO] [stdout] test tui::screen::tests::a_short_slide_is_padded_so_the_box_keeps_its_shape ... ok
[INFO] [stdout] test tui::screen::tests::a_sixteen_by_nine_box_is_wide_rather_than_nearly_square ... ok
[INFO] [stdout] test tui::screen::tests::a_slide_index_past_the_end_draws_nothing_rather_than_panicking ... ok
[INFO] [stdout] test tui::screen::tests::a_very_narrow_terminal_still_gets_a_box ... ok
[INFO] [stdout] test tui::screen::tests::a_window_too_small_for_a_slide_says_so_rather_than_drawing_a_broken_box ... ok
[INFO] [stdout] test tui::code::tests::the_names_people_actually_write_on_a_fence_are_recognised ... ok
[INFO] [stdout] test tui::screen::tests::content_that_does_not_fit_is_reported_rather_than_silently_cut ... ok
[INFO] [stdout] test tui::outline::tests::a_stop_past_the_end_shows_the_last_one_rather_than_panicking ... ok
[INFO] [stdout] test tui::screen::tests::every_frame_says_it_shows_structure_and_flow_and_never_appearance ... ok
[INFO] [stdout] test tui::screen::tests::the_box_is_the_same_width_on_every_row_coloured_or_not ... ok
[INFO] [stdout] test tui::tests::a_key_with_nothing_behind_it_is_inert_rather_than_an_error ... ok
[INFO] [stdout] test tui::screen::tests::the_status_line_says_where_in_the_deck_and_where_in_the_slide ... ok
[INFO] [stdout] test tui::tests::a_piped_frame_keeps_the_fixed_width_every_other_report_has ... ok
[INFO] [stdout] test tui::tests::a_slide_is_named_on_the_command_line_the_way_people_count_them ... ok
[INFO] [stdout] test tui::tests::a_slide_number_past_the_end_opens_on_the_last_one ... ok
[INFO] [stdout] test tui::tests::a_slide_number_that_is_not_a_number_opens_at_the_beginning ... ok
[INFO] [stdout] test tui::tests::a_stop_can_be_named_too_so_a_pipe_can_reach_one_that_is_not_the_first ... ok
[INFO] [stdout] test tui::tests::a_stop_past_the_end_of_a_slide_opens_on_its_last_one ... ok
[INFO] [stdout] test tests::json_output_is_machine_clean_however_the_terminal_is_set ... ok
[INFO] [stdout] test tui::tests::nothing_the_help_draws_needs_a_font_the_terminal_might_not_have ... ok
[INFO] [stdout] test tui::tests::one_press_moves_through_a_slides_stops_before_leaving_it ... ok
[INFO] [stdout] test tui::tests::the_box_follows_the_window_it_is_drawn_in ... ok
[INFO] [stdout] test tui::tests::every_key_the_help_lists_does_what_it_says ... ok
[INFO] [stdout] test tui::tests::the_ends_of_the_deck_stop_rather_than_wrapping ... ok
[INFO] [stdout] test tui::tests::the_ends_of_the_deck_stop_the_slide_keys_too ... ok
[INFO] [stdout] test tui::tests::the_help_lists_the_keys_the_deck_itself_uses ... ok
[INFO] [stdout] test tui::screen::tests::the_message_for_a_small_window_fits_in_a_small_window ... ok
[INFO] [stdout] test tui::tests::the_help_says_how_to_leave_it ... ok
[INFO] [stdout] test tui::tests::the_help_lists_every_binding_the_keymap_has ... ok
[INFO] [stdout] test tui::tests::the_help_says_what_this_view_cannot_tell_you ... ok
[INFO] [stdout] test tui::tests::the_next_slide_key_skips_the_stops_this_one_has_left ... ok
[INFO] [stdout] test tui::tests::the_wheel_steps_the_deck_because_that_is_what_a_hand_reaches_for ... ok
[INFO] [stdout] test version::current::tests::a_report_lines_up_the_same_coloured_and_plain ... ok
[INFO] [stdout] test version::current::tests::it_names_the_file_that_is_actually_running ... ok
[INFO] [stdout] test version::current::tests::it_reports_a_managed_bin_directory_that_is_not_on_the_path ... ok
[INFO] [stdout] test version::current::tests::it_reports_a_pin_asking_for_a_version_nobody_installed ... ok
[INFO] [stdout] test theme::tests::the_theme_this_repository_publishes_passes_in_every_room ... ok
[INFO] [stdout] test tui::tests::going_back_lands_on_the_last_stop_of_the_previous_slide ... ok
[INFO] [stdout] test version::current::tests::it_says_plainly_when_the_version_manager_is_not_in_charge ... ok
[INFO] [stdout] test version::current::tests::it_names_the_file_a_pin_came_from ... ok
[INFO] [stdout] test version::current::tests::it_says_so_when_the_version_manager_is_in_charge ... ok
[INFO] [stdout] test theme::tests::the_list_says_a_package_can_add_to_it ... ok
[INFO] [stdout] test version::current::tests::it_says_what_asks_for_a_version_when_nothing_does ... ok
[INFO] [stdout] test version::current::tests::the_json_report_carries_whether_the_manager_is_in_charge ... ok
[INFO] [stdout] test version::current::tests::it_says_which_channel_installed_what_is_running ... ok
[INFO] [stdout] test version::current::tests::it_reports_another_slidx_that_comes_first_on_the_path ... ok
[INFO] [stdout] test version::current::tests::the_json_report_names_a_shadowing_binary_when_there_is_one ... ok
[INFO] [stdout] test version::current::tests::the_json_report_omits_a_shadow_that_is_not_there_rather_than_saying_null ... ok
[INFO] [stdout] test version::download::tests::a_binary_mode_star_before_the_name_is_not_part_of_the_name ... ok
[INFO] [stdout] test version::download::tests::a_published_digest_is_found_by_asset_name ... ok
[INFO] [stdout] test theme::tests::with_no_path_it_names_every_theme_slidx_ships ... ok
[INFO] [stdout] test save::tests::an_authors_own_message_is_used_exactly_as_given ... ok
[INFO] [stdout] test version::current::tests::no_line_of_a_report_runs_past_the_fixed_width ... ok
[INFO] [stdout] test version::download::tests::a_release_url_is_built_from_the_version_alone ... ok
[INFO] [stdout] test version::download::tests::an_archive_matching_its_published_digest_verifies ... ok
[INFO] [stdout] test version::download::tests::an_archive_that_does_not_match_is_refused_and_says_both_digests ... ok
[INFO] [stdout] test version::download::tests::a_digest_published_in_uppercase_still_matches ... ok
[INFO] [stdout] test version::download::tests::an_asset_the_checksum_file_does_not_mention_is_a_failure_not_a_pass ... ok
[INFO] [stdout] test version::download::tests::the_latest_release_needs_no_api_endpoint ... ok
[INFO] [stdout] test version::download::tests::the_target_is_the_one_this_binary_was_built_for_not_the_machines_preference ... ok
[INFO] [stdout] test version::download::tests::an_empty_checksum_file_verifies_nothing_rather_than_everything ... ok
[INFO] [stdout] test version::download::tests::every_problem_says_something_somebody_could_act_on ... ok
[INFO] [stdout] test version::download::tests::the_asset_is_named_after_the_target_triple ... ok
[INFO] [stdout] test version::pin::tests::a_leading_v_is_accepted_because_that_is_how_tags_are_written ... ok
[INFO] [stdout] test version::pin::tests::a_pin_can_say_why_it_is_there ... ok
[INFO] [stdout] test version::pin::tests::a_pin_and_a_default_are_written_and_read_in_the_same_format ... ok
[INFO] [stdout] test version::pin::tests::a_project_pin_outranks_the_machine_default ... ok
[INFO] [stdout] test version::pin::tests::a_pin_reports_the_file_it_came_from ... ok
[INFO] [stdout] test version::pin::tests::a_pin_that_is_only_comments_is_not_an_answer_and_the_walk_continues ... ok
[INFO] [stdout] test version::pin::tests::an_unreadable_pin_file_is_not_a_pin ... ok
[INFO] [stdout] test version::pin::tests::a_pin_at_the_root_of_a_project_is_found_from_anywhere_inside_it ... ok
[INFO] [stdout] test version::pin::tests::nothing_anywhere_is_unpinned_rather_than_an_error ... ok
[INFO] [stdout] test version::pin::tests::the_machine_default_answers_when_no_project_pins_anything ... ok
[INFO] [stdout] test version::pin::tests::surrounding_whitespace_is_not_part_of_the_version ... ok
[INFO] [stdout] test version::pin::tests::the_nearest_pin_wins_over_one_further_up ... ok
[INFO] [stdout] test version::provenance::tests::a_binary_inside_node_modules_belongs_to_npm ... ok
[INFO] [stdout] test version::provenance::tests::a_binary_under_the_versions_directory_is_managed_and_names_its_version ... ok
[INFO] [stdout] test version::provenance::tests::a_binary_that_cannot_be_located_at_all_is_elsewhere_rather_than_a_panic ... ok
[INFO] [stdout] test version::provenance::tests::a_real_file_in_the_bin_directory_is_the_shell_installer_and_not_managed ... ok
[INFO] [stdout] test version::provenance::tests::a_package_managers_own_prefix_is_named_rather_than_guessed_at ... ok
[INFO] [stdout] test version::provenance::tests::a_windows_path_is_split_on_semicolons_and_looks_for_the_executable_extensions ... ok
[INFO] [stdout] test version::pin::tests::writing_a_pin_creates_the_directory_on_a_fresh_machine ... ok
[INFO] [stdout] test version::provenance::tests::an_empty_entry_on_the_path_is_skipped_rather_than_read_as_the_root ... ok
[INFO] [stdout] test version::provenance::tests::a_binary_in_cargos_bin_directory_was_built_from_source ... ok
[INFO] [stdout] test version::provenance::tests::an_npm_slidx_earlier_on_the_path_is_reported_as_shadowing_the_managed_one ... ok
[INFO] [stdout] test version::provenance::tests::every_slidx_on_a_unix_path_is_found_in_the_order_a_shell_would_try_them ... ok
[INFO] [stdout] test version::provenance::tests::nothing_is_shadowed_when_the_managed_binary_comes_first ... ok
[INFO] [stdout] test version::download::tests::a_zip_round_trips_too_because_that_is_what_windows_is_published_as ... ok
[INFO] [stdout] test version::provenance::tests::one_slidx_on_the_path_is_never_reported_as_shadowed_however_it_was_installed ... ok
[INFO] [stdout] test version::download::tests::a_real_archive_round_trips_through_unpacking ... ok
[INFO] [stdout] test version::provenance::tests::an_unmanaged_channel_says_plainly_that_the_version_manager_is_not_in_charge ... ok
[INFO] [stdout] test version::provenance::tests::anywhere_else_is_reported_as_elsewhere_rather_than_assumed_managed ... ok
[INFO] [stdout] test version::provenance::tests::every_channel_says_what_to_do_to_change_versions ... ok
[INFO] [stdout] test version::provenance::tests::whether_the_managed_bin_directory_is_on_the_path_at_all_is_reported ... ok
[INFO] [stdout] test tests::every_command_in_the_table_is_wired_to_something_that_runs_it ... ok
[INFO] [stdout] test version::store::tests::nothing_installed_lists_nothing_rather_than_failing ... ok
[INFO] [stdout] test version::store::tests::installed_versions_are_listed_newest_first ... ok
[INFO] [stdout] test version::store::tests::a_pre_release_sorts_below_the_release_it_precedes ... ok
[INFO] [stdout] test version::store::tests::a_directory_with_no_binary_in_it_is_not_an_installed_version ... ok
[INFO] [stdout] test version::store::tests::removing_a_version_takes_the_whole_directory ... ok
[INFO] [stdout] test version::store::tests::a_directory_nobody_could_parse_sorts_last_rather_than_becoming_the_newest ... ok
[INFO] [stdout] test save::tests::a_slide_added_since_the_last_save_goes_in_without_anything_listing_it ... ok
[INFO] [stdout] test version::store::tests::selecting_replaces_a_real_binary_the_shell_installer_left_behind ... ok
[INFO] [stdout] test version::store::tests::selecting_a_version_puts_a_working_slidx_where_the_shell_will_find_it ... ok
[INFO] [stdout] test version::store::tests::selecting_again_replaces_the_previous_choice ... ok
[INFO] [stdout] test version::tests::install_and_use_without_a_version_say_what_they_wanted ... ok
[INFO] [stdout] test version::store::tests::selecting_something_that_is_not_installed_fails_rather_than_leaving_a_dead_link ... ok
[INFO] [stdout] test version::store::tests::ten_sorts_above_nine_rather_than_below_it ... ok
[INFO] [stdout] test version::store::tests::the_shim_points_at_a_relative_path_so_the_home_directory_can_move ... ok
[INFO] [stdout] test version::tests::a_platform_with_no_prebuilt_binary_is_pointed_at_cargo ... ok
[INFO] [stdout] test version::tests::a_version_argument_forgives_the_leading_v_that_tags_are_written_with ... ok
[INFO] [stdout] test version::tests::every_subcommand_the_table_declares_is_dispatched_to_something ... ok
[INFO] [stdout] test version::store::tests::removing_something_that_is_not_there_says_so_rather_than_reporting_success ... ok
[INFO] [stdout] test version::download::tests::unpacking_something_that_is_not_an_archive_fails_rather_than_leaving_a_half_install ... ok
[INFO] [stdout] test save::tests::a_deck_read_out_of_a_commit_is_joined_the_same_way_the_one_on_disk_is ... ok
[INFO] [stdout] test version::download::tests::a_download_from_a_url_nothing_serves_reports_the_url ... ok
[INFO] [stdout] test save::tests::the_message_describes_the_deck_rather_than_the_diff ... ok
[INFO] [stdout] test self_update::tests::the_downloaded_archive_is_verified_unpacked_and_asked_its_version ... ok
[INFO] [stdout] test mcp::session::tests::a_call_with_no_arguments_at_all_reaches_the_tool ... ok
[INFO] [stdout] test mcp::tool::check::tests::the_machine_check_reports_every_check_even_where_nothing_could_be_read ... ok
[INFO] [stdout] test mcp::tool::check::tests::the_disk_check_measures_a_root_rather_than_wherever_the_client_spawned_us ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1103 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.99s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/release/deps/slidx-83bf69e837078aff)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/export.rs (/opt/rustwide/target/release/deps/export-ea317e4d6e59e56c)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test every_rendered_export_is_the_kind_of_file_it_claims_to_be ... ok
[INFO] [stdout] test the_static_site_export_is_an_archive_holding_the_deck_the_build_wrote ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/i18n_example_deck.rs (/opt/rustwide/target/release/deps/i18n_example_deck-857493e3c31e00fa)
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test a_new_command_completes_in_every_shell_without_anyone_writing_a_script ... ok
[INFO] [stdout] test nothing_the_example_deck_addresses_reaches_the_catalogue ... FAILED
[INFO] [stdout] test the_fenced_code_in_the_example_deck_comes_through_untouched ... FAILED
[INFO] [stdout] test the_translated_deck_is_in_the_language_it_says_it_is ... FAILED
[INFO] [stdout] test applying_a_full_translation_keeps_every_slide_id_and_every_mark_key ... FAILED
[INFO] [stdout] test applying_a_catalogue_that_translates_nothing_leaves_the_deck_byte_identical ... FAILED
[INFO] [stdout] test extract_runs_over_the_example_deck_and_writes_a_catalogue ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- nothing_the_example_deck_addresses_reaches_the_catalogue stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'nothing_the_example_deck_addresses_reaches_the_catalogue' (3090) panicked at tests/i18n_example_deck.rs:144:45:
[INFO] [stdout] a catalogue: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5626eddc9f51 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5626edde39aa - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5626eddcf4bc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5626edda0446 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5626eddbf569 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5626eda5b630 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5626eddbf892 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5626edda04f2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5626edd98d39 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5626edda15fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5626edde411c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5626edde3ef2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5626eda44cc9 - <i18n_example_deck[edb3bef9f07ae792]::nothing_the_example_deck_addresses_reaches_the_catalogue::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5626eda4e91b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5626eda5bf85 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5626eda55844 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5626eda5f0e2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5626eddc8699 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7593612e2dfa - <unknown>
[INFO] [stdout]   19:     0x7593613763d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- the_fenced_code_in_the_example_deck_comes_through_untouched stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'the_fenced_code_in_the_example_deck_comes_through_untouched' (3091) panicked at tests/i18n_example_deck.rs:278:45:
[INFO] [stdout] a catalogue: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5626eddc9f51 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5626edde39aa - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5626eddcf4bc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5626edda0446 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5626eddbf569 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5626eda5b630 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5626eddbf892 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5626edda04f2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5626edd98d39 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5626edda15fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5626edde411c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5626edde3ef2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5626eda4581b - <i18n_example_deck[edb3bef9f07ae792]::the_fenced_code_in_the_example_deck_comes_through_untouched::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5626eda4e91b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5626eda5bf85 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5626eda55844 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5626eda5f0e2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5626eddc8699 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7593612e2dfa - <unknown>
[INFO] [stdout]   19:     0x7593613763d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- the_translated_deck_is_in_the_language_it_says_it_is stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'the_translated_deck_is_in_the_language_it_says_it_is' (3092) panicked at tests/i18n_example_deck.rs:248:45:
[INFO] [stdout] a catalogue: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5626eddc9f51 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5626edde39aa - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5626eddcf4bc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5626edda0446 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5626eddbf569 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5626eda5b630 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5626eddbf892 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5626edda04f2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5626edd98d39 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5626edda15fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5626edde411c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5626edde3ef2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5626eda444e9 - <i18n_example_deck[edb3bef9f07ae792]::the_translated_deck_is_in_the_language_it_says_it_is::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5626eda4e91b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5626eda5bf85 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5626eda55844 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5626eda5f0e2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5626eddc8699 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7593612e2dfa - <unknown>
[INFO] [stdout]   19:     0x7593613763d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- applying_a_full_translation_keeps_every_slide_id_and_every_mark_key stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'applying_a_full_translation_keeps_every_slide_id_and_every_mark_key' (3088) panicked at tests/i18n_example_deck.rs:208:45:
[INFO] [stdout] a catalogue: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5626eddc9f51 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5626edde39aa - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5626eddcf4bc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5626edda0446 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5626eddbf569 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5626eda5b630 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5626eddbf892 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5626edda04f2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5626edd98d39 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5626edda15fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5626edde411c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5626edde3ef2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5626eda46292 - <i18n_example_deck[edb3bef9f07ae792]::applying_a_full_translation_keeps_every_slide_id_and_every_mark_key::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5626eda4e91b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5626eda5bf85 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5626eda55844 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5626eda5f0e2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5626eddc8699 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7593612e2dfa - <unknown>
[INFO] [stdout]   19:     0x7593613763d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- applying_a_catalogue_that_translates_nothing_leaves_the_deck_byte_identical stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'applying_a_catalogue_that_translates_nothing_leaves_the_deck_byte_identical' (3087) panicked at tests/i18n_example_deck.rs:189:5:
[INFO] [stdout] assertion `left == right` failed: There is nothing at /opt/rustwide/workdir/../../examples/deck/slides.
[INFO] [stdout] 
[INFO] [stdout] `slidx lint` takes a deck file or a directory of slide files, and looks in
[INFO] [stdout] ./slides when given neither.
[INFO] [stdout] 
[INFO] [stdout]   left: 2
[INFO] [stdout]  right: 0
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5626eddc9f51 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5626edde39aa - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5626eddcf4bc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5626edda0446 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5626eddbf569 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5626eda5b630 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5626eddbf892 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5626edda04f2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5626edd98d39 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5626edda15fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5626edde411c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5626edde4093 - core[df12db4294e9bfd3]::panicking::assert_failed_inner
[INFO] [stdout]   12:     0x5626edc7b6f3 - core[df12db4294e9bfd3]::panicking::assert_failed::<u8, u8>
[INFO] [stdout]   13:     0x5626eda470e3 - <i18n_example_deck[edb3bef9f07ae792]::applying_a_catalogue_that_translates_nothing_leaves_the_deck_byte_identical::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x5626eda4e91b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   15:     0x5626eda5bf85 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   16:     0x5626eda55844 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x5626eda5f0e2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x5626eddc8699 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x7593612e2dfa - <unknown>
[INFO] [stdout]   20:     0x7593613763d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- extract_runs_over_the_example_deck_and_writes_a_catalogue stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'extract_runs_over_the_example_deck_and_writes_a_catalogue' (3089) panicked at tests/i18n_example_deck.rs:122:45:
[INFO] [stdout] a catalogue: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5626eddc9f51 - <<std[70759c8f55707aa4]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x5626edde39aa - core[df12db4294e9bfd3]::fmt::write
[INFO] [stdout]    2:     0x5626eddcf4bc - <alloc[2182bb758b4b3781]::vec::Vec<u8> as core[df12db4294e9bfd3]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x5626edda0446 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x5626eddbf569 - std[70759c8f55707aa4]::panicking::default_hook
[INFO] [stdout]    5:     0x5626eda5b630 - test[9d35eded1c95d3be]::test_main_inner::<test[9d35eded1c95d3be]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]    6:     0x5626eddbf892 - std[70759c8f55707aa4]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x5626edda04f2 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x5626edd98d39 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace::<std[70759c8f55707aa4]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x5626edda15fd - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind
[INFO] [stdout]   10:     0x5626edde411c - core[df12db4294e9bfd3]::panicking::panic_fmt
[INFO] [stdout]   11:     0x5626edde3ef2 - core[df12db4294e9bfd3]::result::unwrap_failed
[INFO] [stdout]   12:     0x5626eda4510c - <i18n_example_deck[edb3bef9f07ae792]::extract_runs_over_the_example_deck_and_writes_a_catalogue::{closure#0} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   13:     0x5626eda4e91b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::<core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>>
[INFO] [stdout]   14:     0x5626eda5bf85 - test[9d35eded1c95d3be]::run_test::{closure#0}
[INFO] [stdout]   15:     0x5626eda55844 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace::<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>
[INFO] [stdout]   16:     0x5626eda5f0e2 - <std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked<test[9d35eded1c95d3be]::run_test::{closure#1}, ()>::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   17:     0x5626eddc8699 - <std[70759c8f55707aa4]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   18:     0x7593612e2dfa - <unknown>
[INFO] [stdout]   19:     0x7593613763d4 - clone
[INFO] [stdout]   20:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     applying_a_catalogue_that_translates_nothing_leaves_the_deck_byte_identical
[INFO] [stdout]     applying_a_full_translation_keeps_every_slide_id_and_every_mark_key
[INFO] [stdout]     extract_runs_over_the_example_deck_and_writes_a_catalogue
[INFO] [stdout]     nothing_the_example_deck_addresses_reaches_the_catalogue
[INFO] [stdout]     the_fenced_code_in_the_example_deck_comes_through_untouched
[INFO] [stdout]     the_translated_deck_is_in_the_language_it_says_it_is
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1 passed; 6 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test i18n_example_deck`
[INFO] running `Command { std: "docker" "inspect" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c", kill_on_drop: false }`
[INFO] [stdout] b19a34fcbe46893e50ecfbb88904cb40aeecac98100aa5fa4d80b04fd8329b4c
