[INFO] fetching crate mdk-core 0.8.0...
[INFO] testing mdk-core-0.8.0 against 1.98.0-beta.1 for beta-1.98-1
[INFO] extracting crate mdk-core 0.8.0 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate mdk-core 0.8.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate mdk-core 0.8.0
[INFO] tweaked toml for crates.io crate mdk-core 0.8.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate mdk-core 0.8.0 on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate mdk-core 0.8.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.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b
[INFO] running `Command { std: "docker" "start" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b", 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" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b", 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" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.185
[INFO] [stderr]    Compiling typenum v1.20.0
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling base16ct v0.2.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling hax-lib v0.3.6
[INFO] [stderr]    Compiling opaque-debug v0.3.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling cc v1.2.60
[INFO] [stderr]    Compiling libcrux-intrinsics v0.0.6
[INFO] [stderr]    Compiling bitcoin-io v0.1.4
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.9
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling libcrux-sha3 v0.0.8
[INFO] [stderr]    Compiling hex-conservative v0.2.2
[INFO] [stderr]    Compiling rand v0.9.4
[INFO] [stderr]    Compiling pem-rfc7468 v0.7.0
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling fdeflate v0.3.7
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_bytes v0.11.19
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling zune-core v0.5.1
[INFO] [stderr]    Compiling byteorder-lite v0.1.0
[INFO] [stderr]    Compiling blurhash v0.2.3
[INFO] [stderr]    Compiling weezl v0.1.12
[INFO] [stderr]    Compiling color_quant v1.1.0
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling hex v0.4.3
[INFO] [stderr]    Compiling pxfm v0.1.29
[INFO] [stderr]    Compiling bech32 v0.11.1
[INFO] [stderr]    Compiling quick-error v2.0.1
[INFO] [stderr]    Compiling gif v0.14.2
[INFO] [stderr]    Compiling zune-jpeg v0.5.15
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling image-webp v0.2.4
[INFO] [stderr]    Compiling pastey v0.2.2
[INFO] [stderr]    Compiling mutate_once v0.1.2
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling kamadak-exif v0.6.1
[INFO] [stderr]    Compiling mdk-macros v0.8.0
[INFO] [stderr]    Compiling fast-thumbhash v0.2.0
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling libcrux-platform v0.0.3
[INFO] [stderr]    Compiling secp256k1-sys v0.10.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling ff v0.13.1
[INFO] [stderr]    Compiling group v0.13.0
[INFO] [stderr]    Compiling moxcms v0.8.1
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling tls_codec_derive v0.4.2
[INFO] [stderr]    Compiling hax-lib-macros v0.3.6
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling hpke-rs-crypto v0.6.1
[INFO] [stderr]    Compiling libcrux-secrets v0.0.5
[INFO] [stderr]    Compiling libcrux-traits v0.0.6
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling block-padding v0.3.3
[INFO] [stderr]    Compiling crypto-bigint v0.5.5
[INFO] [stderr]    Compiling cobs v0.3.0
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling poly1305 v0.8.0
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling rfc6979 v0.4.0
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling pkcs8 v0.10.2
[INFO] [stderr]    Compiling chacha20 v0.9.1
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling sec1 v0.7.3
[INFO] [stderr]    Compiling chacha20poly1305 v0.10.1
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling elliptic-curve v0.13.8
[INFO] [stderr]    Compiling primeorder v0.13.6
[INFO] [stderr]    Compiling ecdsa v0.16.9
[INFO] [stderr]    Compiling k256 v0.13.4
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling p384 v0.13.1
[INFO] [stderr]    Compiling p256 v0.13.2
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling tls_codec v0.4.2
[INFO] [stderr]    Compiling bitcoin_hashes v0.14.1
[INFO] [stderr]    Compiling secp256k1 v0.29.1
[INFO] [stderr]    Compiling postcard v1.1.3
[INFO] [stderr]    Compiling hpke-rs-rust-crypto v0.6.1
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling openmls_traits v0.5.0
[INFO] [stderr]    Compiling hpke-rs v0.6.1
[INFO] [stderr]    Compiling nostr v0.44.2
[INFO] [stderr]    Compiling openmls v0.8.1
[INFO] [stderr]    Compiling openmls_memory_storage v0.5.0
[INFO] [stderr]    Compiling openmls_basic_credential v0.5.0
[INFO] [stderr]    Compiling openmls_rust_crypto v0.5.1
[INFO] [stderr]    Compiling mdk-storage-traits v0.8.0
[INFO] [stderr]    Compiling mdk-core v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.18s
[INFO] running `Command { std: "docker" "inspect" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b", 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" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling bitflags v2.11.1
[INFO] [stderr]    Compiling num-conv v0.2.1
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling siphasher v1.0.2
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling fallible-streaming-iterator v0.1.9
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling png v0.18.1
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling libsqlite3-sys v0.35.0
[INFO] [stderr]    Compiling hashlink v0.10.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling tokio v1.52.1
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling keyring-core v1.0.0
[INFO] [stderr]    Compiling lru v0.16.4
[INFO] [stderr]    Compiling nostr v0.44.2
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling image v0.25.10
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling mdk-storage-traits v0.8.0
[INFO] [stderr]    Compiling mdk-memory-storage v0.8.0
[INFO] [stderr]    Compiling mdk-core v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling refinery-core v0.9.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling refinery-macros v0.9.1
[INFO] [stderr]    Compiling rusqlite v0.37.0
[INFO] [stderr]    Compiling refinery v0.9.1
[INFO] [stderr]    Compiling mdk-sqlite-storage v0.8.0
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 32s
[INFO] running `Command { std: "docker" "inspect" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b", 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" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mdk_core-29d58e81969681e1)
[INFO] [stdout] 
[INFO] [stdout] running 428 tests
[INFO] [stdout] test epoch_snapshots::tests::test_epoch_snapshot_manager_debug_redacts_inner ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_epoch_snapshot_debug_redacts_sensitive_data ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_hydration_skipped_for_memory_storage ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_epoch_snapshot_manager_inner_debug_shows_counts ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_is_better_candidate_earlier_timestamp_wins ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_create_snapshot_generates_unique_name ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_is_better_candidate_larger_id_loses_on_same_timestamp ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_is_better_candidate_smaller_id_wins_on_same_timestamp ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_is_better_candidate_later_timestamp_loses ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_is_better_candidate_same_content_hash_returns_false ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_is_better_candidate_wrong_epoch_returns_false ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_new_creates_manager_with_retention_count ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_is_better_candidate_unknown_group_returns_false ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_new_with_zero_retention ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_memory_storage_not_tracked_for_hydration ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_remove_group_is_idempotent ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_remove_group_clears_state ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_is_better_candidate_same_id_returns_false ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_rollback_to_nonexistent_epoch_fails ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_rollback_to_unknown_group_fails ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_snapshot_name_format ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_rollback_removes_subsequent_snapshots ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_snapshots_isolated_per_group ... ok
[INFO] [stdout] test epoch_snapshots::tests::test_snapshot_retention_pruning ... ok
[INFO] [stdout] test error::tests::test_error_debug ... ok
[INFO] [stdout] test error::tests::test_error_display_messages ... ok
[INFO] [stdout] test error::tests::test_error_equality ... ok
[INFO] [stdout] test error::tests::test_from_utf8_error_conversion ... ok
[INFO] [stdout] test error::tests::test_identity_change_not_allowed_error ... ok
[INFO] [stdout] test error::tests::test_key_package_identity_mismatch_error ... ok
[INFO] [stdout] test error::tests::test_snapshot_creation_failed ... ok
[INFO] [stdout] test error::tests::test_process_message_wrong_epoch ... ok
[INFO] [stdout] test error::tests::test_own_commit_pending ... ok
[INFO] [stdout] test error::tests::test_storage_error_conversion ... ok
[INFO] [stdout] test error::tests::test_unexpected_event_error ... ok
[INFO] [stdout] test extension::group_image::tests::test_encrypted_hash_calculation ... ok
[INFO] [stdout] test extension::group_image::tests::test_hash_verification_backward_compatibility_none ... ok
[INFO] [stdout] test extension::group_image::tests::test_derive_upload_keypair_different_keys ... ok
[INFO] [stdout] test extension::group_image::tests::test_hash_verification_failure_wrong_blob ... ok
[INFO] [stdout] test extension::group_image::tests::test_decrypt_with_wrong_nonce ... ok
[INFO] [stdout] test extension::group_image::tests::test_encrypt_decrypt_roundtrip ... ok
[INFO] [stdout] test extension::group_image::tests::test_decrypt_with_wrong_key ... ok
[INFO] [stdout] test extension::group_image::tests::test_derive_upload_keypair_deterministic ... ok
[INFO] [stdout] test extension::group_image::tests::test_migrate_v1_to_v2_corrupted_data ... ok
[INFO] [stdout] test extension::group_image::tests::test_custom_size_limits ... ok
[INFO] [stdout] test extension::group_image::tests::test_v2_encryption_and_upload_derivation ... ok
[INFO] [stdout] test extension::group_image::tests::test_hash_verification_success ... ok
[INFO] [stdout] test extension::group_image::tests::test_v2_encryption_uses_seed_derivation ... ok
[INFO] [stdout] test extension::group_image::tests::test_migrate_v1_to_v2_wrong_key ... ok
[INFO] [stdout] test extension::types::tests::test_admin_pubkey_operations ... ok
[INFO] [stdout] test extension::group_image::tests::test_v2_upload_keypair_derivation ... ok
[INFO] [stdout] test extension::types::tests::test_description_operations ... ok
[INFO] [stdout] test extension::group_image::tests::test_hash_verification_failure_wrong_hash ... ok
[INFO] [stdout] test extension::types::tests::test_deserialize_bytes_invalid_data ... ok
[INFO] [stdout] test extension::types::tests::test_deserialize_bytes_rejects_trailing_bytes ... ok
[INFO] [stdout] test extension::types::tests::test_deserialize_bytes ... ok
[INFO] [stdout] test extension::group_image::tests::test_tampering_detection ... ok
[INFO] [stdout] test extension::group_image::tests::test_v1_backward_compatibility_decryption ... ok
[INFO] [stdout] test extension::types::tests::test_image_operations ... ok
[INFO] [stdout] test extension::types::tests::test_group_id_operations ... ok
[INFO] [stdout] test extension::types::tests::test_migrate_to_v2 ... ok
[INFO] [stdout] test extension::types::tests::test_relay_operations ... ok
[INFO] [stdout] test extension::group_image::tests::test_v1_v2_keypair_difference ... ok
[INFO] [stdout] test extension::group_image::tests::test_v1_upload_keypair_derivation ... ok
[INFO] [stdout] test extension::types::tests::test_migrate_to_v2_already_v2 ... ok
[INFO] [stdout] test extension::types::tests::test_migrate_to_v2_all_none ... ok
[INFO] [stdout] test extension::types::tests::test_name_operations ... ok
[INFO] [stdout] test extension::types::tests::test_serialization_overhead ... ok
[INFO] [stdout] test extension::types::tests::test_new_and_getters ... ok
[INFO] [stdout] test extension::types::tests::test_new_fields_in_serialization ... ok
[INFO] [stdout] test extension::types::tests::test_version_field_roundtrip ... ok
[INFO] [stdout] test extension::types::tests::test_version_validation ... ok
[INFO] [stdout] test extension::types::tests::test_version_field_serialization ... ok
[INFO] [stdout] test extension::group_image::tests::test_migrate_v1_to_v2 ... ok
[INFO] [stdout] test extension::group_image::tests::test_prepare_with_default_options ... ok
[INFO] [stdout] test extension::group_image::tests::test_v1_v2_produce_different_encryption ... ok
[INFO] [stdout] test extension::group_image::tests::test_prepare_group_image_for_upload ... ok
[INFO] [stdout] test extension::group_image::tests::test_mime_type_validation ... ok
[INFO] [stdout] test extension::group_image::tests::test_upload_keypair_depends_only_on_upload_seed ... ok
[INFO] [stdout] test groups::tests::test_admin_update_prunes_previously_removed_member ... ok
[INFO] [stdout] test groups::tests::test_clear_pending_commit_group_not_found ... ok
[INFO] [stdout] test groups::tests::test_add_members_epoch_advancement ... ok
[INFO] [stdout] test extension::group_image::tests::test_v1_decryption_still_works_after_migration ... ok
[INFO] [stdout] test groups::tests::test_admin_update_rejects_all_non_member_admins ... ok
[INFO] [stdout] test groups::tests::test_clear_pending_commit_no_pending ... ok
[INFO] [stdout] test groups::tests::test_admin_update_rejects_empty_admin_set ... ok
[INFO] [stdout] test groups::tests::test_create_group_empty_invitees_yields_empty_required_capabilities ... ok
[INFO] [stdout] test groups::tests::test_create_group_all_legacy_invitees_yields_empty_required_capabilities ... ok
[INFO] [stdout] test groups::tests::test_create_single_member_group ... ok
[INFO] [stdout] test groups::tests::test_create_group_basic ... ok
[INFO] [stdout] test groups::tests::test_creator_validation_errors ... ok
[INFO] [stdout] test groups::tests::test_empty_group_operations ... ok
[INFO] [stdout] test groups::tests::test_clear_pending_commit_after_failed_remove ... ok
[INFO] [stdout] test groups::tests::test_admin_update_accepts_valid_member_admins ... ok
[INFO] [stdout] test extension::group_image::tests::test_migration_preserves_metadata ... ok
[INFO] [stdout] test groups::tests::test_admin_check_uses_mls_state_not_stale_storage ... ok
[INFO] [stdout] test groups::tests::test_add_members_rejects_legacy_kp_in_all_modern_group ... ok
[INFO] [stdout] test groups::tests::test_admin_check ... ok
[INFO] [stdout] test groups::tests::test_admin_update_prunes_non_member_admins ... ok
[INFO] [stdout] test groups::tests::test_create_group_all_modern_invitees_requires_self_remove ... ok
[INFO] [stdout] test groups::tests::test_get_groups_empty ... ok
[INFO] [stdout] test groups::tests::test_get_members_nonexistent_group ... ok
[INFO] [stdout] test groups::tests::test_get_nonexistent_group ... ok
[INFO] [stdout] test groups::tests::test_get_ratchet_tree_info_nonexistent_group ... ok
[INFO] [stdout] test groups::tests::test_exporter_secret_rederives_current_epoch_instead_of_trusting_storage ... ok
[INFO] [stdout] test groups::tests::test_clear_pending_commit_after_failed_add ... ok
[INFO] [stdout] test groups::tests::test_get_members ... ok
[INFO] [stdout] test groups::tests::test_admin_permission_checks ... ok
[INFO] [stdout] test groups::tests::test_create_group_with_invalid_invitee_kp_does_not_persist_signer ... ok
[INFO] [stdout] test groups::tests::test_group_required_proposals_missing_group ... ok
[INFO] [stdout] test groups::tests::test_create_group_mixed_invitees_drops_self_remove_requirement ... ok
[INFO] [stdout] test groups::tests::test_group_leaf_map_preserves_tree_holes ... ok
[INFO] [stdout] test groups::tests::test_get_own_pubkey ... ok
[INFO] [stdout] test groups::tests::test_get_groups_with_data ... ok
[INFO] [stdout] test groups::tests::test_group_required_proposals_survives_self_update ... ok
[INFO] [stdout] test groups::tests::test_get_relays ... ok
[INFO] [stdout] test groups::tests::test_get_ratchet_tree_info ... ok
[INFO] [stdout] test groups::tests::test_extension_updates_create_processed_messages ... ok
[INFO] [stdout] test groups::tests::test_get_ratchet_tree_info_deterministic ... ok
[INFO] [stdout] test groups::tests::test_group_required_proposals_all_modern ... ok
[INFO] [stdout] test groups::tests::test_group_member_capabilities_reports_per_member ... ok
[INFO] [stdout] test groups::tests::test_group_member_capabilities_is_callable_by_non_admins ... ok
[INFO] [stdout] test groups::tests::test_group_required_proposals_mixed_is_empty ... ok
[INFO] [stdout] test groups::tests::test_group_with_empty_name ... ok
[INFO] [stdout] test groups::tests::test_leave_group_records_processed_state ... ok
[INFO] [stdout] test groups::tests::test_group_with_long_name ... ok
[INFO] [stdout] test groups::tests::test_pending_added_members_pubkeys_empty ... ok
[INFO] [stdout] test groups::tests::test_group_metadata_updates ... ok
[INFO] [stdout] test groups::tests::test_pending_member_methods_group_not_found ... ok
[INFO] [stdout] test groups::tests::test_cannot_add_existing_member ... ok
[INFO] [stdout] test groups::tests::test_member_operation_state_consistency ... ok
[INFO] [stdout] test groups::tests::test_remove_members_group_not_found ... ok
[INFO] [stdout] test groups::tests::test_pending_member_changes_empty ... ok
[INFO] [stdout] test groups::tests::test_admin_in_mixed_group_demotes_then_leaves_legacy ... ok
[INFO] [stdout] test groups::tests::test_own_leaf_index_and_group_leaf_map ... ok
[INFO] [stdout] test groups::tests::test_member_self_removal ... ok
[INFO] [stdout] test groups::tests::test_leave_mixed_group_falls_back_to_legacy_remove ... ok
[INFO] [stdout] test groups::tests::test_remove_members_rejects_self_removal ... ok
[INFO] [stdout] test groups::tests::test_non_admin_cannot_update_group_extensions ... ok
[INFO] [stdout] test groups::tests::test_non_admin_cannot_add_members ... ok
[INFO] [stdout] test groups::tests::test_pubkey_for_member ... ok
[INFO] [stdout] test groups::tests::test_remove_non_admin_member_preserves_admin_list ... ok
[INFO] [stdout] test groups::tests::test_no_pending_member_changes_after_self_remove ... ok
[INFO] [stdout] test groups::tests::test_remove_members_no_matching_members ... ok
[INFO] [stdout] test groups::tests::test_remove_multiple_admins_strips_all ... ok
[INFO] [stdout] test groups::tests::test_remove_members_with_tree_holes ... ok
[INFO] [stdout] test groups::tests::test_self_update_group_not_found ... ok
[INFO] [stdout] test groups::tests::test_non_admin_cannot_self_demote ... ok
[INFO] [stdout] test groups::tests::test_non_admin_cannot_remove_members ... ok
[INFO] [stdout] test groups::tests::test_self_update_exporter_secret_rotation ... ok
[INFO] [stdout] test groups::tests::test_sync_group_metadata_error_cases ... ok
[INFO] [stdout] test groups::tests::test_formerly_mixed_group_can_be_upgraded_after_legacy_members_leave ... ok
[INFO] [stdout] test groups::tests::test_remove_members_strips_admin_status ... ok
[INFO] [stdout] test groups::tests::test_self_update_then_merge_no_orphan ... ok
[INFO] [stdout] test groups::tests::test_self_remove_restores_ciphertext_config_on_disk ... ok
[INFO] [stdout] test groups::tests::test_self_update_converges_wire_format_to_mixed_ciphertext ... ok
[INFO] [stdout] test groups::tests::test_stored_group_sync_after_all_operations ... ok
[INFO] [stdout] test groups::tests::test_remove_members_epoch_advancement ... ok
[INFO] [stdout] test groups::tests::test_sync_group_metadata_propagates_extension_parse_failure ... ok
[INFO] [stdout] test groups::tests::test_sync_group_metadata_from_mls ... ok
[INFO] [stdout] test groups::tests::test_operation_from_removed_member ... ok
[INFO] [stdout] test groups::tests::test_upgrade_group_capabilities_rejects_empty_set ... ok
[INFO] [stdout] test groups::tests::test_self_update_key_rotation ... ok
[INFO] [stdout] test groups::tests::test_self_update_success ... ok
[INFO] [stdout] test groups::tests::test_rapid_sequential_member_operations ... ok
[INFO] [stdout] test groups::tests::test_upgrade_group_capabilities_surfaces_blocker_identities ... ok
[INFO] [stdout] test groups::tests::test_self_update_then_clear_removes_orphaned_keypair ... ok
[INFO] [stdout] test groups::tests::test_sync_group_metadata_rejects_adminless_group_data ... ok
[INFO] [stdout] test groups::tests::test_validate_group_members ... ok
[INFO] [stdout] test key_packages::tests::test_ciphersuite_tag_format ... ok
[INFO] [stdout] test key_packages::tests::test_complete_tag_structure_mip00_compliance_without_protected ... ok
[INFO] [stdout] test key_packages::tests::test_complete_tag_structure_with_protected ... ok
[INFO] [stdout] test key_packages::tests::test_credential_generation ... ok
[INFO] [stdout] test groups::tests::test_self_update_refreshes_leaf_capabilities ... ok
[INFO] [stdout] test key_packages::tests::test_extensions_tag_format ... ok
[INFO] [stdout] test key_packages::tests::test_invalid_key_package_parsing ... ok
[INFO] [stdout] test groups::tests::test_upgrade_group_capabilities_rejects_already_required ... ok
[INFO] [stdout] test groups::tests::test_upgrade_group_capabilities_converges_wire_format_to_mixed_ciphertext ... ok
[INFO] [stdout] test key_packages::tests::test_key_package_base64_encoding ... ok
[INFO] [stdout] test key_packages::tests::test_key_package_deletion_by_hash_ref ... ok
[INFO] [stdout] test key_packages::tests::test_key_package_creation_and_parsing ... ok
[INFO] [stdout] test key_packages::tests::test_key_package_deletion ... ok
[INFO] [stdout] test key_packages::tests::test_new_credentials_use_32_byte_format ... ok
[INFO] [stdout] test key_packages::tests::test_parse_credential_identity ... ok
[INFO] [stdout] test groups::tests::test_upgrade_status_is_callable_by_non_admins ... ok
[INFO] [stdout] test groups::tests::test_upgrade_group_capabilities_rejects_non_admin ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_accepts_bare_legacy_kind_443 ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_fails_with_missing_tags ... ok
[INFO] [stdout] test key_packages::tests::test_i_tag_contains_valid_key_package_ref ... ok
[INFO] [stdout] test groups::tests::test_upgrade_status_all_required_for_all_modern_group ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_rejects_kind_30443_empty_d_tag ... ok
[INFO] [stdout] test groups::tests::test_update_group_data ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_rejects_kind_30443_missing_d_tag ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_accepts_matching_identity ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_rejects_kind_30443_invalid_hex_d_tag ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_rejects_kind_30443_wrong_length_d_tag ... ok
[INFO] [stdout] test key_packages::tests::test_key_package_parsing_base64 ... ok
[INFO] [stdout] test groups::tests::test_update_nostr_group_id ... ok
[INFO] [stdout] test key_packages::tests::test_protocol_version_tag_format ... ok
[INFO] [stdout] test key_packages::tests::test_validate_ciphersuite_tag_without_value ... ok
[INFO] [stdout] test key_packages::tests::test_validate_empty_i_tag ... ok
[INFO] [stdout] test groups::tests::test_upgrade_status_blocked_names_blocker ... ok
[INFO] [stdout] test key_packages::tests::test_validate_empty_string_i_tag ... ok
[INFO] [stdout] test key_packages::tests::test_validate_extensions_tag_without_values ... ok
[INFO] [stdout] test key_packages::tests::test_validate_invalid_i_tag_hex ... ok
[INFO] [stdout] test key_packages::tests::test_validate_invalid_ciphersuite_hex_format ... ok
[INFO] [stdout] test key_packages::tests::test_validate_invalid_protocol_version ... ok
[INFO] [stdout] test key_packages::tests::test_validate_invalid_extensions_hex_format ... ok
[INFO] [stdout] test key_packages::tests::test_validate_invalid_ciphersuite_values ... ok
[INFO] [stdout] test key_packages::tests::test_validate_missing_i_tag ... ok
[INFO] [stdout] test key_packages::tests::test_validate_missing_required_extensions ... ok
[INFO] [stdout] test key_packages::tests::test_validate_missing_mls_proposals_tag ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_with_valid_tags ... ok
[INFO] [stdout] test key_packages::tests::test_validate_missing_required_tags ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_accepts_legacy_kind_443 ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_extract_metadata_dimension_validation ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_animated_format_without_sanitize ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_animated_format_fallback ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_extract_metadata_from_decoded_image_dimension_validation ... ok
[INFO] [stdout] test key_packages::tests::test_validate_wrong_mls_proposals_value ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_rejects_identity_mismatch ... ok
[INFO] [stdout] test key_packages::tests::test_validate_uppercase_hex_values ... ok
[INFO] [stdout] test key_packages::tests::test_validate_relays_tag ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_generate_blurhash_produces_valid_hash ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_preflight_accepts_valid_image ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_extract_metadata_with_blurhash_generation ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_preflight_invalid_data ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_safe_raster_format_detection ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_strip_exif_invalid_data ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_strip_exif_png ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_strip_exif_unsupported_format ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_preflight_rejects_oversized_image ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_svg_passthrough_with_sanitize_requested ... ok
[INFO] [stdout] test media_processing::types::tests::test_media_processing_options_default ... ok
[INFO] [stdout] test media_processing::types::tests::test_image_metadata ... ok
[INFO] [stdout] test media_processing::types::tests::test_media_processing_options_validation_only ... ok
[INFO] [stdout] test media_processing::validation::tests::test_validate_file_size ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_strip_exif_jpeg ... ok
[INFO] [stdout] test key_packages::tests::test_last_resort_keypackage_lifecycle ... ok
[INFO] [stdout] test media_processing::validation::tests::test_validate_image_dimensions ... ok
[INFO] [stdout] test media_processing::validation::tests::test_validate_image_dimensions_decompression_bomb_protection ... ok
[INFO] [stdout] test media_processing::validation::tests::test_validate_group_image_mime_type_matches_data ... ok
[INFO] [stdout] test media_processing::validation::tests::test_detect_mime_type_from_data ... ok
[INFO] [stdout] test media_processing::validation::tests::test_validate_group_image_mime_type_strict ... ok
[INFO] [stdout] test key_packages::tests::test_parse_key_package_rejects_mismatched_i_tag ... ok
[INFO] [stdout] test key_packages::tests::test_validate_multi_value_i_tag ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_extract_metadata_from_encoded_image ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_is_better_candidate_same_id_returns_false ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_is_better_candidate_earlier_timestamp_wins ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_is_better_candidate_smaller_id_wins_on_same_timestamp ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_is_better_candidate_wrong_epoch_returns_false ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_rollback_removes_subsequent_snapshots ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_rollback_to_unknown_group_fails ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_snapshot_retention_pruning ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_snapshots_isolated_per_group ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_extract_metadata_from_decoded_image ... ok
[INFO] [stdout] test messages::commit::tests::epoch_snapshot_manager_tests::test_rollback_to_nonexistent_epoch_fails ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_extract_metadata_with_thumbhash_generation ... ok
[INFO] [stdout] test media_processing::metadata::tests::test_generate_thumbhash_produces_valid_hash ... ok
[INFO] [stdout] test groups::tests::test_upgrade_group_capabilities_toctou_already_required ... ok
[INFO] [stdout] test messages::application::tests::test_message_state_tracking ... ok
[INFO] [stdout] test groups::tests::test_upgrade_group_capabilities_concurrent_admins_converge ... ok
[INFO] [stdout] test messages::application::tests::test_message_from_non_member ... ok
[INFO] [stdout] test messages::application::tests::test_message_state_transitions ... ok
[INFO] [stdout] test messages::commit::tests::test_admin_add_member_commit_is_processed_successfully ... ok
[INFO] [stdout] test groups::tests::test_upgrade_status_available_after_legacy_member_leaves ... ok
[INFO] [stdout] test groups::tests::test_self_remove_group_remains_functional ... ok
[INFO] [stdout] test messages::application::tests::test_message_from_non_member_rejected ... ok
[INFO] [stdout] test messages::commit::tests::test_admin_extension_update_cannot_deplete_all_admins ... ok
[INFO] [stdout] test messages::commit::tests::test_admin_extension_update_commit_is_processed_successfully ... ok
[INFO] [stdout] test groups::tests::test_self_remove_auto_committed_no_pending_removals ... ok
[INFO] [stdout] test groups::tests::test_upgrade_group_capabilities_happy_path ... ok
[INFO] [stdout] test messages::commit::tests::test_add_member_commit_from_non_admin_is_rejected ... ok
[INFO] [stdout] test messages::create::tests::test_create_message_ensures_rumor_id ... ok
[INFO] [stdout] test messages::create::tests::test_create_message_for_nonexistent_group ... ok
[INFO] [stdout] test messages::create::tests::test_create_message_group_not_found ... ok
[INFO] [stdout] test messages::commit::tests::test_epoch_snapshot_retention_pruning ... ok
[INFO] [stdout] test messages::commit::tests::test_concurrent_commit_race_conditions ... ok
[INFO] [stdout] test messages::create::tests::test_complete_message_lifecycle_spec_compliance ... ok
[INFO] [stdout] test messages::create::tests::test_commit_event_structure_mip03_compliance ... ok
[INFO] [stdout] test messages::commit::tests::test_commit_race_event_id_tiebreaker ... ok
[INFO] [stdout] test messages::application::tests::test_multi_client_message_synchronization ... ok
[INFO] [stdout] test messages::create::tests::test_group_id_consistency_mip03 ... ok
[INFO] [stdout] test messages::create::tests::test_group_id_consistency_across_messages ... ok
[INFO] [stdout] test messages::create::tests::test_group_message_ephemeral_keys_mip03_compliance ... ok
[INFO] [stdout] test messages::commit::tests::test_commit_race_simple_better_commit_wins ... ok
[INFO] [stdout] test messages::commit::tests::test_removed_member_processed_message_saved_correctly ... ok
[INFO] [stdout] test messages::create::tests::test_group_message_event_structure_mip03_compliance ... ok
[INFO] [stdout] test messages::create::tests::test_message_content_preservation ... ok
[INFO] [stdout] test messages::crypto::tests::test_any_supported_format_accepts_legacy_nip44 ... ok
[INFO] [stdout] test messages::crypto::tests::test_chacha20poly1305_roundtrip ... ok
[INFO] [stdout] test messages::create::tests::test_create_message_updates_group_metadata ... ok
[INFO] [stdout] test messages::crypto::tests::test_decrypt_rejects_invalid_base64 ... ok
[INFO] [stdout] test messages::create::tests::test_message_content_encryption_mip03 ... ok
[INFO] [stdout] test messages::crypto::tests::test_chacha20poly1305_tampered_ciphertext_fails ... ok
[INFO] [stdout] test messages::crypto::tests::test_decrypt_rejects_too_short_content ... ok
[INFO] [stdout] test messages::create::tests::test_message_event_validation ... ok
[INFO] [stdout] test messages::crypto::tests::test_legacy_nip44_roundtrip ... ok
[INFO] [stdout] test messages::decryption::tests::test_legacy_nip44_wrapper_after_deadline_is_rejected ... ok
[INFO] [stdout] test messages::commit::tests::test_admin_remove_member_commit_is_processed_successfully ... ok
[INFO] [stdout] test messages::create::tests::test_message_with_long_content ... ok
[INFO] [stdout] test messages::create::tests::test_create_message_with_tags ... ok
[INFO] [stdout] test messages::create::tests::test_create_message_success ... ok
[INFO] [stdout] test messages::commit::tests::test_group_membership_preserved_after_rollback ... ok
[INFO] [stdout] test messages::decryption::tests::test_past_epoch_decryption_guards_epoch_zero ... ok
[INFO] [stdout] test messages::decryption::tests::test_current_epoch_legacy_aead_after_deadline_is_rejected ... ok
[INFO] [stdout] test messages::create::tests::test_message_with_empty_content ... ok
[INFO] [stdout] test messages::error_handling::tests::test_deduplication_only_blocks_failed_state ... ok
[INFO] [stdout] test messages::error_handling::tests::test_missing_group_id_tag_persists_failed_state ... ok
[INFO] [stdout] test messages::error_handling::tests::test_decryption_failure_persists_failed_state ... ok
[INFO] [stdout] test messages::decryption::tests::test_past_epoch_decryption_guards_zero_lookback ... ok
[INFO] [stdout] test messages::decryption::tests::test_past_epoch_application_message_fails_without_max_past_epochs ... ok
[INFO] [stdout] test messages::error_handling::tests::test_previously_failed_message_with_oversized_hex ... ok
[INFO] [stdout] test messages::error_handling::tests::test_previously_failed_message_with_undersized_hex ... ok
[INFO] [stdout] test messages::error_handling::tests::test_previously_failed_message_without_group_in_storage ... ok
[INFO] [stdout] test messages::error_handling::tests::test_record_failure_preserves_message_event_id ... ok
[INFO] [stdout] test messages::error_handling::tests::test_repeated_decryption_failure_rejected_immediately ... ok
[INFO] [stdout] test messages::commit::tests::test_message_invalidation_during_rollback ... ok
[INFO] [stdout] test messages::commit::tests::test_member_addition_commit ... ok
[INFO] [stdout] test messages::error_handling::tests::test_validation_failure_persists_failed_state ... ok
[INFO] [stdout] test messages::error_handling::tests::test_sanitize_error_reason_all_variants ... ok
[INFO] [stdout] test messages::error_handling::tests::test_repeated_validation_failure_rejected_immediately ... ok
[INFO] [stdout] test messages::error_handling::tests::test_previously_failed_message_with_invalid_hex_chars ... ok
[INFO] [stdout] test messages::create::tests::test_message_encryption_uniqueness ... ok
[INFO] [stdout] test messages::decryption::tests::test_current_epoch_compat_decrypts_transition_aead_with_legacy_secret ... ok
[INFO] [stdout] test messages::commit::tests::test_removed_member_processes_own_removal_commit ... ok
[INFO] [stdout] test messages::process::tests::test_message_processing_result_variants ... ok
[INFO] [stdout] test messages::error_handling::tests::test_previously_failed_message_with_group_in_storage ... ok
[INFO] [stdout] test messages::process::tests::test_process_message_idempotency ... ok
[INFO] [stdout] test messages::error_handling::tests::test_previously_failed_message_returns_unprocessable_not_error ... ok
[INFO] [stdout] test messages::process::tests::test_duplicate_message_from_multiple_relays ... ok
[INFO] [stdout] test messages::decryption::tests::test_past_epoch_application_message_succeeds_with_max_past_epochs ... ok
[INFO] [stdout] test messages::process::tests::test_merge_pending_commit_syncs_group_metadata ... ok
[INFO] [stdout] test messages::decryption::tests::test_past_epoch_legacy_aead_after_deadline_is_rejected ... ok
[INFO] [stdout] test messages::process::tests::test_message_processing_order_independence ... ok
[INFO] [stdout] test messages::process::tests::test_extended_offline_period_sync ... ok
[INFO] [stdout] test messages::process::tests::test_process_message_with_context_returns_own_sender_leaf_index_for_cached_message ... ok
[INFO] [stdout] test messages::process::tests::test_process_message_with_context_returns_own_sender_leaf_index_for_pending_commit ... ok
[INFO] [stdout] test messages::decryption::tests::test_past_epoch_compat_decrypts_legacy_nip44_with_stored_secret ... ok
[INFO] [stdout] test messages::commit::tests::test_commit_race_simple_rollback ... ok
[INFO] [stdout] test messages::proposal::tests::test_non_admin_extension_update_rejected_at_client ... ok
[INFO] [stdout] test messages::process::tests::test_single_client_message_idempotency ... ok
[INFO] [stdout] test messages::commit::tests::test_commit_race_worse_late_commit_rejected ... ok
[INFO] [stdout] test messages::process::tests::test_message_processing_across_epochs ... ok
[INFO] [stdout] test messages::tests::test_get_messages_nonexistent_group ... ok
[INFO] [stdout] test messages::proposal::tests::test_admin_leave_group_rejected ... ok
[INFO] [stdout] test messages::tests::test_get_messages_empty_group ... ok
[INFO] [stdout] test messages::process::tests::test_processing_own_commit_syncs_group_metadata ... ok
[INFO] [stdout] test messages::tests::test_get_messages_with_pagination ... ok
[INFO] [stdout] test messages::validation::tests::test_commit_update_path_identity_change_rejected ... ok
[INFO] [stdout] test messages::validation::tests::test_extract_group_id_rejects_invalid_hex ... ok
[INFO] [stdout] test messages::validation::tests::test_extract_group_id_rejects_missing_h_tag ... ok
[INFO] [stdout] test messages::process::tests::test_process_message_with_context_returns_sender_leaf_index ... ok
[INFO] [stdout] test messages::validation::tests::test_extract_group_id_rejects_multiple_h_tags ... ok
[INFO] [stdout] test messages::validation::tests::test_extract_group_id_rejects_wrong_length ... ok
[INFO] [stdout] test messages::validation::tests::test_identity_change_error_contains_identities ... ok
[INFO] [stdout] test messages::validation::tests::test_identity_change_not_allowed_error ... ok
[INFO] [stdout] test messages::proposal::tests::test_self_leave_proposal_auto_committed_by_admin ... ok
[INFO] [stdout] test messages::validation::tests::test_identity_parsing_for_validation ... ok
[INFO] [stdout] test messages::validation::tests::test_extract_group_id_returns_valid_id ... ok
[INFO] [stdout] test messages::validation::tests::test_author_verification_binding ... ok
[INFO] [stdout] test messages::validation::tests::test_malformed_message_handling ... ok
[INFO] [stdout] test messages::proposal::tests::test_receiving_side_rejects_admin_self_remove ... ok
[INFO] [stdout] test messages::validation::tests::test_multiple_identity_change_attempts_rejected ... ok
[INFO] [stdout] test messages::validation::tests::test_process_message_group_not_found ... ok
[INFO] [stdout] test messages::validation::tests::test_process_message_invalid_group_id_format ... ok
[INFO] [stdout] test messages::validation::tests::test_process_message_missing_group_id ... ok
[INFO] [stdout] test messages::validation::tests::test_process_message_missing_group_id_tag ... ok
[INFO] [stdout] test messages::validation::tests::test_process_message_wrong_event_kind ... ok
[INFO] [stdout] test messages::validation::tests::test_proposal_identity_change_rejected ... ok
[INFO] [stdout] test messages::validation::tests::test_process_message_invalid_kind ... ok
[INFO] [stdout] test messages::proposal::tests::test_self_update_commit_from_non_admin_is_allowed ... ok
[INFO] [stdout] test messages::tests::test_get_nonexistent_message ... ok
[INFO] [stdout] test messages::tests::test_get_message_not_found ... ok
[INFO] [stdout] test messages::validation::tests::test_add_members_commit_triggers_identity_validation ... ok
[INFO] [stdout] test messages::validation::tests::test_commit_processing_validates_identity_multi_member ... ok
[INFO] [stdout] test messages::validation::tests::test_identity_validation_detects_changes ... ok
[INFO] [stdout] test messages::process::tests::test_device_sync_after_member_changes ... ok
[INFO] [stdout] test messages::validation::tests::test_validate_identity_unchanged_rejects_different_identity ... ok
[INFO] [stdout] test messages::validation::tests::test_validate_identity_unchanged_same_identity ... ok
[INFO] [stdout] test messages::validation::tests::test_verify_rumor_author_mismatch ... ok
[INFO] [stdout] test messages::tests::test_get_messages_for_group ... ok
[INFO] [stdout] test tests::grease_tests::test_capabilities_include_grease_ciphersuites ... ok
[INFO] [stdout] test tests::grease_tests::test_capabilities_include_grease_credentials ... ok
[INFO] [stdout] test test_util::tests::test_helper_function_randomness ... ok
[INFO] [stdout] test tests::grease_tests::test_capabilities_include_grease_extensions ... ok
[INFO] [stdout] test tests::grease_tests::test_capabilities_still_include_real_values ... ok
[INFO] [stdout] test tests::grease_tests::test_different_mdk_instances_get_different_grease_values ... ok
[INFO] [stdout] test tests::grease_tests::test_capabilities_include_grease_proposals ... ok
[INFO] [stdout] test messages::validation::tests::test_self_update_preserves_identity_passes_validation ... ok
[INFO] [stdout] test messages::validation::tests::test_identity_validation_with_tls_serialization ... ok
[INFO] [stdout] test util::tests::test_content_encoding_tag_value_roundtrip ... ok
[INFO] [stdout] test util::tests::test_decode_invalid_content ... ok
[INFO] [stdout] test util::tests::test_encode_decode_roundtrip ... ok
[INFO] [stdout] test util::tests::test_from_tags_returns_encoding ... ok
[INFO] [stdout] test welcomes::tests::test_accept_nonexistent_welcome ... ok
[INFO] [stdout] test welcomes::tests::test_failed_welcome_retry_returns_original_error ... ok
[INFO] [stdout] test welcomes::tests::test_get_pending_welcomes_empty ... ok
[INFO] [stdout] test messages::validation::tests::test_validate_event_rejects_future_timestamp ... ok
[INFO] [stdout] test messages::validation::tests::test_validate_proposal_identity_non_update_proposals ... ok
[INFO] [stdout] test messages::proposal::tests::test_non_admin_empty_self_update_commit_succeeds ... ok
[INFO] [stdout] test messages::validation::tests::test_validate_event_rejects_old_timestamp ... ok
[INFO] [stdout] test messages::validation::tests::test_staged_commit_identity_validation_logic ... ok
[INFO] [stdout] test welcomes::tests::test_process_welcome_invalid_message ... ok
[INFO] [stdout] test messages::validation::tests::test_validate_event_accepts_valid_timestamp ... ok
[INFO] [stdout] test messages::validation::tests::test_identity_validation_across_epochs ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_content_validation_mip02 ... ok
[INFO] [stdout] test tests::sender_ratchet_tests::test_custom_config_is_applied ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_processing_flow ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_relays_tag_content ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_structure_consistency ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_references_correct_keypackage ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_validation_rejects_invalid_events ... ok
[INFO] [stdout] test welcomes::tests::test_leave_group ... ok
[INFO] [stdout] test welcomes::tests::test_multiple_welcomes_for_multiple_members ... ok
[INFO] [stdout] test welcomes::tests::test_process_welcome_missing_rumor_id ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_event_structure_mip02_compliance ... ok
[INFO] [stdout] test tests::sender_ratchet_tests::test_low_tolerance_rejects_distant_messages ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_processing_error_recovery ... ok
[INFO] [stdout] test welcomes::tests::test_welcome_validation_accepts_missing_client_tag ... ok
[INFO] [stdout] test messages::validation::tests::test_remove_members_commit_triggers_identity_validation ... ok
[INFO] [stdout] test messages::proposal::tests::test_self_remove_proposal_auto_committed_by_non_admin ... ok
[INFO] [stdout] test welcomes::tests::test_get_pending_welcomes_with_pagination ... ok
[INFO] [stdout] test messages::validation::tests::test_sequential_commits_identity_validation ... ok
[INFO] [stdout] test messages::decryption::tests::test_epoch_lookback_limits ... ok
[INFO] [stdout] test messages::error_handling::tests::test_commit_race_rollback_enables_message_retry ... ok
[INFO] [stdout] test tests::sender_ratchet_tests::test_high_tolerance_allows_reordered_messages ... ok
[INFO] [stdout] test welcomes::tests::test_large_group_welcome_size_limits ... ok
[INFO] [stderr]      Running tests/storage_traits_cross.rs (/opt/rustwide/target/debug/deps/storage_traits_cross-2b81d5acb7701a6f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 428 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.32s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test test_replace_relays_basic_consistency ... ok
[INFO] [stdout] test test_replace_relays_error_consistency ... ok
[INFO] [stdout] test test_exporter_secret_pruning_consistency ... ok
[INFO] [stdout] test test_replace_relays_sequence_consistency ... ok
[INFO] [stderr]      Running tests/storage_traits_memory.rs (/opt/rustwide/target/debug/deps/storage_traits_memory-b0024669040fc748)
[INFO] [stdout] test test_exporter_secret_label_isolation_consistency ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test test_messages_error_for_nonexistent_group ... ok
[INFO] [stdout] test test_admins_error_for_nonexistent_group ... ok
[INFO] [stdout] test test_groups_needing_self_update ... ok
[INFO] [stdout] test test_group_exporter_secret ... ok
[INFO] [stdout] test test_messages_for_group ... ok
[INFO] [stdout] test test_exporter_secret_label_isolation ... ok
[INFO] [stdout] test test_group_edge_cases ... ok
[INFO] [stdout] test test_all_groups ... ok
[INFO] [stdout] test test_group_mip04_exporter_secret ... ok
[INFO] [stdout] test test_exporter_secret_pruning_by_epoch ... ok
[INFO] [stdout] test test_last_message ... ok
[INFO] [stdout] test test_processed_welcome ... ok
[INFO] [stdout] test test_messages_sort_order ... ok
[INFO] [stdout] test test_messages_sort_order_pagination ... ok
[INFO] [stdout] test test_admins ... ok
[INFO] [stdout] test test_save_and_find_message ... ok
[INFO] [stdout] test test_replace_group_relays_error_cases ... ok
[INFO] [stdout] test test_save_and_find_welcome ... ok
[INFO] [stdout] test test_replace_group_relays_comprehensive ... ok
[INFO] [stdout] test test_replace_group_relays_duplicate_handling ... ok
[INFO] [stdout] test test_processed_message ... ok
[INFO] [stdout] test test_replace_relays_edge_cases ... ok
[INFO] [stdout] test test_group_relays_error_for_nonexistent_group ... ok
[INFO] [stdout] test test_basic_group_relays ... ok
[INFO] [stdout] test test_save_and_find_group ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/storage_traits_sqlite.rs (/opt/rustwide/target/debug/deps/storage_traits_sqlite-01fdb9e27f4d843f)
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test test_exporter_secret_label_isolation ... ok
[INFO] [stdout] test test_basic_group_relays ... ok
[INFO] [stdout] test test_all_groups ... ok
[INFO] [stdout] test test_group_edge_cases ... ok
[INFO] [stdout] test test_admins_error_for_nonexistent_group ... ok
[INFO] [stdout] test test_last_message ... ok
[INFO] [stdout] test test_messages_error_for_nonexistent_group ... ok
[INFO] [stdout] test test_group_mip04_exporter_secret ... ok
[INFO] [stdout] test test_admins ... ok
[INFO] [stdout] test test_exporter_secret_pruning_by_epoch ... ok
[INFO] [stdout] test test_messages_for_group ... ok
[INFO] [stdout] test test_group_exporter_secret ... ok
[INFO] [stdout] test test_group_relays_error_for_nonexistent_group ... ok
[INFO] [stdout] test test_messages_sort_order ... ok
[INFO] [stdout] test test_groups_needing_self_update ... ok
[INFO] [stdout] test test_messages_sort_order_pagination ... ok
[INFO] [stdout] test test_processed_welcome ... ok
[INFO] [stdout] test test_processed_message ... ok
[INFO] [stdout] test test_replace_group_relays_comprehensive ... ok
[INFO] [stdout] test test_replace_group_relays_error_cases ... ok
[INFO] [stdout] test test_save_and_find_welcome ... ok
[INFO] [stdout] test test_save_and_find_message ... ok
[INFO] [stdout] test test_save_and_find_group ... ok
[INFO] [stdout] test test_replace_group_relays_duplicate_handling ... ok
[INFO] [stdout] test test_replace_relays_edge_cases ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests mdk_core
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test src/extension/group_image.rs - extension::group_image::decrypt_group_image (line 217) ... ignored
[INFO] [stdout] test src/extension/group_image.rs - extension::group_image::derive_upload_keypair (line 321) ... ignored
[INFO] [stdout] test src/extension/group_image.rs - extension::group_image::migrate_group_image_v1_to_v2 (line 571) ... ignored
[INFO] [stdout] test src/extension/group_image.rs - extension::group_image::prepare_group_image_for_upload (line 387) ... ignored
[INFO] [stdout] test src/extension/group_image.rs - extension::group_image::prepare_group_image_for_upload_with_options (line 446) ... ignored
[INFO] [stdout] test src/extension/types.rs - extension::types::NostrGroupDataExtension::group_image_encryption_data (line 444) ... ignored
[INFO] [stdout] test src/extension/types.rs - extension::types::NostrGroupDataExtension::migrate_to_v2 (line 383) ... ignored
[INFO] [stdout] test src/groups.rs - groups::MDK<Storage>::update_group_data (line 1364) ... ignored
[INFO] [stdout] test src/key_packages.rs - key_packages::MDK<Storage>::parse_key_package (line 318) - compile ... ok
[INFO] [stdout] test src/messages/mod.rs - messages::MDK<Storage>::get_messages (line 250) ... ignored
[INFO] [stdout] test src/welcomes.rs - welcomes::MDK<Storage>::get_pending_welcomes (line 61) ... ignored
[INFO] [stdout] test src/lib.rs - MDK<Storage>::builder (line 359) - compile ... ok
[INFO] [stdout] test src/lib.rs - MdkBuilder<Storage>::with_config (line 232) - compile ... ok
[INFO] [stdout] test src/lib.rs - MDK<Storage>::new (line 373) - compile ... ok
[INFO] [stdout] test src/lib.rs - MdkBuilder (line 196) - compile ... ok
[INFO] [stdout] test src/prelude.rs - prelude (line 11) ... ok
[INFO] [stdout] test src/lib.rs - MdkConfig (line 60) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 10 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.46s; merged doctests compilation took 2.44s
[INFO] running `Command { std: "docker" "inspect" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b", kill_on_drop: false }`
[INFO] [stdout] b029f5bb1e5d28cad6390452348c9df9a38008109a977523389ebf82892e7c9b
