[INFO] cloning repository https://github.com/gghez/rublocks [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/gghez/rublocks" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgghez%2Frublocks", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgghez%2Frublocks'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d6552fd7636b29656bf59732364b842d51b013ab [INFO] testing gghez/rublocks against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fgghez%2Frublocks" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/gghez/rublocks [INFO] finished tweaking git repo https://github.com/gghez/rublocks [INFO] tweaked toml for git repo https://github.com/gghez/rublocks written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/gghez/rublocks on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/gghez/rublocks 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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 03e0326328e5dda1181a9d1a5682d661198624813e292705208decaa356803ca [INFO] running `Command { std: "docker" "start" "-a" "03e0326328e5dda1181a9d1a5682d661198624813e292705208decaa356803ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "03e0326328e5dda1181a9d1a5682d661198624813e292705208decaa356803ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "03e0326328e5dda1181a9d1a5682d661198624813e292705208decaa356803ca", kill_on_drop: false }` [INFO] [stdout] 03e0326328e5dda1181a9d1a5682d661198624813e292705208decaa356803ca [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e35f71d89cedbcb00db575995f81c6d79dee99ad89ecee70b6a6b81708dbd788 [INFO] running `Command { std: "docker" "start" "-a" "e35f71d89cedbcb00db575995f81c6d79dee99ad89ecee70b6a6b81708dbd788", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling bitflags v2.11.1 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling semver v1.0.28 [INFO] [stderr] Compiling tinyvec v1.11.0 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling block-padding v0.3.3 [INFO] [stderr] Compiling indexmap v2.14.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Compiling fastrand v2.4.1 [INFO] [stderr] Compiling simd-adler32 v0.3.9 [INFO] [stderr] Compiling inout v0.1.4 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling miniz_oxide v0.8.9 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling cipher v0.4.4 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Compiling unicode-general-category v1.1.0 [INFO] [stderr] Compiling unicode-canonical-combining-class v1.0.0 [INFO] [stderr] Compiling unicode-joining-type v1.0.0 [INFO] [stderr] Compiling unicode-normalization v0.1.25 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling phf_codegen v0.13.1 [INFO] [stderr] Compiling deranged v0.5.8 [INFO] [stderr] Compiling nom v8.0.0 [INFO] [stderr] Compiling pathfinder_simd v0.5.6 [INFO] [stderr] Compiling nix v0.31.2 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling unicode-properties v0.1.4 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling entities v1.0.1 [INFO] [stderr] Compiling slab v0.4.12 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling aliasable v0.1.3 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling typed-arena v2.0.2 [INFO] [stderr] Compiling jetscii v0.5.3 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling stringprep v0.1.5 [INFO] [stderr] Compiling comrak v0.52.0 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling pathfinder_geometry v0.5.1 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling inotify v0.11.1 [INFO] [stderr] Compiling rand v0.9.4 [INFO] [stderr] Compiling brotli-decompressor v5.0.0 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling cbc v0.1.2 [INFO] [stderr] Compiling ecb v0.1.2 [INFO] [stderr] Compiling aes v0.8.4 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling notify-types v2.1.0 [INFO] [stderr] Compiling murmur3 v0.4.1 [INFO] [stderr] Compiling bitreader v0.3.11 [INFO] [stderr] Compiling glyph-names v0.2.0 [INFO] [stderr] Compiling rangemap v1.7.1 [INFO] [stderr] Compiling ttf-parser v0.25.1 [INFO] [stderr] Compiling time v0.3.47 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling hashbrown v0.12.3 [INFO] [stderr] Compiling schemars v0.8.22 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling prettyplease v0.2.37 [INFO] [stderr] Compiling better_any v0.2.1 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling antlr4rust v0.5.2 [INFO] [stderr] Compiling phf v0.13.1 [INFO] [stderr] Compiling notify v8.2.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling caseless v0.2.2 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling pastey v0.2.2 [INFO] [stderr] Compiling finl_unicode v1.4.0 [INFO] [stderr] Compiling file-id v0.2.3 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling notify-debouncer-full v0.5.0 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling ctrlc v3.5.2 [INFO] [stderr] Compiling dotenvy v0.15.7 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling nom_locate v5.0.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.7.0 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling ouroboros_macro v0.17.2 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling schemars_derive v0.8.22 [INFO] [stderr] Compiling clap_derive v4.6.1 [INFO] [stderr] Compiling tokio v1.52.3 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling ouroboros v0.17.2 [INFO] [stderr] Compiling lopdf v0.39.0 [INFO] [stderr] Compiling allsorts v0.16.1 [INFO] [stderr] Compiling clap v4.6.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling cel v0.13.0 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.9 [INFO] [stderr] Compiling printpdf v0.9.1 [INFO] [stderr] Compiling rublocks v0.0.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 37.36s [INFO] running `Command { std: "docker" "inspect" "e35f71d89cedbcb00db575995f81c6d79dee99ad89ecee70b6a6b81708dbd788", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e35f71d89cedbcb00db575995f81c6d79dee99ad89ecee70b6a6b81708dbd788", kill_on_drop: false }` [INFO] [stdout] e35f71d89cedbcb00db575995f81c6d79dee99ad89ecee70b6a6b81708dbd788 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6b355b28986282eabf9bbc2b97778a8a0a00ea1501a7955f9586dcd7baafdbc4 [INFO] running `Command { std: "docker" "start" "-a" "6b355b28986282eabf9bbc2b97778a8a0a00ea1501a7955f9586dcd7baafdbc4", kill_on_drop: false }` [INFO] [stderr] Compiling phf_shared v0.13.1 [INFO] [stderr] Compiling tendril v0.5.0 [INFO] [stderr] Compiling pom v1.1.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling inotify v0.11.1 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling notify-types v2.1.0 [INFO] [stderr] Compiling pulldown-cmark v0.13.3 [INFO] [stderr] Compiling allsorts v0.16.1 [INFO] [stderr] Compiling nix v0.31.2 [INFO] [stderr] Compiling lopdf v0.39.0 [INFO] [stderr] Compiling lopdf v0.38.0 [INFO] [stderr] Compiling euclid v0.20.14 [INFO] [stderr] Compiling zip v0.6.6 [INFO] [stderr] Compiling quick-xml v0.36.2 [INFO] [stderr] Compiling console v0.16.3 [INFO] [stderr] Compiling phf_generator v0.13.1 [INFO] [stderr] Compiling phf v0.13.1 [INFO] [stderr] Compiling string_cache v0.9.0 [INFO] [stderr] Compiling notify v8.2.0 [INFO] [stderr] Compiling type1-encoding-parser v0.1.1 [INFO] [stderr] Compiling phf_codegen v0.13.1 [INFO] [stderr] Compiling string_cache_codegen v0.6.1 [INFO] [stderr] Compiling adobe-cmap-parser v0.4.1 [INFO] [stderr] Compiling postscript v0.14.1 [INFO] [stderr] Compiling cff-parser v0.1.0 [INFO] [stderr] Compiling comrak v0.52.0 [INFO] [stderr] Compiling pulldown-cmark-escape v0.11.0 [INFO] [stderr] Compiling similar v2.7.0 [INFO] [stderr] Compiling notify-debouncer-full v0.5.0 [INFO] [stderr] Compiling web_atoms v0.2.4 [INFO] [stderr] Compiling docx-rs v0.4.20 [INFO] [stderr] Compiling ctrlc v3.5.2 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling insta v1.47.2 [INFO] [stderr] Compiling markup5ever v0.39.0 [INFO] [stderr] Compiling xml5ever v0.39.0 [INFO] [stderr] Compiling html5ever v0.39.0 [INFO] [stderr] Compiling pdf-extract v0.10.0 [INFO] [stderr] Compiling markup5ever_rcdom v0.39.0+unofficial [INFO] [stderr] Compiling printpdf v0.9.1 [INFO] [stderr] Compiling rublocks v0.0.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 38.96s [INFO] running `Command { std: "docker" "inspect" "6b355b28986282eabf9bbc2b97778a8a0a00ea1501a7955f9586dcd7baafdbc4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6b355b28986282eabf9bbc2b97778a8a0a00ea1501a7955f9586dcd7baafdbc4", kill_on_drop: false }` [INFO] [stdout] 6b355b28986282eabf9bbc2b97778a8a0a00ea1501a7955f9586dcd7baafdbc4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1637270c15b19f03596176926a262cdef34c08fda834e9ccab898b5f82fb277c [INFO] running `Command { std: "docker" "start" "-a" "1637270c15b19f03596176926a262cdef34c08fda834e9ccab898b5f82fb277c", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.49s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/rublocks-ab988f49ae5c0ad5) [INFO] [stdout] [INFO] [stdout] running 439 tests [INFO] [stdout] test blocks::csv_read::tests::accepts_utf8_encoding ... ok [INFO] [stdout] test blocks::csv_read::tests::parses_minimal ... ok [INFO] [stdout] test blocks::csv_read::tests::rejects_multi_char_delimiter ... ok [INFO] [stdout] test blocks::csv_read::tests::rejects_non_ref_source ... ok [INFO] [stdout] test blocks::csv_read::tests::rejects_unknown_field ... ok [INFO] [stdout] test blocks::csv_read::tests::rejects_unsupported_encoding ... ok [INFO] [stdout] test blocks::csv_write::tests::accepts_utf8_encoding ... ok [INFO] [stdout] test blocks::csv_write::tests::parses_minimal ... ok [INFO] [stdout] test blocks::csv_write::tests::rejects_multi_char_delimiter ... ok [INFO] [stdout] test blocks::csv_write::tests::rejects_non_ref_rows ... ok [INFO] [stdout] test blocks::csv_write::tests::rejects_unknown_field ... ok [INFO] [stdout] test blocks::csv_write::tests::rejects_unsupported_encoding ... ok [INFO] [stdout] test blocks::docx_render::tests::parses_canonical_markdown_form ... ok [INFO] [stdout] test blocks::docx_render::tests::project_uses_docx_render_detects_block ... ok [INFO] [stdout] test agents::tests::write_agents_md_preserves_pre_existing_user_file ... ok [INFO] [stdout] test agents::tests::fresh_agents_md_includes_header_and_block ... ok [INFO] [stdout] test agents::tests::skill_contains_frontmatter_and_description ... ok [INFO] [stdout] test blocks::docx_render::tests::parses_canonical_html_form ... ok [INFO] [stdout] test agents::tests::skill_embeds_all_four_schemas ... ok [INFO] [stdout] test agents::tests::write_all_lays_down_all_three_artifacts ... ok [INFO] [stdout] test agents::tests::write_agents_md_round_trips_idempotently_on_disk ... ok [INFO] [stdout] test blocks::docx_render::tests::rejects_unknown_field ... ok [INFO] [stdout] test blocks::docx_render::tests::unsupported_tag_in_markdown_surfaces_inline_html ... ok [INFO] [stdout] test blocks::docx_render::tests::rejects_empty_name ... ok [INFO] [stdout] test blocks::docx_render::tests::rejects_literal_source ... ok [INFO] [stdout] test blocks::docx_render::tests::rejects_missing_source_format ... ok [INFO] [stdout] test blocks::docx_render::tests::rejects_unknown_source_format ... ok [INFO] [stdout] test blocks::pdf_render::runtime_tests::empty_source_returns_error ... ok [INFO] [stdout] test blocks::docx_render::tests::round_trip_html_preserves_text_and_table ... ok [INFO] [stdout] test agents::tests::write_cursor_rules_creates_file_at_expected_path ... ok [INFO] [stdout] test agents::tests::cursor_rule_has_always_apply_frontmatter ... ok [INFO] [stdout] test blocks::pdf_render::tests::block_does_not_break_on_missing_block_discriminator ... ok [INFO] [stdout] test agents::tests::skill_write_is_idempotent ... ok [INFO] [stdout] test blocks::pdf_render::tests::parses_canonical_form ... ok [INFO] [stdout] test blocks::pdf_render::tests::rejects_empty_name ... ok [INFO] [stdout] test blocks::pdf_render::tests::parses_custom_size_with_units ... ok [INFO] [stdout] test blocks::docx_render::tests::unsupported_tag_returns_named_error ... ok [INFO] [stdout] test blocks::pdf_render::tests::rejects_invalid_source_format ... ok [INFO] [stdout] test blocks::pdf_render::tests::rejects_margin_without_units ... ok [INFO] [stdout] test blocks::pdf_render::tests::rejects_size_without_units ... ok [INFO] [stdout] test blocks::pdf_render::tests::rejects_unknown_field ... ok [INFO] [stdout] test blocks::pdf_render::tests::parses_margin_shorthand_four_values ... ok [INFO] [stdout] test blocks::pdf_render::tests::landscape_swaps_dimensions ... ok [INFO] [stdout] test agents::tests::cursor_rule_write_is_idempotent ... ok [INFO] [stdout] test blocks::docx_render::tests::round_trip_markdown_preserves_text ... ok [INFO] [stdout] test blocks::sftp_list::tests::accepts_ref_path_without_absolute_check ... ok [INFO] [stdout] test blocks::sftp_list::tests::parses_on_missing_recursively ... ok [INFO] [stdout] test blocks::sftp_list::tests::parses_inline_connection ... ok [INFO] [stdout] test blocks::sftp_list::tests::parses_service_form_with_defaults ... ok [INFO] [stdout] test blocks::sftp_list::tests::rejects_non_absolute_literal_path ... ok [INFO] [stdout] test blocks::sftp_list::tests::rejects_both_service_and_connection ... ok [INFO] [stdout] test blocks::pdf_render::tests::requires_source_format ... ok [INFO] [stdout] test blocks::sftp_list::tests::parses_pattern_when_valid ... ok [INFO] [stdout] test agents::tests::merge_is_idempotent_when_block_already_present ... ok [INFO] [stdout] test blocks::sftp_read::tests::accepts_ref_path_without_absolute_check ... ok [INFO] [stdout] test blocks::sftp_list::tests::rejects_invalid_pattern ... ok [INFO] [stdout] test blocks::sftp_list::tests::rejects_neither_service_nor_connection ... ok [INFO] [stdout] test blocks::sftp_list::tests::rejects_unknown_field ... ok [INFO] [stdout] test agents::tests::write_claude_skill_creates_file_at_expected_path ... ok [INFO] [stdout] test blocks::sftp_list::tests::rejects_on_missing_with_unknown_block ... ok [INFO] [stdout] test blocks::pdf_render::runtime_tests::ordered_list_numbering_increments ... ok [INFO] [stdout] test blocks::sftp_read::tests::parses_inline_connection ... ok [INFO] [stdout] test blocks::sftp_read::tests::parses_max_bytes_when_set ... ok [INFO] [stdout] test blocks::sftp_read::tests::parses_service_form_with_defaults ... ok [INFO] [stdout] test blocks::sftp_read::tests::rejects_on_missing_with_unknown_block ... ok [INFO] [stdout] test blocks::sftp_read::tests::rejects_both_service_and_connection ... ok [INFO] [stdout] test blocks::sftp_read::tests::rejects_neither_service_nor_connection ... ok [INFO] [stdout] test blocks::sftp_read::tests::rejects_non_absolute_literal_path ... ok [INFO] [stdout] test agents::tests::skill_lists_every_field_type ... ok [INFO] [stdout] test blocks::pdf_render::tests::rejects_invalid_page_size ... ok [INFO] [stdout] test blocks::sftp_read::tests::parses_on_missing_recursively ... ok [INFO] [stdout] test agents::tests::merge_preserves_user_content_above_and_below_block ... ok [INFO] [stdout] test blocks::sftp_read::tests::rejects_unknown_field ... ok [INFO] [stdout] test blocks::sftp_read::tests::rejects_zero_max_bytes ... ok [INFO] [stdout] test blocks::sftp_write::tests::accepts_ref_path_without_absolute_check ... ok [INFO] [stdout] test blocks::sftp_write::tests::parses_full_service_form ... ok [INFO] [stdout] test blocks::sftp_write::tests::parses_minimal_service_form ... ok [INFO] [stdout] test blocks::sftp_write::tests::parses_inline_connection ... ok [INFO] [stdout] test blocks::sftp_write::tests::parses_if_exists_skip ... ok [INFO] [stdout] test blocks::sftp_write::tests::parses_on_conflict_recursively ... ok [INFO] [stdout] test blocks::sftp_write::tests::accepts_four_digit_octal_mode ... ok [INFO] [stdout] test blocks::sftp_write::tests::rejects_bad_octal_mode_bad_digits ... ok [INFO] [stdout] test blocks::pdf_render::runtime_tests::renders_markdown_with_heading_and_paragraph ... ok [INFO] [stdout] test blocks::sftp_write::tests::rejects_bad_octal_mode_missing_prefix ... ok [INFO] [stdout] test blocks::sftp_write::tests::rejects_neither_service_nor_connection ... ok [INFO] [stdout] test blocks::sftp_write::tests::rejects_both_service_and_connection ... ok [INFO] [stdout] test blocks::sftp_write::tests::rejects_on_conflict_with_unknown_block ... ok [INFO] [stdout] test blocks::sftp_write::tests::rejects_on_conflict_without_error_policy ... ok [INFO] [stdout] test blocks::tests::raw_block_from_value_extracts_discriminator ... ok [INFO] [stdout] test blocks::sftp_write::tests::rejects_non_absolute_literal_path ... ok [INFO] [stdout] test blocks::sftp_write::tests::rejects_unknown_field ... ok [INFO] [stdout] test blocks::xlsx_read::tests::parses_minimal_spec ... ok [INFO] [stdout] test blocks::tests::raw_block_from_value_rejects_non_object ... ok [INFO] [stdout] test blocks::xlsx_read::tests::column_letters_cover_first_two_dozens ... ok [INFO] [stdout] test blocks::pdf_render::runtime_tests::html_entity_decoding_round_trips ... ok [INFO] [stdout] test blocks::tests::registry_lists_builtins_in_stable_order ... ok [INFO] [stdout] test blocks::xlsx_read::tests::parses_has_header_false ... ok [INFO] [stdout] test blocks::xlsx_read::tests::rejects_empty_model ... ok [INFO] [stdout] test blocks::tests::raw_block_from_value_rejects_missing_block ... ok [INFO] [stdout] test blocks::pdf_render::runtime_tests::renders_html_with_heading_paragraph_list ... ok [INFO] [stdout] test blocks::tests::parse_rejects_unknown_block_with_catalogue ... ok [INFO] [stdout] test blocks::tests::every_registered_block_has_a_doc_page ... ok [INFO] [stdout] test blocks::xlsx_read::tests::rejects_empty_sheet ... ok [INFO] [stdout] test blocks::xlsx_read::tests::rejects_source_with_field_access ... ok [INFO] [stdout] test blocks::xlsx_read::tests::rejects_unknown_field ... ok [INFO] [stdout] test blocks::xlsx_read::tests::rejects_source_without_dollar ... ok [INFO] [stdout] test blocks::xlsx_write::tests::parses_minimal_workbook ... ok [INFO] [stdout] test blocks::xlsx_write::tests::rejects_duplicate_sheet_names_case_insensitive ... ok [INFO] [stdout] test blocks::xlsx_write::tests::rejects_empty_sheets ... ok [INFO] [stdout] test blocks::pdf_render::runtime_tests::long_paragraph_wraps_across_lines ... ok [INFO] [stdout] test blocks::xlsx_write::tests::rejects_rows_field_access ... ok [INFO] [stdout] test blocks::xlsx_write::tests::rejects_rows_without_dollar_prefix ... ok [INFO] [stdout] test blocks::xlsx_write::tests::rejects_sheet_name_with_forbidden_char ... ok [INFO] [stdout] test blocks::xlsx_write::tests::rejects_sheet_name_too_long ... ok [INFO] [stdout] test blocks::xlsx_write::tests::parses_multiple_sheets ... ok [INFO] [stdout] test blocks::xlsx_write::tests::rejects_unknown_field_on_spec ... ok [INFO] [stdout] test blocks::xlsx_write::tests::rejects_unknown_field_on_sheet ... ok [INFO] [stdout] test codegen::tests::cargo_toml_pins_package_version_to_manifest_version ... ok [INFO] [stdout] test codegen::tests::cargo_toml_omits_russh_when_no_sftp_service ... ok [INFO] [stdout] test codegen::tests::cargo_toml_omits_uuid_when_no_model_uses_it ... ok [INFO] [stdout] test codegen::tests::cargo_toml_pulls_in_only_needed_features ... ok [INFO] [stdout] test codegen::tests::cargo_toml_pulls_tracing_and_subscriber ... ok [INFO] [stdout] test codegen::tests::cargo_toml_omits_cel_when_no_cel_site_exists ... ok [INFO] [stdout] test codegen::tests::cargo_toml_pulls_in_russh_when_sftp_service_declared ... ok [INFO] [stdout] test codegen::tests::cargo_toml_omits_csv_when_no_csv_block ... ok [INFO] [stdout] test codegen::tests::cargo_toml_escapes_quotes_and_backslashes_in_description ... ok [INFO] [stdout] test codegen::tests::cargo_toml_picks_mysql_feature_for_mysql_kind ... ok [INFO] [stdout] test codegen::tests::cargo_toml_pulls_in_csv_when_csv_block_is_used ... ok [INFO] [stdout] test codegen::tests::cargo_toml_omits_askama_for_api_only_projects ... ok [INFO] [stdout] test codegen::tests::cargo_toml_carries_manifest_description ... ok [INFO] [stdout] test codegen::tests::cargo_toml_pulls_in_askama_when_page_route_present ... ok [INFO] [stdout] test codegen::tests::csv_block_rejects_unsupported_encoding_at_load ... ok [INFO] [stdout] test codegen::tests::cargo_toml_pulls_in_cel_when_a_guard_block_is_used ... ok [INFO] [stdout] test codegen::tests::emit_csv_write_rejects_unknown_headers_at_build_time ... ok [INFO] [stdout] test codegen::tests::emit_does_not_force_client_encoding_on_mysql ... ok [INFO] [stdout] test codegen::tests::emit_copies_templates_dir_into_dist ... ok [INFO] [stdout] test codegen::tests::dev_index_html_escapes_description ... ok [INFO] [stdout] test codegen::tests::emit_emits_dev_index_when_no_user_route_owns_root ... ok [INFO] [stdout] test codegen::tests::emit_csv_write_respects_explicit_headers_order ... ok [INFO] [stdout] test codegen::tests::emit_initialises_subscriber_with_declared_level ... ok [INFO] [stdout] test codegen::tests::emit_omits_migrate_subcommand_without_migrations ... ok [INFO] [stdout] test codegen::tests::emit_inlines_model_structs_with_field_order ... ok [INFO] [stdout] test codegen::tests::emit_forces_client_encoding_utf8_on_postgres ... ok [INFO] [stdout] test codegen::tests::cors_wildcard_uses_any_origin ... ok [INFO] [stdout] test codegen::tests::dev_index_html_includes_description_meta_and_subtitle ... ok [INFO] [stdout] test codegen::tests::emit_rb_log_module_with_error_chain_and_backtrace ... ok [INFO] [stdout] test codegen::tests::emit_produces_parseable_main_rs ... ok [INFO] [stdout] test codegen::tests::emit_csv_write_produces_bytes_binding_via_csv_writer ... ok [INFO] [stdout] test codegen::tests::emit_csv_read_produces_vec_model_binding_with_parser ... ok [INFO] [stdout] test codegen::tests::emit_resolves_logging_include_env_at_startup ... ok [INFO] [stdout] test codegen::tests::emit_skips_http_layer_block_when_unset ... ok [INFO] [stdout] test codegen::tests::emit_generates_askama_context_for_page_route ... ok [INFO] [stdout] test codegen::tests::emit_stamps_x_app_version_response_header ... ok [INFO] [stdout] test codegen::tests::emit_threads_language_into_dev_index_and_pages ... ok [INFO] [stdout] test codegen::tests::emit_wires_db_find_one_with_on_missing_short_circuit ... ok [INFO] [stdout] test codegen::tests::emit_sftp_read_emits_state_handle_call_and_on_missing_dispatch ... ok [INFO] [stdout] test codegen::tests::emit_initialises_sftp_service_with_password_auth ... ok [INFO] [stdout] test codegen::tests::emit_wires_cel_runtime_for_input_validate ... ok [INFO] [stdout] test codegen::tests::emit_wires_api_output_projection ... ok [INFO] [stdout] test codegen::tests::emit_sftp_read_inline_connection_is_rejected_with_clear_error ... ok [INFO] [stdout] test codegen::tests::emit_wires_http_middleware_layers ... ok [INFO] [stdout] test codegen::tests::emit_sftp_list_inline_connection_is_rejected_with_clear_error ... ok [INFO] [stdout] test codegen::tests::emit_wires_encoding_middleware_and_module ... ok [INFO] [stdout] test codegen::tests::emit_wires_page_guard_to_page_403 ... ok [INFO] [stdout] test codegen::tests::emit_warns_and_tofus_when_fingerprint_missing_in_dev ... ok [INFO] [stdout] test codegen::tests::emit_wires_migrate_subcommand_when_pg_and_migrations_present ... ok [INFO] [stdout] test codegen::tests::emit_sftp_read_uses_default_max_bytes_when_omitted ... ok [INFO] [stdout] test codegen::tests::manifest_load_rejects_missing_language ... ok [INFO] [stdout] test codegen::tests::emit_sftp_list_emits_state_handle_call_and_on_missing_dispatch ... ok [INFO] [stdout] test codegen::tests::model_field_type_maps_known_scalars ... ok [INFO] [stdout] test codegen::tests::model_field_type_wraps_nullable_in_null_display ... ok [INFO] [stdout] test codegen::tests::manifest_load_rejects_route_referencing_unknown_layout ... ok [INFO] [stdout] test codegen::tests::emit_wraps_each_block_in_a_tracing_span ... ok [INFO] [stdout] test codegen::tests::emit_sftp_read_oversize_maps_to_413_in_runtime_helper ... ok [INFO] [stdout] test codegen::tests::main_rs_uses_mysql_pool_for_mysql_kind ... ok [INFO] [stdout] test codegen::tests::emit_initialises_sftp_service_with_private_key_auth ... ok [INFO] [stdout] test codegen::tests::emit_initialises_sftp_service_with_private_key_pem_auth ... ok [INFO] [stdout] test codegen::tests::emit_csv_read_with_explicit_utf8_encoding_inherits ... ok [INFO] [stdout] test codegen::tests::emit_wires_db_insert_with_value_refs ... ok [INFO] [stdout] test codegen::tests::emit_sftp_list_falls_back_to_default_not_found_without_on_missing ... ok [INFO] [stdout] test codegen::tests::emit_wires_request_trace_layer ... ok [INFO] [stdout] test codegen::tests::emit_wires_field_validation_at_insert_time ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_db_find_many ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_error ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_db_find_one ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_guard ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_docx_render ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_db_insert ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_cargo_toml_with_postgres_and_migrations ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_cargo_toml_minimal ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_guard_seeds_prior_binding_through_cel_to_value ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_minimal_excludes_pdf_deps ... ok [INFO] [stdout] test codegen::tests::emit_wires_guard_block_to_403_at_runtime ... ok [INFO] [stdout] test codegen::tests::emit_xlsx_read_uses_calamine_and_surfaces_missing_sheet_as_422 ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_load_dotenv_disabled_skips_dotenv_call ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_load_dotenv_explicit_path_bakes_absolute_path ... ok [INFO] [stdout] test codegen::tests::used_method_imports_always_includes_get ... ok [INFO] [stdout] test codegen::tests::used_method_imports_deduplicates_and_sorts ... ok [INFO] [stdout] test codegen::tests::xlsx_blocks_roundtrip_through_route_loader ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_sftp_read ... ok [INFO] [stdout] test dev::tests::extract_snippet_centers_the_marker ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_time_now ... ok [INFO] [stdout] test dev::tests::extract_snippet_handles_line_one ... ok [INFO] [stdout] test codegen::tests::xlsx_deps_are_absent_without_xlsx_blocks ... ok [INFO] [stdout] test dev::tests::manifest_error_to_dev_handles_validation_without_snippet ... ok [INFO] [stdout] test dev::tests::manifest_error_to_dev_propagates_file_and_position ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_sftp_list ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_load_dotenv_precedes_env_var_resolution ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_model_struct ... ok [INFO] [stdout] test dev_error::tests::escape_html_handles_specials ... ok [INFO] [stdout] test dev::tests::extract_snippet_returns_none_for_zero_or_overflow ... ok [INFO] [stdout] test dev::tests::is_source_matches_json_and_html ... ok [INFO] [stdout] test dev_error::tests::parse_first_cargo_error_extracts_code_and_location ... ok [INFO] [stdout] test dev_error::tests::parse_first_cargo_error_handles_codeless_errors ... ok [INFO] [stdout] test dev_error::tests::parse_first_cargo_error_returns_none_when_clean ... ok [INFO] [stdout] test dev_error::tests::render_error_html_escapes_description ... ok [INFO] [stdout] test dev_error::tests::render_error_html_footer_stamps_project_label_when_known ... ok [INFO] [stdout] test dev_error::tests::render_error_html_footer_falls_back_when_label_unknown ... ok [INFO] [stdout] test dev_error::tests::render_error_html_includes_subtitle_and_meta_when_description_present ... ok [INFO] [stdout] test dev_error::tests::render_error_html_omits_subtitle_when_description_absent ... ok [INFO] [stdout] test dev_error::tests::render_error_html_uses_french_strings_for_fr_locale ... ok [INFO] [stdout] test dev_error::tests::render_payload_and_html_agree_on_manifest_file ... ok [INFO] [stdout] test dev_error::tests::render_payload_build_includes_first_error_metadata ... ok [INFO] [stdout] test dev_error::tests::render_payload_manifest_includes_file_and_position ... ok [INFO] [stdout] test docker::tests::compose_includes_postgres_when_declared ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_minimal_manifest ... ok [INFO] [stdout] test dev_error::tests::render_error_html_falls_back_to_english_for_unknown_locale ... ok [INFO] [stdout] test docker::tests::compose_includes_redis_when_declared ... ok [INFO] [stdout] test dev_error::tests::render_payload_omits_unknown_manifest_file ... ok [INFO] [stdout] test docker::tests::compose_omits_db_service_for_mssql_kind ... ok [INFO] [stdout] test codegen::tests::emit_wires_arc_sftp_service_on_appstate_per_declared_service ... ok [INFO] [stdout] test docker::tests::compose_skips_backend_block_when_no_services ... ok [INFO] [stdout] test docker::tests::compose_uses_mariadb_image_for_mariadb_kind ... ok [INFO] [stdout] test docker::tests::compose_uses_mysql_image_for_mysql_kind ... ok [INFO] [stdout] test docker::tests::dockerfile_has_two_stages_and_runtime_user ... ok [INFO] [stdout] test docker::tests::dockerignore_targets_target_dir ... ok [INFO] [stdout] test docker::tests::emit_writes_all_three_files ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_layout_inheritance ... ok [INFO] [stdout] test docs_tests::at_least_one_example_per_capability ... ok [INFO] [stdout] test expressions::tests::rejects_empty_expression ... ok [INFO] [stdout] test expressions::tests::accepts_simple_boolean_expression ... ok [INFO] [stdout] test docs_tests::strip_line_comment_keeps_url_slashes ... ok [INFO] [stdout] test expressions::tests::scope_check_rejects_unknown_identifier_with_offending_name ... ok [INFO] [stdout] test expressions::tests::rejects_syntax_error ... ok [INFO] [stdout] test input::tests::parse_returns_empty_for_empty_object ... ok [INFO] [stdout] test input::tests::accepts_well_formed_regex_and_cel ... ok [INFO] [stdout] test input::tests::parse_typed_query_field ... ok [INFO] [stdout] test input::tests::parse_wrapped_form_body ... ok [INFO] [stdout] test input::tests::rejects_default_with_wrong_type ... ok [INFO] [stdout] test expressions::tests::scope_check_ignores_stdlib_functions ... ok [INFO] [stdout] test input::tests::parse_flat_body ... ok [INFO] [stdout] test expressions::tests::scope_check_accepts_known_identifier ... ok [INFO] [stdout] test input::tests::rejects_max_length_on_int_field ... ok [INFO] [stdout] test expressions::tests::accepts_chained_membership ... ok [INFO] [stdout] test input::tests::rejects_min_on_string_field ... ok [INFO] [stdout] test input::tests::rejects_invalid_regex_at_load_time ... ok [INFO] [stdout] test language::tests::dev_string_falls_back_to_english_for_unknown_tag ... ok [INFO] [stdout] test language::tests::dev_string_picks_french_for_fr_subtag ... ok [INFO] [stdout] test input::tests::rejects_unknown_section ... ok [INFO] [stdout] test language::tests::has_dev_strings_recognizes_shipped_locales ... ok [INFO] [stdout] test language::tests::well_formed_rejects_obvious_typos ... ok [INFO] [stdout] test layouts::tests::find_returns_layout_by_name ... ok [INFO] [stdout] test input::tests::rejects_unknown_field_knob ... ok [INFO] [stdout] test layouts::tests::layout_process_parses_blocks_against_registry ... ok [INFO] [stdout] test language::tests::well_formed_accepts_canonical_tags ... ok [INFO] [stdout] test language::tests::well_formed_is_case_insensitive ... ok [INFO] [stdout] test layouts::tests::load_all_rejects_duplicate_names ... ok [INFO] [stdout] test layouts::tests::load_all_parses_minimal_layout ... ok [INFO] [stdout] test layouts::tests::load_all_rejects_missing_name ... ok [INFO] [stdout] test layouts::tests::load_all_rejects_missing_template ... ok [INFO] [stdout] test docs_tests::every_annotated_doc_example_parses ... ok [INFO] [stdout] test input::tests::rejects_invalid_cel_validate_at_load_time ... ok [INFO] [stdout] test manifest::tests::load_accepts_pre_release_and_build_metadata ... ok [INFO] [stdout] test manifest::tests::load_accepts_case_insensitive_utf8_spelling ... ok [INFO] [stdout] test manifest::tests::load_accepts_guard_referencing_prior_block_binding ... ok [INFO] [stdout] test manifest::tests::load_accepts_minimal_manifest ... ok [INFO] [stdout] test manifest::tests::load_accepts_guard_referencing_input_field ... ok [INFO] [stdout] test manifest::tests::load_collects_multiple_sftp_services_in_declaration_order ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_sftp_write ... ok [INFO] [stdout] test layouts::tests::layout_process_rejects_unknown_block_with_catalogue ... ok [INFO] [stdout] test layouts::tests::load_all_returns_empty_when_no_layouts_dir ... ok [INFO] [stdout] test manifest::tests::load_aggregates_routes_and_models ... ok [INFO] [stdout] test manifest::tests::load_dotenv_defaults_to_auto_when_field_omitted ... ok [INFO] [stdout] test manifest::tests::load_dotenv_absolute_string_is_kept_as_is ... ok [INFO] [stdout] test manifest::tests::load_dotenv_rejects_explicit_true_as_redundant ... ok [INFO] [stdout] test manifest::tests::load_parses_literal_service_url ... ok [INFO] [stdout] test manifest::tests::load_dotenv_false_resolves_to_disabled ... ok [INFO] [stdout] test manifest::tests::load_dotenv_rejects_directory_path ... ok [INFO] [stdout] test manifest::tests::load_parses_logging_include_with_env_prefix ... ok [INFO] [stdout] test manifest::tests::load_parses_env_service_url ... ok [INFO] [stdout] test manifest::tests::load_dotenv_relative_string_resolves_against_project_dir ... ok [INFO] [stdout] test manifest::tests::load_rejects_both_db_and_postgres_set ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_route_api_get ... ok [INFO] [stdout] test manifest::tests::load_parses_services_db_with_explicit_mysql_kind ... ok [INFO] [stdout] test manifest::tests::load_parses_named_sftp_service_with_password_auth ... ok [INFO] [stdout] test manifest::tests::load_dotenv_rejects_empty_or_whitespace_string ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_route_page_get ... ok [INFO] [stdout] test manifest::tests::load_rejects_description_over_280_chars ... ok [INFO] [stdout] test manifest::tests::load_rejects_empty_description ... ok [INFO] [stdout] test manifest::tests::load_rejects_empty_name ... ok [INFO] [stdout] test manifest::tests::load_rejects_description_with_newline ... ok [INFO] [stdout] test manifest::tests::load_rejects_guard_referencing_unknown_identifier ... ok [INFO] [stdout] test manifest::tests::load_rejects_invalid_semver ... ok [INFO] [stdout] test codegen::tests::emit_xlsx_write_uses_rust_xlsxwriter_per_named_sheet ... ok [INFO] [stdout] test manifest::tests::load_rejects_missing_language ... ok [INFO] [stdout] test manifest::tests::load_rejects_logging_without_level ... ok [INFO] [stdout] test manifest::tests::load_rejects_logging_invalid_level ... ok [INFO] [stdout] test manifest::tests::load_rejects_logging_unknown_field ... ok [INFO] [stdout] test manifest::tests::load_rejects_missing_description ... ok [INFO] [stdout] test manifest::tests::load_rejects_missing_encoding ... ok [INFO] [stdout] test manifest::tests::load_rejects_sftp_service_with_multiple_auth_methods ... ok [INFO] [stdout] test manifest::tests::load_rejects_utf16_be_bom ... ok [INFO] [stdout] test manifest::tests::load_rejects_sftp_service_with_unknown_field ... ok [INFO] [stdout] test manifest::tests::load_rejects_uppercase_name ... ok [INFO] [stdout] test manifest::tests::load_rejects_unsupported_encoding ... ok [INFO] [stdout] test manifest::tests::load_rejects_invalid_language_tag ... ok [INFO] [stdout] test manifest::tests::load_rejects_sftp_service_without_auth_method ... ok [INFO] [stdout] test manifest::tests::load_rejects_utf32_be_bom ... ok [INFO] [stdout] test manifest::tests::load_rejects_missing_version ... ok [INFO] [stdout] test manifest::tests::load_rejects_invalid_utf8_bytes ... ok [INFO] [stdout] test manifest::tests::load_rejects_input_field_collision_across_sections ... ok [INFO] [stdout] test manifest::tests::load_rejects_missing_logging ... ok [INFO] [stdout] test manifest::tests::load_rejects_utf32_le_bom ... ok [INFO] [stdout] test manifest::tests::load_reports_syntax_error_with_line_and_column ... ok [INFO] [stdout] test manifest::tests::load_rejects_utf16_le_bom ... ok [INFO] [stdout] test manifest::tests::load_trims_description ... ok [INFO] [stdout] test manifest::tests::load_strips_utf8_bom ... ok [INFO] [stdout] test migrations::tests::diff_is_empty_when_snapshots_match ... ok [INFO] [stdout] test migrations::tests::mssql_dialect_maps_uuid_and_text ... ok [INFO] [stdout] test migrations::tests::mysql_dialect_maps_uuid_text_and_bool ... ok [INFO] [stdout] test manifest::tests::write_text_utf8_normalises_crlf_to_lf_and_strips_bom ... ok [INFO] [stdout] test migrations::tests::postgres_dialect_remains_unchanged ... ok [INFO] [stdout] test migrations::tests::adding_a_new_table_emits_create_table ... ok [INFO] [stdout] test migrations::tests::next_number_skips_non_numeric_files ... ok [INFO] [stdout] test migrations::tests::adding_a_column_emits_alter_table_add_column ... ok [INFO] [stdout] test manifest::tests::load_rejects_where_string_using_unsupported_operator ... ok [INFO] [stdout] test models::tests::checks_and_explicit_indexes_round_trip ... ok [INFO] [stdout] test models::tests::load_all_preserves_field_order ... ok [INFO] [stdout] test models::tests::dotted_references_shorthand_resolves_across_files ... ok [INFO] [stdout] test models::tests::load_all_accepts_well_formed_validate_cel ... ok [INFO] [stdout] test manifest::tests::load_rejects_where_string_referencing_unknown_column ... ok [INFO] [stdout] test models::tests::rejects_index_on_unknown_column ... ok [INFO] [stdout] test models::tests::load_all_returns_empty_when_no_models_dir ... ok [INFO] [stdout] test migrations::tests::first_build_writes_state_and_emits_no_migration ... ok [INFO] [stdout] test models::tests::nullable_marks_field_as_optional ... ok [INFO] [stdout] test models::tests::rejects_lowercase_name ... ok [INFO] [stdout] test manifest::tests::normalize_for_write_is_identity_when_already_clean ... ok [INFO] [stdout] test models::tests::shorthand_unique_conflicting_with_explicit_index_is_rejected ... ok [INFO] [stdout] test migrations::tests::dropping_a_column_is_commented_out ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_pdf_render ... ok [INFO] [stdout] test models::tests::unknown_foreign_key_target_model_is_rejected ... ok [INFO] [stdout] test routes::tests::axum_path_converts_colon_params ... ok [INFO] [stdout] test routes::tests::load_all_parses_typed_blocks ... ok [INFO] [stdout] test routes::tests::axum_path_passes_static_paths_through ... ok [INFO] [stdout] test routes::tests::load_all_accepts_well_formed_guard_block ... ok [INFO] [stdout] test models::tests::load_all_rejects_field_with_invalid_validate_cel ... ok [INFO] [stdout] test models::tests::shorthand_unique_merges_into_indexes ... ok [INFO] [stdout] test models::tests::object_references_form_is_accepted_with_on_delete ... ok [INFO] [stdout] test models::tests::unknown_foreign_key_target_field_is_rejected ... ok [INFO] [stdout] test routes::tests::load_all_derives_names_from_file_paths ... ok [INFO] [stdout] test routes::tests::load_all_parses_nested_on_missing_block ... ok [INFO] [stdout] test routes::tests::load_all_rejects_path_without_leading_slash ... ok [INFO] [stdout] test routes::tests::load_all_rejects_invalid_nested_block ... ok [INFO] [stdout] test routes::tests::load_all_rejects_duplicate_method_path_pairs ... ok [INFO] [stdout] test routes::tests::load_all_parses_typed_input_spec ... ok [INFO] [stdout] test routes::tests::load_all_returns_empty_when_no_routes_dir ... ok [INFO] [stdout] test routes::tests::load_all_validates_process_where_cel_syntax ... ok [INFO] [stdout] test routes::tests::load_all_rejects_route_level_guard_field ... ok [INFO] [stdout] test migrations::tests::changing_a_column_type_emits_alter_column_type ... ok [INFO] [stdout] test routes::tests::load_all_rejects_guard_block_with_invalid_cel ... ok [INFO] [stdout] test schema::tests::all_starts_with_top_level_shapes_then_blocks ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_block_sftp_write_skip_emits_overwrite_default_call ... ok [INFO] [stdout] test schema_files::tests::merge_vscode_settings_preserves_unrelated_keys ... ok [INFO] [stdout] test schema_files::tests::merge_vscode_settings_creates_object_when_no_file_exists ... ok [INFO] [stdout] test schema::tests::route_schema_lists_methods_and_kinds ... ok [INFO] [stdout] test routes::tests::load_all_rejects_input_with_invalid_regex ... ok [INFO] [stdout] test schema::tests::service_url_is_modeled_as_string ... ok [INFO] [stdout] test routes::tests::load_all_rejects_unknown_block_with_catalogue ... ok [INFO] [stdout] test schema_files::tests::merge_vscode_settings_replaces_existing_json_schemas_block ... ok [INFO] [stdout] test schema::tests::manifest_schema_lists_name_and_services ... ok [INFO] [stdout] test sftp::tests::parse_inline_rejects_missing_auth ... ok [INFO] [stdout] test routes::tests::load_all_rejects_unknown_field_on_block ... ok [INFO] [stdout] test routes::tests::load_all_rejects_unknown_route_field ... ok [INFO] [stdout] test routes::tests::load_all_requires_template_for_get_page_routes ... ok [INFO] [stdout] test sftp::tests::parse_inline_rejects_unknown_field ... ok [INFO] [stdout] test sftp::tests::parse_inline_rejects_no_auth_method ... ok [INFO] [stdout] test schema::tests::model_schema_lists_field_types_enum ... ok [INFO] [stdout] test schema_files::tests::relative_filename_puts_blocks_under_blocks_subdir ... ok [INFO] [stdout] test sftp::tests::parse_rejects_both_service_and_connection ... ok [INFO] [stdout] test sftp::tests::parse_inline_with_ref_values ... ok [INFO] [stdout] test sftp::tests::parse_service_form_extracts_name ... ok [INFO] [stdout] test sftp::tests::parse_rejects_neither_service_nor_connection ... ok [INFO] [stdout] test sftp::tests::sftp_service_defaults_port_to_22 ... ok [INFO] [stdout] test schema_files::tests::relative_filename_maps_top_level_shapes ... ok [INFO] [stdout] test schema::tests::manifest_schema_marks_name_and_version_as_required ... ok [INFO] [stdout] test schema::tests::all_emits_one_schema_per_registered_block ... ok [INFO] [stdout] test schema_files::tests::write_all_creates_vscode_settings_with_json_schemas_array ... ok [INFO] [stdout] test sftp::tests::parse_inline_rejects_multiple_auth_methods ... ok [INFO] [stdout] test sftp::tests::validate_service_form_accepts_password_only ... ok [INFO] [stdout] test sftp::tests::validate_service_form_accepts_private_key_only ... ok [INFO] [stdout] test sftp::tests::validate_service_form_accepts_private_key_pem_only ... ok [INFO] [stdout] test sftp::tests::validate_service_form_rejects_multiple_methods ... ok [INFO] [stdout] test sftp::tests::parse_inline_with_literal_values ... ok [INFO] [stdout] test sftp::tests::validate_service_reference_accepts_known_name ... ok [INFO] [stdout] test sftp::tests::validate_service_form_rejects_no_method ... ok [INFO] [stdout] test schema_files::tests::merge_vscode_settings_rejects_invalid_existing_json ... ok [INFO] [stdout] test sftp::tests::validate_service_reference_lists_empty_catalogue_when_no_sftp_services ... ok [INFO] [stdout] test sql_where::tests::compiles_equality_with_int_literal ... ok [INFO] [stdout] test sftp::tests::validate_service_reference_rejects_unknown_with_catalogue ... ok [INFO] [stdout] test sql_where::tests::compiles_or ... ok [INFO] [stdout] test sql_where::tests::compiles_and_with_two_clauses ... ok [INFO] [stdout] test sql_where::tests::rejects_unknown_column_with_catalogue ... ok [INFO] [stdout] test schema_files::tests::write_all_wipes_stale_schema_files_from_previous_runs ... ok [INFO] [stdout] test sql_where::tests::compiles_ordering_operators ... ok [INFO] [stdout] test sql_where::tests::compiles_simple_equality_with_string_literal ... ok [INFO] [stdout] test sftp::tests::sftp_service_rejects_unknown_field ... ok [INFO] [stdout] test sql_where::tests::rejects_in_with_non_literal_element ... ok [INFO] [stdout] test sql_where::tests::compiles_in_with_literal_list ... ok [INFO] [stdout] test sql_where::tests::rejects_field_selection ... ok [INFO] [stdout] test value_ref::tests::parses_block_field ... ok [INFO] [stdout] test value_ref::tests::parses_input_path_field ... ok [INFO] [stdout] test value_ref::tests::parses_literal_number ... ok [INFO] [stdout] test value_ref::tests::parses_whole_block ... ok [INFO] [stdout] test value_ref::tests::rejects_unknown_input_section ... ok [INFO] [stdout] test where_clause::tests::parses_in_operator_with_literals ... ok [INFO] [stdout] test where_clause::tests::parses_ref_on_rhs ... ok [INFO] [stdout] test where_clause::tests::parses_structured_with_bare_eq ... ok [INFO] [stdout] test where_clause::tests::parses_string_form_as_cel ... ok [INFO] [stdout] test value_ref::tests::rejects_input_with_wrong_arity ... ok [INFO] [stdout] test sql_where::tests::rejects_unsupported_operator ... ok [INFO] [stdout] test where_clause::tests::rejects_unknown_operator ... ok [INFO] [stdout] test value_ref::tests::parses_literal_string ... ok [INFO] [stdout] test where_clause::tests::parses_is_not_null_operator ... ok [INFO] [stdout] test value_ref::tests::rejects_too_deep_reference ... ok [INFO] [stdout] test where_clause::tests::rejects_multi_key_operator_object ... ok [INFO] [stdout] test schema_files::tests::write_all_emits_one_file_per_schema_under_rublocks_schemas ... ok [INFO] [stdout] test dev::tests::watch_loop_detects_files_in_freshly_created_subdir ... ok [INFO] [stdout] test codegen::tests::snapshot_tests::emit_pdf_render_pulls_deps_and_module ... ok [INFO] [stdout] test dev::tests::watch_loop_does_not_fire_when_idle ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 439 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.66s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "1637270c15b19f03596176926a262cdef34c08fda834e9ccab898b5f82fb277c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1637270c15b19f03596176926a262cdef34c08fda834e9ccab898b5f82fb277c", kill_on_drop: false }` [INFO] [stdout] 1637270c15b19f03596176926a262cdef34c08fda834e9ccab898b5f82fb277c