CI: SUCCESS heartwood

Table of Contents

Run log

Plan, inside VM without network

plan: Executor starts
After 0.00 seconds at 2026-04-23 20:11:32ZProgram: ambient-execute-plan
Version: 0.14.0@c37ec71
plan: Runnable plan
After 0.00 seconds at 2026-04-23 20:11:32Z
steps:
- action: mkdir
  pathname: /ci
- action: mkdir
  pathname: /ci/artifacts
- action: tar_extract
  archive: /dev/vdc
  directory: /ci/src
- action: tar_extract
  archive: /dev/vdf
  directory: /ci/deps
- action: tar_extract
  archive: /dev/vde
  directory: /ci/cache
- action: shell
  shell: ln -sf /ci /workspace
- action: shell
  shell: git config --global user.name 'Ambient CI'
- action: shell
  shell: git config --global user.email ambient@example.com
- action: cargo_fmt
- action: cargo_clippy
- action: cargo_build
- action: cargo_test
- action: shell
  shell: |
    # Because of a (temporary) limitation in Ambient, we need to set
    # these variables manually. Once Ambient manages environment
    # variables better, these can be deleted.
    export CARGO_TARGET_DIR=/workspace/cache
    export CARGO_HOME=/workspace/deps
    export HOME=/root
    export PATH="/root/.cargo/bin:$PATH"
    export RUSTDOCFLAGS='-D warnings'

    cargo doc --workspace --no-deps --all-features
- action: shell
  shell: |
    # Because of a (temporary) limitation in Ambient, we need to set
    # these variables manually. Once Ambient manages environment
    # variables better, these can be deleted.
    export CARGO_TARGET_DIR=/workspace/cache
    export CARGO_HOME=/workspace/deps
    export HOME=/root
    export PATH="/root/.cargo/bin:$PATH"

    # These are based on debian/control.
    export DEBEMAIL=liw@liw.fi
    export DEBFULLNAME="Lars Wirzenius"

    # Clean up after tests and documentation building. The Debian
    # package building tools do not want changes outside the
    # `debian` directory, compared to what is committed to Git, from
    # which the "upstream tarball" is created.
    git reset --hard
    git clean -fdx
    git status --ignored

    # Update debian/changelog with a new version so that every run
    # creates a newer version. This avoids us having to update the
    # file manually for every CI run.
    V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')"
    T="$(date -u "+%Y%m%dT%H%M%S")"
    version="$V.ci$T-1"
    dch -v "$version" "CI build under Ambient."
    dch -r ''
- action: deb
  packages: .
- action: tar_create
  archive: /dev/vde
  directory: /ci/cache
- action: tar_create
  archive: /dev/vdd
  directory: /ci/artifacts
executor_drive: /dev/vdb
source_drive: /dev/vdc
artifact_drive: /dev/vdd
cache_drive: /dev/vde
deps_drive: /dev/vdf
workspace_dir: /ci
source_dir: /ci/src
deps_dir: /ci/deps
cache_dir: /ci/cache
artifacts_dir: /ci/artifacts
envs: {}
plan: Successful action mkdir: /ci
After 0.00 seconds at 2026-04-23 20:11:32Z
  • plan: Start action mkdir: /ci
    After 0.00 seconds at 2026-04-23 20:11:32Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
  • plan: Action succeeded mkdir: /ci
    After 0.00 seconds at 2026-04-23 20:11:32Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
plan: Successful action mkdir: /ci/artifacts
After 0.00 seconds at 2026-04-23 20:11:32Z
  • plan: Start action mkdir: /ci/artifacts
    After 0.00 seconds at 2026-04-23 20:11:32Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
  • plan: Action succeeded mkdir: /ci/artifacts
    After 0.00 seconds at 2026-04-23 20:11:32Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
plan: Successful action tar_extract
After 0.00 seconds at 2026-04-23 20:11:32Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-04-23 20:11:32Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-04-23 20:11:32Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
plan: Successful action tar_extract
After 0.15 seconds at 2026-04-23 20:11:32Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-04-23 20:11:32Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-04-23 20:11:34Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
plan: Successful action tar_extract
After 2.40 seconds at 2026-04-23 20:11:34Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-04-23 20:11:34Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-04-23 20:11:49Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
plan: Successful action shell: ln -sf /ci /workspace
After 17.29 seconds at 2026-04-23 20:11:49Z
  • plan: Start action shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-04-23 20:11:49Z
    • bash
    • -c
    • set -xeuo pipefail ln -sf /ci /workspace
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Exit code: 0
    Stderr:
    + ln -sf /ci /workspace
    
  • plan: Action succeeded shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
plan: Successful action shell: git config --global user.name 'Ambient CI'
After 17.30 seconds at 2026-04-23 20:11:49Z
  • plan: Start action shell: git config --global user.name 'Ambient CI'
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-04-23 20:11:49Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.name 'Ambient CI'
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Exit code: 0
    Stderr:
    + git config --global user.name 'Ambient CI'
    
  • plan: Action succeeded shell: git config --global user.name 'Ambient CI'
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
plan: Successful action shell: git config --global user.email ambient@example.com
After 17.32 seconds at 2026-04-23 20:11:49Z
  • plan: Start action shell: git config --global user.email ambient@example.com
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-04-23 20:11:49Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.email ambient@example.com
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Exit code: 0
    Stderr:
    + git config --global user.email ambient@example.com
    
  • plan: Action succeeded shell: git config --global user.email ambient@example.com
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
plan: Successful action cargo_fmt
After 17.34 seconds at 2026-04-23 20:11:49Z
  • plan: Start action cargo_fmt
    After 0.00 seconds at 2026-04-23 20:11:49Z
    CargoFmt(
        CargoFmt,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:11:49Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:49Z
    Exit code: 0
    Stdout:
    cargo 1.90.0 (840b83a10 2025-07-30)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:11:49Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:50Z
    Exit code: 0
    Stdout:
    clippy 0.1.90 (1159e78c47 2025-09-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-04-23 20:11:50Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:50Z
    Exit code: 0
    Stdout:
    rustc 1.90.0 (1159e78c4 2025-09-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:11:50Z
    • cargo
    • fmt
    • --check
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:51Z
    Exit code: 0
  • plan: Action succeeded cargo_fmt
    After 0.00 seconds at 2026-04-23 20:11:51Z
    CargoFmt(
        CargoFmt,
    )
plan: Successful action cargo_clippy
After 18.54 seconds at 2026-04-23 20:11:51Z
  • plan: Start action cargo_clippy
    After 0.00 seconds at 2026-04-23 20:11:51Z
    CargoClippy(
        CargoClippy,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:11:51Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:51Z
    Exit code: 0
    Stdout:
    cargo 1.90.0 (840b83a10 2025-07-30)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:11:51Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:51Z
    Exit code: 0
    Stdout:
    clippy 0.1.90 (1159e78c47 2025-09-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-04-23 20:11:51Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:11:51Z
    Exit code: 0
    Stdout:
    rustc 1.90.0 (1159e78c4 2025-09-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:11:51Z
    • cargo
    • clippy
    • --offline
    • --locked
    • --workspace
    • --all-targets
    • --no-deps
    • --
    • --deny
    • warnings
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:12:03Z
    Exit code: 0
    Stderr:
        Checking radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)
        Checking radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)
        Checking radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)
        Checking radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)
        Checking radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)
       Compiling radicle v0.23.0 (/ci/src/crates/radicle)
        Checking radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)
        Checking radicle-core v0.2.0 (/ci/src/crates/radicle-core)
        Checking radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)
        Checking radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)
       Compiling radicle-node v0.19.0 (/ci/src/crates/radicle-node)
       Compiling radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)
        Checking radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)
        Checking radicle-term v0.17.0 (/ci/src/crates/radicle-term)
       Compiling radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)
        Checking radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)
        Checking radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)
        Checking radicle-cli-test v0.13.0 (/ci/src/crates/radicle-cli-test)
        Checking radicle-schemars v0.7.0 (/ci/src/crates/radicle-schemars)
        Checking radicle-windows v0.1.0 (/ci/src/crates/radicle-windows)
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.25s
    
  • plan: Action succeeded cargo_clippy
    After 0.00 seconds at 2026-04-23 20:12:03Z
    CargoClippy(
        CargoClippy,
    )
plan: Successful action cargo_build
After 31.13 seconds at 2026-04-23 20:12:03Z
  • plan: Start action cargo_build
    After 0.00 seconds at 2026-04-23 20:12:03Z
    CargoBuild(
        CargoBuild,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:12:03Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:12:03Z
    Exit code: 0
    Stdout:
    cargo 1.90.0 (840b83a10 2025-07-30)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:12:03Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:12:03Z
    Exit code: 0
    Stdout:
    clippy 0.1.90 (1159e78c47 2025-09-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-04-23 20:12:03Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:12:03Z
    Exit code: 0
    Stdout:
    rustc 1.90.0 (1159e78c4 2025-09-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:12:03Z
    • cargo
    • build
    • --offline
    • --locked
    • --workspace
    • --all-targets
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:12:46Z
    Exit code: 0
    Stderr:
       Compiling radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)
       Compiling radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)
       Compiling radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)
       Compiling radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)
       Compiling radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)
       Compiling radicle v0.23.0 (/ci/src/crates/radicle)
       Compiling radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)
       Compiling radicle-core v0.2.0 (/ci/src/crates/radicle-core)
       Compiling radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)
       Compiling radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)
       Compiling radicle-node v0.19.0 (/ci/src/crates/radicle-node)
       Compiling radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)
       Compiling radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)
       Compiling radicle-term v0.17.0 (/ci/src/crates/radicle-term)
       Compiling radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)
       Compiling radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)
       Compiling radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)
       Compiling radicle-cli-test v0.13.0 (/ci/src/crates/radicle-cli-test)
       Compiling radicle-schemars v0.7.0 (/ci/src/crates/radicle-schemars)
       Compiling radicle-windows v0.1.0 (/ci/src/crates/radicle-windows)
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.03s
    
  • plan: Action succeeded cargo_build
    After 0.00 seconds at 2026-04-23 20:12:46Z
    CargoBuild(
        CargoBuild,
    )
plan: Successful action cargo_test
After 73.47 seconds at 2026-04-23 20:12:46Z
  • plan: Start action cargo_test
    After 0.00 seconds at 2026-04-23 20:12:46Z
    CargoTest(
        CargoTest,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:12:46Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:12:46Z
    Exit code: 0
    Stdout:
    cargo 1.90.0 (840b83a10 2025-07-30)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:12:46Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:12:46Z
    Exit code: 0
    Stdout:
    clippy 0.1.90 (1159e78c47 2025-09-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-04-23 20:12:46Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:12:46Z
    Exit code: 0
    Stdout:
    rustc 1.90.0 (1159e78c4 2025-09-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-04-23 20:12:46Z
    • cargo
    • test
    • --offline
    • --locked
    • --workspace
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:17:51Z
    Exit code: 0
    Stdout:
    running 330 tests
    test canonical::formatter::test::ascii_control_characters ... ok
    test canonical::formatter::test::ordered_nested_object ... ok
    test canonical::formatter::test::securesystemslib_asserts ... ok
    test cob::cache::migrations::_2::tests::test_migration_2 ... ok
    test cob::cache::migrations::_2::tests::test_patch_json_deserialization ... ok
    test cob::cache::tests::test_check_version ... ok
    test cob::cache::tests::test_migrate_to ... ok
    test cob::common::test::test_color ... ok
    test cob::common::test::test_emojis ... ok
    test cob::common::test::test_title ... ok
    test cob::identity::test::prop_json_eq_str ... ok
    test cob::identity::test::test_identity_redact_revision ... ok
    test cob::identity::test::test_identity_reject_concurrent ... ok
    test cob::identity::test::test_identity_remove_delegate_concurrent ... ok
    test cob::identity::test::test_identity_updates ... ok
    test cob::identity::test::test_identity_update_rejected ... ok
    test cob::identity::test::test_identity_updates_concurrent ... ok
    test cob::identity::test::test_identity_updates_concurrent_outdated ... ok
    test cob::issue::cache::tests::test_counts ... ok
    test cob::issue::cache::tests::test_get ... ok
    test cob::issue::cache::tests::test_is_empty ... ok
    test cob::issue::cache::tests::test_list ... ok
    test cob::issue::cache::tests::test_list_by_status ... ok
    test cob::issue::cache::tests::test_remove ... ok
    test cob::identity::test::test_valid_identity ... ok
    test cob::issue::test::test_embeds ... ok
    test cob::issue::test::test_embeds_edit ... ok
    test cob::issue::test::test_invalid_actions ... ok
    test cob::issue::test::test_concurrency ... ok
    test cob::issue::test::test_invalid_cob ... ok
    test cob::issue::test::test_invalid_tx ... ok
    test cob::issue::test::test_invalid_tx_reference ... ok
    test cob::issue::test::test_issue_all ... ok
    test cob::issue::test::test_issue_comment ... ok
    test cob::issue::test::test_issue_comment_redact ... ok
    test cob::issue::test::test_issue_create_and_assign ... ok
    test cob::issue::test::test_issue_create_and_change_state ... ok
    test cob::issue::test::test_issue_create_and_get ... ok
    test cob::issue::test::test_issue_create_and_unassign ... ok
    test cob::issue::test::test_issue_create_and_reassign ... ok
    test cob::issue::test::test_issue_edit ... ok
    test cob::issue::test::test_issue_edit_description ... ok
    test cob::issue::test::test_issue_multilines ... ok
    test cob::issue::test::test_issue_label ... ok
    test cob::issue::test::test_issue_react ... ok
    test cob::issue::test::test_issue_state_serde ... ok
    test cob::issue::test::test_ordering ... ok
    test cob::patch::actions::test::test_review_edit ... ok
    test cob::issue::test::test_issue_reply ... ok
    test cob::patch::cache::tests::test_counts ... ok
    test cob::patch::cache::tests::test_get ... ok
    test cob::patch::cache::tests::test_is_empty ... ok
    test cob::patch::cache::tests::test_list ... ok
    test cob::patch::cache::tests::test_list_by_status ... ok
    test cob::patch::cache::tests::test_remove ... ok
    test cob::patch::encoding::review::test::test_review_deserialize_summary_migration_null_summary ... ok
    test cob::patch::encoding::review::test::test_review_deserialize_summary_migration_with_summary ... ok
    test cob::patch::encoding::review::test::test_review_deserialize_summary_migration_without_summary ... ok
    test cob::patch::encoding::review::test::test_review_deserialize_summary_v2 ... ok
    test cob::patch::encoding::review::test::test_review_summary ... ok
    test cob::patch::test::test_json ... ok
    test cob::patch::test::test_json_serialization ... ok
    test cob::patch::test::test_patch_create_and_get ... ok
    test cob::patch::test::test_patch_discussion ... ok
    test cob::patch::test::test_patch_merge ... ok
    test cob::patch::test::test_patch_redact ... ok
    test cob::patch::test::test_patch_review ... ok
    test cob::patch::test::test_patch_review_comment ... ok
    test cob::patch::test::test_patch_review_duplicate ... ok
    test cob::patch::test::test_patch_review_edit ... ok
    test cob::patch::test::test_patch_review_edit_comment ... ok
    test cob::patch::test::test_patch_review_remove_summary ... ok
    test cob::patch::test::test_patch_review_revision_redact ... ok
    test cob::patch::test::test_patch_update ... ok
    test cob::patch::test::test_reactions_json_serialization ... ok
    test cob::patch::test::test_revision_edit_redact ... ok
    test cob::patch::test::test_revision_reaction ... ok
    test cob::patch::test::test_revision_review_merge_redacted ... ok
    test cob::stream::tests::test_all_from ... ok
    test cob::stream::tests::test_all_from_until ... ok
    test cob::stream::tests::test_all_until ... ok
    test cob::stream::tests::test_from_until ... ok
    test cob::stream::tests::test_regression_from_until ... ok
    test cob::thread::tests::prop_ordering ... ok
    test cob::thread::tests::test_comment_edit_missing ... ok
    test cob::thread::tests::test_comment_edit_redacted ... ok
    test cob::thread::tests::test_comment_redact_missing ... ok
    test cob::thread::tests::test_duplicate_comments ... ok
    test cob::thread::tests::test_edit_comment ... ok
    test cob::thread::tests::test_redact_comment ... ok
    test cob::thread::tests::test_timeline ... ok
    test git::canonical::protect::tests::refs_rad ... ok
    test git::canonical::protect::tests::refs_rad_id ... ok
    test git::canonical::protect::tests::refs_radieschen ... ok
    test git::canonical::quorum::test::merge_base_commutative ... ok
    test git::canonical::quorum::test::test_merge_bases ... ok
    test git::canonical::rules::tests::test_canonical ... ok
    test git::canonical::rules::tests::test_deserialization ... ok
    test git::canonical::rules::tests::test_deserialize_extensions ... ok
    test git::canonical::rules::tests::test_order ... ok
    test git::canonical::rules::tests::test_roundtrip ... ok
    test git::canonical::rules::tests::test_rule_validate_failures ... ok
    test git::canonical::rules::tests::test_rule_validate_success ... ok
    test git::canonical::rules::tests::test_special_branches ... ok
    test git::canonical::tests::test_commit_quorum_fork_of_a_fork ... ok
    test git::canonical::tests::test_commit_quorum_forked_merge_commits ... ok
    test git::canonical::tests::test_commit_quorum_groups ... ok
    test git::canonical::tests::test_commit_quorum_linear ... ok
    test git::canonical::tests::test_commit_quorum_merges ... ok
    test git::canonical::tests::test_commit_quorum_single ... ok
    test git::canonical::tests::test_commit_quorum_three_way_fork ... ok
    test git::canonical::tests::test_commit_quorum_two_way_fork ... ok
    test git::canonical::tests::test_quorum_different_types ... ok
    test git::canonical::tests::test_quorum_properties ... ok
    test git::canonical::tests::test_tag_quorum ... ok
    test git::test::test_version_from_str ... ok
    test git::test::test_version_ord ... ok
    test identity::did::test::test_did_encode_decode ... ok
    test identity::did::test::test_did_vectors ... ok
    test cob::patch::cache::tests::test_find_by_revision ... ok
    test identity::doc::test::test_canonical_doc ... ok
    test identity::doc::test::test_canonical_example ... ok
    test identity::doc::test::test_duplicate_dids ... ok
    test identity::doc::test::test_future_version_error ... ok
    test identity::doc::test::test_is_valid_version ... ok
    test identity::doc::test::test_max_delegates ... ok
    test identity::doc::test::test_not_found ... ok
    test identity::doc::test::test_parse_version ... ok
    test identity::doc::test::test_visibility_json ... ok
    test identity::doc::update::test::test_can_update_crefs ... ok
    test identity::doc::update::test::test_cannot_include_default_branch_rule ... ok
    test identity::doc::update::test::test_default_branch_rule_exists_after_verification ... ok
    test identity::project::test::test_project_name ... ok
    test node::address::store::test::test_alias ... ok
    test node::address::store::test::test_disconnected ... ok
    test node::address::store::test::test_disconnected_ban ... ok
    test node::address::store::test::test_empty ... ok
    test node::address::store::test::test_entries ... ok
    test node::address::store::test::test_get_none ... ok
    test node::address::store::test::test_insert_and_get ... ok
    test node::address::store::test::test_insert_and_remove ... ok
    test node::address::store::test::test_insert_and_update ... ok
    test node::address::store::test::test_insert_duplicate ... ok
    test node::address::store::test::test_node_aliases ... ok
    test node::address::store::test::test_remove_nothing ... ok
    test node::command::test::command_result ... ok
    test node::config::test::deserialize_migrating_scope ... ok
    test node::config::test::fetch_level_min ... ok
    test node::config::test::onion_absent ... ok
    test node::config::test::onion_null ... ok
    test node::config::test::partial ... ok
    test node::config::test::regression_ipv6_address_brackets ... ok
    test node::config::test::regression_ipv6_address_no_brackets ... ok
    test node::config::test::serialize_migrating_scope ... ok
    test node::config::test::user_agent_custom ... ok
    test node::config::test::user_agent_default ... ok
    test node::config::test::user_agent_default_explicit ... ok
    test node::config::test::user_agent_opt_out ... ok
    test node::db::config::test::database_config_valid_combinations ... ok
    test node::db::config::test::invalid ... ok
    test node::db::test::migration_8::all_ipv6_formatted_dns_addresses_are_retyped ... ok
    test node::db::test::migration_8::dns_address_starting_with_bracket_but_missing_closing_bracket_colon_is_unaffected ... ok
    test node::db::test::migration_8::dns_address_with_bracket_not_at_start_is_unaffected ... ok
    test node::db::test::migration_8::ipv4_address_is_unaffected ... ok
    test node::db::test::migration_8::ipv6_formatted_dns_address_is_deleted_when_correct_ipv6_row_already_exists ... ok
    test node::db::test::migration_8::ipv6_formatted_dns_address_is_retyped_to_ipv6 ... ok
    test node::db::test::migration_8::migration_applies_to_all_nodes ... ok
    test node::db::test::migration_8::plain_dns_hostname_without_brackets_is_unaffected ... ok
    test node::db::test::migration_8::retype_preserves_address_metadata ... ok
    test node::db::test::test_version ... ok
    test node::features::test::test_operations ... ok
    test node::notifications::store::test::test_branch_notifications ... ok
    test node::notifications::store::test::test_clear ... ok
    test node::notifications::store::test::test_cob_notifications ... ok
    test node::notifications::store::test::test_counts_by_repo ... ok
    test node::notifications::store::test::test_duplicate_notifications ... ok
    test node::notifications::store::test::test_notification_status ... ok
    test node::policy::store::test::test_follow_and_unfollow_node ... ok
    test node::policy::store::test::test_node_aliases ... ok
    test node::policy::store::test::test_node_policies ... ok
    test node::policy::store::test::test_node_policy ... ok
    test node::policy::store::test::test_repo_policies ... ok
    test node::policy::store::test::test_repo_policy ... ok
    test node::policy::store::test::test_seed_and_unseed_repo ... ok
    test node::policy::store::test::test_update_alias ... ok
    test node::policy::store::test::test_update_scope ... ok
    test node::refs::store::test::test_count ... ok
    test node::refs::store::test::test_set_and_delete ... ok
    test node::refs::store::test::test_set_and_get ... ok
    test node::routing::test::test_count ... ok
    test node::routing::test::test_entries ... ok
    test node::routing::test::test_insert_and_get ... ok
    test node::routing::test::test_insert_and_get_resources ... ok
    test node::routing::test::test_insert_and_remove ... ok
    test node::routing::test::test_insert_duplicate ... ok
    test node::routing::test::test_insert_existing_updated_time ... ok
    test node::routing::test::test_len ... ok
    test node::routing::test::test_prune ... ok
    test node::routing::test::test_remove_many ... ok
    test node::routing::test::test_remove_redundant ... ok
    test node::routing::test::test_update_existing_multi ... ok
    test node::sync::announce::test::all_synced_nodes_are_preferred_seeds ... ok
    test node::sync::announce::test::announcer_adapts_target_to_reach ... ok
    test node::sync::announce::test::announcer_preferred_seeds_or_replica_factor ... ok
    test node::sync::announce::test::announcer_reached_max_replication_target ... ok
    test node::sync::announce::test::announcer_reached_min_replication_target ... ok
    test node::sync::announce::test::announcer_reached_preferred_seeds ... ok
    test node::sync::announce::test::announcer_synced_with_unknown_node ... ok
    test node::sync::announce::test::announcer_timed_out ... ok
    test node::sync::announce::test::announcer_with_replication_factor_zero_and_preferred_seeds ... ok
    test node::sync::announce::test::cannot_construct_announcer ... ok
    test node::sync::announce::test::construct_node_appears_in_multiple_input_sets ... ok
    test node::sync::announce::test::construct_only_preferred_seeds_provided ... ok
    test node::sync::announce::test::invariant_progress_should_match_state ... ok
    test node::sync::announce::test::local_node_in_multiple_sets ... ok
    test node::sync::announce::test::local_node_in_preferred_seeds ... ok
    test node::sync::announce::test::local_node_in_synced_set ... ok
    test node::sync::announce::test::local_node_in_unsynced_set ... ok
    test node::sync::announce::test::local_node_only_in_all_sets_results_in_no_seeds_error ... ok
    test node::sync::announce::test::preferred_seeds_already_synced ... ok
    test node::sync::announce::test::synced_with_local_node_is_ignored ... ok
    test node::sync::announce::test::synced_with_same_node_multiple_times ... ok
    test node::sync::announce::test::timed_out_after_reaching_success ... ok
    test node::sync::fetch::test::all_nodes_are_candidates ... ok
    test node::sync::fetch::test::all_nodes_are_fetchable ... ok
    test node::sync::fetch::test::could_not_reach_target ... ok
    test node::sync::fetch::test::ignores_duplicates_and_local_node ... ok
    test node::sync::fetch::test::preferred_seeds_target_returned_over_replicas ... ok
    test node::sync::fetch::test::reaches_target_of_max_replicas ... ok
    test node::sync::fetch::test::reaches_target_of_preferred_seeds ... ok
    test node::sync::fetch::test::reaches_target_of_replicas ... ok
    test node::sync::test::ensure_replicas_construction ... ok
    test node::sync::test::replicas_constrain_to ... ok
    test node::test::test_address ... ok
    test node::test::test_alias ... ok
    test node::test::test_command_result ... ok
    test node::test::test_user_agent ... ok
    test node::timestamp::tests::test_timestamp_max ... ok
    test identity::doc::test::prop_encode_decode ... ok
    test profile::test::canonicalize_home ... ok
    test profile::test::test_config ... ok
    test rad::tests::test_checkout ... ok
    test rad::tests::test_fork ... ok
    test rad::tests::test_init ... ok
    test storage::git::tests::test_references_of ... ok
    test storage::git::tests::test_sign_refs ... ok
    test storage::git::transport::local::url::test::test_url_parse ... ok
    test storage::git::transport::local::url::test::test_url_to_string ... ok
    test storage::git::transport::remote::url::test::test_url_parse ... ok
    test profile::config::test::schema ... ok
    test storage::refs::sigrefs::property::idempotent ... ok
    test storage::refs::sigrefs::read::test::commit_reader::identity_root_error ... ok
    test storage::refs::sigrefs::read::test::commit_reader::missing_commit ... ok
    test storage::refs::sigrefs::read::test::commit_reader::read_ok ... ok
    test storage::refs::sigrefs::read::test::commit_reader::too_many_parents ... ok
    test storage::refs::sigrefs::read::test::commit_reader::tree_error ... ok
    test storage::refs::sigrefs::read::test::identity_root_reader::doc_blob_error ... ok
    test storage::refs::sigrefs::read::test::identity_root_reader::missing_identity ... ok
    test storage::refs::sigrefs::read::test::identity_root_reader::read_ok_none ... ok
    test storage::refs::sigrefs::read::test::identity_root_reader::read_ok_some ... ok
    test storage::refs::sigrefs::read::test::resolve_tip::find_reference_error ... ok
    test storage::refs::sigrefs::read::test::resolve_tip::missing_sigrefs ... ok
    test storage::refs::sigrefs::read::test::resolve_tip::resolve_tip_ok ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::detect_parent::root_without_parent ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::detect_parent::root_without_root ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::parent ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::restore ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::root ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::root_with_parent ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::head_commit_error ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::head_verify_mismatched_identity_error ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::head_verify_signature_error ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::invalid_parent ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_no_parent ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_parent ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_root ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::replay::alternating ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::replay::chain ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::replay::multiple ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::replay::root_at_head ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::single_commit ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::two_commits ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::walk_commit_error ... ok
    test storage::refs::sigrefs::read::test::signed_refs_reader::walk_verify_error ... ok
    test storage::refs::sigrefs::read::test::tree_reader::missing_both ... ok
    test storage::refs::sigrefs::read::test::tree_reader::missing_refs ... ok
    test storage::refs::sigrefs::read::test::tree_reader::missing_signature ... ok
    test storage::refs::sigrefs::read::test::tree_reader::parse_refs_error ... ok
    test storage::refs::sigrefs::read::test::tree_reader::parse_signature_error ... ok
    test storage::refs::sigrefs::read::test::tree_reader::read_ok ... ok
    test storage::refs::sigrefs::read::test::tree_reader::read_refs_error ... ok
    test storage::refs::sigrefs::read::test::tree_reader::read_signature_error ... ok
    test storage::refs::sigrefs::write::test::commit_writer::tree_error ... ok
    test storage::refs::sigrefs::write::test::commit_writer::write_commit_error ... ok
    test storage::refs::sigrefs::write::test::commit_writer::write_empty_refs ... ok
    test storage::refs::sigrefs::write::test::commit_writer::write_root_ok ... ok
    test storage::refs::sigrefs::write::test::commit_writer::write_with_parent_ok ... ok
    test storage::refs::sigrefs::write::test::head_reader::no_head ... ok
    test storage::refs::sigrefs::write::test::head_reader::read_ok ... ok
    test storage::refs::sigrefs::write::test::head_reader::reference_error ... ok
    test storage::refs::sigrefs::write::test::head_reader::refs_blob_error ... ok
    test storage::refs::sigrefs::write::test::head_reader::refs_blob_missing ... ok
    test storage::refs::sigrefs::write::test::head_reader::refs_parse_error ... ok
    test storage::refs::sigrefs::write::test::head_reader::signature_blob_error ... ok
    test storage::refs::sigrefs::write::test::head_reader::signature_blob_missing ... ok
    test storage::refs::sigrefs::write::test::head_reader::signature_parse_error ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::commit_error ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::head_error ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::never_write_rad_sigrefs ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::reference_error ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::unchanged ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::unchanged_force_writes_new_commit ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::write_empty_refs ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::write_root_ok ... ok
    test storage::refs::sigrefs::write::test::signed_refs_writer::write_with_parent_ok ... ok
    test storage::refs::sigrefs::write::test::tree_writer::sign_error ... ok
    test storage::refs::sigrefs::write::test::tree_writer::write_ok ... ok
    test storage::refs::sigrefs::write::test::tree_writer::write_tree_error ... ok
    test storage::refs::tests::prop_canonical_roundtrip ... ok
    test storage::refs::tests::test_rid_verification ... ok
    test storage::tests::test_storage ... ok
    test test::assert::test::assert_with_message ... ok
    test test::assert::test::test_assert_no_move ... ok
    test test::assert::test::test_assert_panic_0 - should panic ... ok
    test test::assert::test::test_assert_panic_1 - should panic ... ok
    test test::assert::test::test_assert_panic_2 - should panic ... ok
    test test::assert::test::test_assert_succeed ... ok
    test test::assert::test::test_panic_message ... ok
    test version::test::test_version ... ok
    test storage::refs::sigrefs::property::roundtrip ... ok
    
    test result: ok. 330 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.64s
    
    
    running 46 tests
    test commands::block::args::test::should_not_parse ... ok
    test commands::block::args::test::should_parse_nid ... ok
    test commands::block::args::test::should_parse_rid ... ok
    test commands::clone::args::test::should_parse_rid_non_urn ... ok
    test commands::clone::args::test::should_parse_rid_url ... ok
    test commands::clone::args::test::should_parse_rid_urn ... ok
    test commands::cob::args::test::should_allow_log_json_format ... ok
    test commands::cob::args::test::should_allow_log_pretty_format ... ok
    test commands::cob::args::test::should_allow_show_json_format ... ok
    test commands::cob::args::test::should_not_allow_show_pretty_format ... ok
    test commands::cob::args::test::should_allow_update_json_format ... ok
    test commands::fork::args::test::should_not_parse_rid_url ... ok
    test commands::fork::args::test::should_parse_rid_non_urn ... ok
    test commands::cob::args::test::should_not_allow_update_pretty_format ... ok
    test commands::fork::args::test::should_parse_rid_urn ... ok
    test commands::id::args::test::should_not_parse_into_payload - should panic ... ok
    test commands::id::args::test::should_not_clobber_payload_args ... ok
    test commands::id::args::test::should_not_parse_single_payload ... ok
    test commands::id::args::test::should_parse_into_payload ... ok
    test commands::id::args::test::should_not_parse_single_payloads ... ok
    test commands::id::args::test::should_parse_multiple_payloads ... ok
    test commands::init::args::test::should_not_parse_rid_url ... ok
    test commands::id::args::test::should_parse_single_payload ... ok
    test commands::init::args::test::should_parse_rid_non_urn ... ok
    test commands::inspect::test::test_tree ... ok
    test commands::patch::review::builder::tests::test_review_comments_basic ... ok
    test commands::init::args::test::should_parse_rid_urn ... ok
    test commands::patch::review::builder::tests::test_review_comments_multiline ... ok
    test commands::patch::review::builder::tests::test_review_comments_before ... ok
    test commands::patch::review::builder::tests::test_review_comments_split_hunk ... ok
    test commands::publish::args::test::should_not_parse_rid_url ... ok
    test commands::publish::args::test::should_parse_rid_non_urn ... ok
    test commands::publish::args::test::should_parse_rid_urn ... ok
    test commands::watch::args::test::should_parse_ref_str ... ok
    test git::pretty_diff::test::test_pretty ... ignored
    test git::ddiff::tests::diff_encode_decode_ddiff_hunk ... ok
    test git::unified_diff::test::test_diff_content_encode_decode_content ... ok
    test terminal::args::test::should_not_parse ... ok
    test git::unified_diff::test::test_diff_encode_decode_diff ... ok
    test terminal::args::test::should_parse_nid ... ok
    test terminal::args::test::should_parse_rid ... ok
    test terminal::format::test::test_bytes ... ok
    test terminal::format::test::test_strip_comments ... ok
    test terminal::patch::test::test_edit_display_message ... ok
    test terminal::patch::test::test_create_display_message ... ok
    test terminal::patch::test::test_update_display_message ... ok
    
    test result: ok. 45 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 115 tests
    test commands::checkout::rad_checkout ... ok
    test commands::clone::rad_clone ... ok
    test commands::clone::rad_clone_bare ... ok
    test commands::clone::rad_clone_all ... ok
    test commands::clone::rad_clone_connect ... ok
    test commands::clone::rad_clone_directory ... ok
    test commands::clone::rad_clone_scope ... ok
    test commands::clone::rad_clone_unknown ... ok
    test commands::clone::rad_clone_partial_fail ... ok
    test commands::clone::test_clone_without_seeds ... ok
    test commands::cob::rad_cob_log ... ok
    test commands::cob::rad_cob_migrate ... ok
    test commands::cob::rad_cob_multiset ... ok
    test commands::cob::rad_cob_operations ... ok
    test commands::cob::rad_cob_show ... ok
    test commands::cob::rad_cob_update_identity ... ok
    test commands::cob::rad_cob_update ... ok
    test commands::cob::test_cob_deletion ... ok
    test commands::cob::test_cob_replication ... ok
    test commands::git::git_push_and_fetch ... ok
    test commands::git::git_push_amend ... ok
    test commands::git::git_push_canonical_lightweight_tags ... ok
    test commands::git::git_push_canonical_annotated_tags ... ok
    test commands::git::git_push_diverge ... ok
    test commands::git::git_push_force_with_lease ... ok
    test commands::git::git_push_converge ... ok
    test commands::git::git_push_rollback ... ok
    test commands::git::git_tag ... ok
    test commands::id::rad_id_collaboration ... ignored, slow
    test commands::id::rad_id ... ok
    test commands::id::rad_id_conflict ... ok
    test commands::id::rad_id_private ... ok
    test commands::id::rad_id_multi_delegate ... ok
    test commands::id::rad_id_threshold ... ok
    test commands::id::rad_id_threshold_soft_fork ... ok
    test commands::id::rad_id_unknown_field ... ok
    test commands::id::rad_id_update_delete_field ... ok
    test commands::id::rad_id_unauthorized_delegate ... ok
    test commands::init::rad_init ... ignored, part of many other tests
    test commands::init::rad_init_bare ... ok
    test commands::init::rad_init_detached_head ... ok
    test commands::init::rad_init_existing ... ok
    test commands::init::rad_init_existing_bare ... ok
    test commands::init::rad_init_no_git ... ok
    test commands::inbox::rad_inbox ... ok
    test commands::init::rad_init_no_seed ... ok
    test commands::init::rad_init_private ... ok
    test commands::init::rad_init_private_clone ... ok
    test commands::init::rad_init_private_clone_seed ... ok
    test commands::init::rad_init_private_no_seed ... ok
    test commands::init::rad_init_private_seed ... ok
    test commands::init::rad_init_sync_not_connected ... ok
    test commands::init::rad_init_sync_preferred ... ok
    test commands::init::rad_init_sync_and_clone ... ok
    test commands::init::rad_init_with_existing_remote ... ok
    test commands::init::rad_publish ... ok
    test commands::issue::rad_issue ... ok
    test commands::init::rad_init_sync_timeout ... ok
    test commands::jj::rad_jj_bare ... ok
    test commands::jj::rad_jj_colocated_patch ... ok
    test commands::issue::rad_issue_list ... ok
    test commands::node::rad_node ... ok
    test commands::node::rad_node_connect ... ok
    test commands::patch::rad_merge_after_update ... ok
    test commands::node::rad_node_connect_without_address ... ok
    test commands::patch::rad_merge_no_ff ... ok
    test commands::patch::rad_merge_via_push ... ok
    test commands::patch::rad_patch_ahead_behind ... ok
    test commands::patch::rad_patch ... ok
    test commands::patch::rad_patch_checkout ... ok
    test commands::patch::rad_patch_change_base ... ok
    test commands::patch::rad_patch_checkout_revision ... ok
    test commands::patch::rad_patch_checkout_force ... ok
    test commands::patch::rad_patch_detached_head ... ok
    test commands::patch::rad_patch_diff ... ok
    test commands::patch::rad_patch_draft ... ok
    test commands::patch::rad_patch_delete ... ok
    test commands::patch::rad_patch_edit ... ok
    test commands::patch::rad_patch_fetch_2 ... ok
    test commands::patch::rad_patch_fetch_1 ... ok
    test commands::patch::rad_patch_merge_draft ... ok
    test commands::patch::rad_patch_open_explore ... ok
    test commands::patch::rad_patch_revert_merge ... ok
    test commands::patch::rad_patch_update ... ok
    test commands::patch::rad_patch_via_push ... ok
    test commands::patch::rad_patch_pull_update ... ok
    test commands::patch::rad_review_by_hunk ... ok
    test commands::policy::rad_block ... ok
    test commands::patch::rad_push_and_pull_patches ... ok
    test commands::policy::rad_seed_and_follow ... ok
    test commands::policy::rad_seed_policy_allow_no_scope ... ok
    test commands::policy::rad_seed_scope ... ok
    test commands::policy::rad_seed_many ... ok
    test commands::policy::rad_unseed ... ok
    test commands::policy::rad_unseed_many ... ok
    test commands::remote::rad_remote ... ok
    test commands::sync::rad_fetch ... ok
    test commands::sync::rad_sync ... ok
    test commands::sync::rad_sync_without_node ... ok
    test commands::utility::framework_home ... ok
    test commands::utility::rad_auth ... ok
    test commands::utility::rad_auth_errors ... ok
    test commands::utility::rad_clean ... ok
    test commands::sync::test_replication_via_seed ... ok
    test commands::utility::rad_diff ... ok
    test commands::utility::rad_config ... ok
    test commands::utility::rad_help ... ok
    test commands::utility::rad_inspect ... ok
    test commands::utility::rad_key_mismatch ... ok
    test commands::utility::rad_self ... ok
    test commands::utility::rad_warn_old_nodes ... ok
    test commands::watch::rad_watch ... ok
    test commands::utility::rad_fork ... ok
    test rad_remote ... ok
    test commands::workflow::rad_workflow ... ok
    
    test result: ok. 113 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 183.50s
    
    
    running 3 tests
    test tests::test_parse ... ok
    test tests::test_run ... ok
    test tests::test_example_spaced_brackets ... ok
    
    test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
    
    
    running 9 tests
    test object::tests::test_serde ... ok
    test tests::git::list_cobs ... ok
    test tests::git::roundtrip ... ok
    test tests::git::traverse_cobs ... ok
    test tests::invalid_parse_refstr ... ok
    test tests::parse_refstr ... ok
    test type_name::test::invalid_typenames ... ok
    test type_name::test::valid_typenames ... ok
    test tests::git::update_cob ... ok
    
    test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
    
    
    running 4 tests
    test repo::test::assert_prop_roundtrip_parse ... ok
    test repo::test::invalid ... ok
    test repo::test::valid ... ok
    test repo::serde_impls::test::assert_prop_roundtrip_serde_json ... ok
    
    test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
    
    
    running 11 tests
    test ssh::agent::test::test_agent_encoding_sign ... ok
    test ssh::agent::test::test_agent_encoding_remove ... ok
    test ssh::fmt::test::test_key ... ok
    test ssh::fmt::test::test_fingerprint ... ok
    test ssh::keystore::tests::test_init_no_passphrase ... ok
    test ssh::keystore::tests::test_signer ... ok
    test tests::prop_encode_decode ... ok
    test tests::prop_key_equality ... ok
    test tests::test_e25519_dh ... ok
    test tests::test_encode_decode ... ok
    test ssh::keystore::tests::test_init_passphrase ... ok
    
    test result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.27s
    
    
    running 20 tests
    test tests::test_contains ... ok
    test tests::test_cycle ... ok
    test tests::test_dependencies ... ok
    test tests::test_diamond ... ok
    test tests::test_fold_diamond ... ok
    test tests::test_fold_multiple_roots ... ok
    test tests::test_fold_reject ... ok
    test tests::test_complex ... ok
    test tests::test_fold_sorting_1 ... ok
    test tests::test_fold_sorting_2 ... ok
    test tests::test_get ... ok
    test tests::test_is_empty ... ok
    test tests::test_len ... ok
    test tests::test_merge_1 ... ok
    test tests::test_merge_2 ... ok
    test tests::test_prune_1 ... ok
    test tests::test_prune_2 ... ok
    test tests::test_prune_by_sorting ... ok
    test tests::test_remove ... ok
    test tests::test_siblings ... ok
    
    test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 1 test
    test stage::test::valid_refspecs ... ok
    
    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 24 tests
    test commit::parse::test::error::invalid_author ... ok
    test commit::parse::test::error::invalid_committer ... ok
    test commit::parse::test::error::invalid_format_continuation_without_preceding_header ... ok
    test commit::parse::test::error::invalid_parent ... ok
    test commit::parse::test::error::invalid_tree ... ok
    test commit::parse::test::error::missing_author ... ok
    test commit::parse::test::error::missing_committer ... ok
    test commit::parse::test::error::missing_header_body_separator ... ok
    test commit::parse::test::error::missing_tree_empty_header ... ok
    test commit::parse::test::error::missing_tree_wrong_first_line ... ok
    test commit::parse::test::success::commit_gpgsig_is_preserved_and_strip_removes_it ... ok
    test commit::parse::test::success::commit_last_paragraph_kept_in_message_when_not_all_trailers ... ok
    test commit::parse::test::success::commit_with_extra_headers ... ok
    test commit::parse::test::success::commit_with_multiline_gpgsig ... ok
    test commit::parse::test::success::commit_with_single_parent ... ok
    test commit::parse::test::success::commit_with_trailers ... ok
    test commit::parse::test::success::merge_commit ... ok
    test commit::parse::test::success::root_commit ... ok
    test commit::parse::test::success::roundtrip ... ok
    test commit::parse::test::unit::body_last_paragraph_not_trailers_stays_in_message ... ok
    test commit::parse::test::unit::body_no_paragraph_separator_means_no_trailers ... ok
    test commit::parse::test::unit::trailers_accepts_empty_input ... ok
    test commit::parse::test::unit::trailers_rejects_invalid_token_chars ... ok
    test commit::parse::test::unit::trailers_rejects_line_without_separator ... ok
    
    test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 9 tests
    test test::component ... ok
    test test::component_invalid - should panic ... ok
    test test::pattern ... ok
    test test::qualified ... ok
    test test::qualified_invalid - should panic ... ok
    test test::qualified_pattern ... ok
    test test::qualified_pattern_invalid - should panic ... ok
    test test::refname ... ok
    test test::refname_invalid - should panic ... ok
    
    test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 1 test
    test serde_impls::test::test_localtime ... ok
    
    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 79 tests
    test control::tests::test_control_socket ... ok
    test fingerprint::tests::matching ... ok
    test reactor::timer::tests::test_next ... ok
    test reactor::timer::tests::test_wake ... ok
    test reactor::timer::tests::test_wake_exact ... ok
    test control::tests::test_seed_unseed ... ok
    test tests::e2e::fetch_does_not_contain_rad_sigrefs_parent ... ok
    test tests::e2e::missing_default_branch ... ok
    test tests::e2e::missing_delegate_default_branch ... ok
    test tests::e2e::test_background_foreground_fetch ... ok
    test tests::e2e::test_block_active_connection ... ok
    test tests::e2e::test_block_prevents_connection ... ok
    test tests::e2e::test_block_prevents_fetch ... ok
    test tests::e2e::test_catchup_on_refs_announcements ... ok
    test tests::e2e::test_channel_reader_limit ... ok
    test tests::e2e::test_clone ... ok
    test tests::e2e::test_connection_crossing ... ok
    test tests::e2e::test_dont_fetch_owned_refs ... ok
    test tests::e2e::test_concurrent_fetches ... ok
    test tests::e2e::test_fetch_followed_remotes ... ok
    test tests::e2e::test_fetch_preserve_owned_refs ... ok
    test tests::e2e::test_fetch_emits_canonical_ref_update ... ok
    test tests::e2e::test_fetch_unseeded ... ok
    test tests::e2e::test_fetch_up_to_date ... ok
    test tests::e2e::test_inventory_sync_basic ... ok
    test tests::e2e::test_inventory_sync_bridge ... ok
    test tests::e2e::test_inventory_sync_ring ... ok
    test tests::e2e::test_large_fetch ... ok
    test tests::e2e::test_migrated_clone ... ok
    test tests::e2e::test_missing_remote ... ok
    test tests::e2e::test_inventory_sync_star ... ok
    test tests::e2e::test_multiple_offline_inits ... ok
    test tests::e2e::test_non_fastforward_identity_doc ... ok
    test tests::e2e::test_non_fastforward_sigrefs ... ok
    test tests::e2e::test_outdated_delegate_sigrefs ... ok
    test tests::e2e::test_outdated_sigrefs ... ok
    test tests::e2e::test_replication ... ok
    test tests::e2e::test_replication_invalid ... ok
    test tests::e2e::test_replication_ref_in_sigrefs ... ok
    test tests::test_announcement_message_amplification ... ok
    test tests::test_announcement_rebroadcast ... ok
    test tests::prop_inventory_exchange_dense ... ok
    test tests::test_announcement_rebroadcast_duplicates ... ok
    test tests::test_announcement_rebroadcast_timestamp_filtered ... ok
    test tests::test_connection_kept_alive ... ok
    test tests::test_announcement_relay ... ok
    test tests::test_disconnecting_unresponsive_peer ... ok
    test tests::test_fetch_missing_inventory_on_gossip ... ok
    test tests::test_fetch_missing_inventory_on_schedule ... ok
    test tests::test_inbound_connection ... ok
    test tests::test_inventory_decode ... ok
    test tests::test_init_and_seed ... ok
    test tests::test_inventory_relay ... ok
    test tests::test_inventory_relay_bad_timestamp ... ok
    test tests::test_inventory_sync ... ok
    test tests::test_maintain_connections ... ok
    test tests::test_maintain_connections_failed_attempt ... ok
    test tests::test_maintain_connections_transient ... ok
    test tests::test_outbound_connection ... ok
    test tests::test_inventory_pruning ... ok
    test tests::test_persistent_peer_connect ... ok
    test tests::test_persistent_peer_reconnect_success ... ok
    test tests::test_persistent_peer_reconnect_attempt ... ok
    test tests::test_ping_response ... ok
    test tests::test_queued_fetch_from_ann_same_rid ... ok
    test tests::test_queued_fetch_max_capacity ... ok
    test tests::test_queued_fetch_from_command_same_rid ... ok
    test tests::test_redundant_connect ... ok
    test tests::test_refs_announcement_fetch_trusted_no_inventory ... ok
    test tests::test_refs_announcement_followed ... ok
    test tests::test_refs_announcement_no_subscribe ... ok
    test tests::test_refs_announcement_offline ... ok
    test tests::test_refs_announcement_relay_private ... ok
    test tests::test_refs_announcement_relay_public ... ok
    test tests::test_seed_repo_subscribe ... ok
    test tests::test_refs_synced_event ... ok
    test wire::test::test_inventory_ann_with_extension ... ok
    test wire::test::test_pong_message_with_extension ... ok
    test tests::test_seeding ... ok
    
    test result: ok. 79 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 104.44s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 10 tests
    test fmt::test::fixture ... ok
    test fmt::test::git2 ... ok
    test fmt::test::gix ... ok
    test fmt::test::zero ... ok
    test git2::test::zero ... ok
    test gix::test::zero ... ok
    test str::test::fixture ... ok
    test str::test::git2_roundtrip ... ok
    test str::test::zero ... ok
    test str::test::gix_roundrip ... ok
    
    test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
    
    
    running 99 tests
    test deserializer::test::test_decode_next ... ok
    test deserializer::test::test_unparsed ... ok
    test deserializer::test::prop_decode_next ... ok
    test fetcher::service::tests::test_fetch_coalescing_different_refs ... ok
    test fetcher::test::queue::properties::capacity::bounded ... ok
    test fetcher::test::queue::properties::capacity::capacity_reached_returns_same_item ... ok
    test fetcher::test::queue::properties::capacity::rejection ... ok
    test fetcher::test::queue::properties::dequeue::drained_queue_returns_none ... ok
    test fetcher::test::queue::properties::dequeue::empty_queue_returns_none ... ok
    test fetcher::test::queue::properties::dequeue::enables_reenqueue ... ok
    test fetcher::test::queue::properties::capacity::restored_after_dequeue ... ok
    test fetcher::test::queue::properties::equality::reflexive ... ok
    test fetcher::test::queue::properties::equality::symmetric ... ok
    test fetcher::test::queue::properties::fifo::interleaved_operations ... ok
    test fetcher::test::queue::properties::fifo::ordering ... ok
    test fetcher::test::queue::properties::equality::transitive ... ok
    test fetcher::test::queue::properties::merge::combines_refs ... ok
    test fetcher::test::queue::properties::merge::different_rid_accepted ... ok
    test fetcher::test::queue::properties::merge::does_not_increase_queue_length ... ok
    test fetcher::test::queue::properties::merge::longer_timeout_preserved ... ok
    test fetcher::test::queue::properties::merge::empty_refs_fetches_all ... ok
    test fetcher::test::queue::properties::merge::succeed_when_at_capacity ... ok
    test fetcher::test::queue::unit::capacity_takes_precedence_over_merge_for_new_items ... ok
    test fetcher::test::queue::unit::empty_refs_items_can_be_equal ... ok
    test fetcher::test::queue::unit::max_timeout_accepted ... ok
    test fetcher::test::queue::unit::merge_preserves_position_in_queue ... ok
    test fetcher::test::queue::unit::zero_timeout_accepted ... ok
    test fetcher::test::state::command::cancel::cancellation_is_isolated ... ok
    test fetcher::test::state::command::cancel::non_existent_returns_unexpected ... ok
    test fetcher::test::state::command::cancel::ongoing_and_queued ... ok
    test fetcher::test::state::command::cancel::single_ongoing ... ok
    test fetcher::test::state::command::fetch::fetch_after_previous_completed ... ok
    test fetcher::test::state::command::fetch::fetch_at_capacity_enqueues ... ok
    test fetcher::test::state::command::fetch::fetch_different_repo_same_node_within_capacity ... ok
    test fetcher::test::state::command::fetch::fetch_duplicate_returns_already_fetching ... ok
    test fetcher::test::state::command::fetch::fetch_queue_merge_empty_refs_fetches_all ... ok
    test fetcher::test::state::command::fetch::fetch_queue_merge_takes_longer_timeout ... ok
    test fetcher::test::state::command::fetch::fetch_queue_merges_already_queued ... ok
    test fetcher::test::state::command::fetch::fetch_queue_rejected_capacity_reached ... ok
    test fetcher::test::state::command::fetch::fetch_same_repo_different_nodes_queues_second ... ok
    test fetcher::test::state::command::fetch::fetch_same_repo_different_refs_enqueues ... ok
    test fetcher::test::state::command::fetch::fetch_start_first_fetch_for_node ... ok
    test fetcher::test::queue::properties::merge::same_rid_merges_anywhere_in_queue ... ok
    test fetcher::test::state::command::fetched::complete_single_ongoing ... ok
    test fetcher::test::state::command::fetched::complete_one_of_multiple ... ok
    test fetcher::test::state::command::fetched::non_existent_returns_not_found ... ok
    test fetcher::test::state::command::fetched::complete_then_dequeue_fifo ... ok
    test fetcher::test::state::concurrent::fetched_then_cancel ... ok
    test fetcher::test::state::concurrent::interleaved_operations ... ok
    test fetcher::test::state::config::min_queue_size ... ok
    test fetcher::test::state::dequeue::cannot_dequeue_while_node_at_capacity ... ok
    test fetcher::test::state::dequeue::empty_queue_returns_none ... ok
    test fetcher::test::state::dequeue::maintains_fifo_order ... ok
    test fetcher::test::state::invariant::queue_integrity_after_merge ... ok
    test fetcher::test::state::config::high_concurrency ... ok
    test fetcher::test::state::multinode::independent_queues ... ok
    test service::filter::test::compatible ... ok
    test service::filter::test::test_parameters ... ok
    test service::filter::test::test_sizes ... ok
    test service::gossip::store::test::test_announced ... ok
    test service::limiter::test::test_limiter_different_rates ... ok
    test service::limiter::test::test_limiter_multi ... ok
    test service::limiter::test::test_limiter_refill ... ok
    test fetcher::test::state::multinode::high_count ... ok
    test service::message::tests::test_inventory_limit ... ok
    test service::message::tests::prop_refs_announcement_signing ... ok
    test service::message::tests::test_ref_remote_limit ... ok
    test wire::frame::test::test_encode_git_large ... ok
    test wire::frame::test::test_stream_id ... ok
    test service::message::tests::test_node_announcement_validate ... ok
    test wire::message::tests::prop_roundtrip_address ... ok
    test wire::message::tests::prop_roundtrip_message ... ok
    test wire::message::tests::prop_zero_bytes_encode_decode ... ok
    test wire::message::tests::test_inv_ann_max_size ... ok
    test wire::message::tests::test_node_ann_max_size ... ok
    test wire::message::tests::test_ping_encode_size_overflow - should panic ... ok
    test wire::message::tests::test_pingpong_encode_max_size ... ok
    test wire::message::tests::test_pong_encode_size_overflow - should panic ... ok
    test wire::message::tests::prop_message_decoder ... ok
    test wire::tests::prop_oid ... ok
    test wire::tests::prop_roundtrip_filter ... ok
    test wire::tests::prop_roundtrip_publickey ... ok
    test wire::tests::prop_roundtrip_refs ... ok
    test wire::tests::prop_roundtrip_repoid ... ok
    test wire::tests::prop_roundtrip_tuple ... ok
    test wire::tests::prop_roundtrip_u16 ... ok
    test wire::tests::prop_roundtrip_u32 ... ok
    test wire::tests::prop_roundtrip_u64 ... ok
    test wire::tests::prop_roundtrip_vec ... ok
    test wire::tests::prop_signature ... ok
    test wire::tests::prop_string ... ok
    test wire::tests::test_alias ... ok
    test wire::tests::test_bounded_vec_limit ... ok
    test wire::tests::test_filter_invalid ... ok
    test wire::tests::test_string ... ok
    test wire::varint::test::prop_roundtrip_varint ... ok
    test wire::varint::test::test_encode_overflow - should panic ... ok
    test wire::varint::test::test_encoding ... ok
    test wire::message::tests::test_refs_ann_max_size ... ok
    
    test result: ok. 99 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.20s
    
    
    running 12 tests
    test protocol::tests::test_capabilities ... ok
    test protocol::tests::test_empty ... ok
    test protocol::tests::test_fetch ... ok
    test protocol::tests::test_fetch_whitespace ... ok
    test protocol::tests::test_invalid ... ok
    test protocol::tests::test_list ... ok
    test protocol::tests::test_list_for_push ... ok
    test protocol::tests::test_option ... ok
    test protocol::tests::test_push ... ok
    test protocol::tests::test_option_whitespace_preservation ... ok
    test protocol::tests::test_push_delete ... ok
    test protocol::tests::test_push_force ... ok
    
    test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 21 tests
    test ansi::tests::colors_disabled ... ok
    test ansi::tests::colors_enabled ... ok
    test ansi::tests::wrapping ... ok
    test cell::test::test_width ... ok
    test element::test::test_spaced ... ok
    test element::test::test_width ... ok
    test table::test::test_table ... ok
    test element::test::test_truncate ... ok
    test table::test::test_table_border_maximized ... ok
    test table::test::test_table_border ... ok
    test table::test::test_table_truncate ... ok
    test table::test::test_table_border_truncated ... ok
    test table::test::test_table_unicode ... ok
    test table::test::test_table_unicode_truncate ... ok
    test table::test::test_truncate ... ok
    test textarea::test::test_wrapping_code_block ... ok
    test textarea::test::test_wrapping ... ok
    test textarea::test::test_wrapping_fenced_block ... ok
    test vstack::test::test_vstack ... ok
    test vstack::test::test_vstack_maximize ... ok
    test textarea::test::test_wrapping_paragraphs ... ok
    
    test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 1 test
    test crates/radicle/src/cob/patch/encoding/review.rs - cob::patch::encoding::review::Review (line 23) ... ignored
    
    test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 1 test
    test crates/radicle-cob/src/backend/stable.rs - backend::stable::with_advanced_timestamp (line 56) ... ignored
    
    test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 6 tests
    test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::max (line 96) ... ok
    test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::collect_from (line 30) ... ok
    test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::push (line 122) ... ok
    test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::truncate (line 50) ... ok
    test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::unbound (line 149) ... ok
    test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::with_capacity (line 66) ... ok
    
    test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 1 test
    test crates/radicle-term/src/table.rs - table (line 4) ... ok
    
    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 0 tests
    
    test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    Stderr:
        Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle-284bae2ddbc7a249)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_cli-2c524afd75038b2d)
         Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/rad-09fa8b6b92f963bf)
         Running tests/commands.rs (/ci/cache/cargo-target/debug/deps/commands-f12780f7d4c001d7)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_cli_test-eb16d72524d258cf)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_cob-6e6d599ab2b9d6d3)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_core-4336e90d66078914)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_crypto-bd6b2a9d3a72ece5)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_dag-05f7457e7194a495)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_fetch-b86dafb29fe0d411)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_git_metadata-7266929c438027dc)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_git_ref_format-b95a9bd0637298c8)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_localtime-9ecb37b1e50cb4e3)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_node-fe5d9d2dea5da7c1)
         Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/radicle_node-10a0b8a8721eac7f)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_oid-32b41d88203b7116)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_protocol-a4bf0c341b89fcf1)
         Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/git_remote_rad-878309aa2c710538)
         Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/radicle_schemars-6f7430e80541ad16)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_signals-edd60ee35e85748c)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_systemd-d0fb15a14ac3d4e9)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_term-51db4123a6bc434a)
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_windows-2c067555aa9e0165)
       Doc-tests radicle
       Doc-tests radicle_cli
       Doc-tests radicle_cli_test
       Doc-tests radicle_cob
       Doc-tests radicle_core
       Doc-tests radicle_crypto
       Doc-tests radicle_dag
       Doc-tests radicle_fetch
       Doc-tests radicle_git_metadata
       Doc-tests radicle_git_ref_format
       Doc-tests radicle_localtime
       Doc-tests radicle_node
       Doc-tests radicle_oid
       Doc-tests radicle_protocol
       Doc-tests radicle_signals
       Doc-tests radicle_systemd
       Doc-tests radicle_term
       Doc-tests radicle_windows
    
  • plan: Action succeeded cargo_test
    After 0.00 seconds at 2026-04-23 20:17:51Z
    CargoTest(
        CargoTest,
    )
plan: Successful action shell: # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" export RUSTDOCFLAGS='-D warnings' cargo doc --workspace --no-deps --all-features
After 379.34 seconds at 2026-04-23 20:17:51Z
  • plan: Start action shell: # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" export RUSTDOCFLAGS='-D warnings' cargo doc --workspace --no-deps --all-features
    After 0.00 seconds at 2026-04-23 20:17:51Z
    Shell(
        Shell {
            shell: "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport RUSTDOCFLAGS='-D warnings'\n\ncargo doc --workspace --no-deps --all-features\n",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-04-23 20:17:51Z
    • bash
    • -c
    • set -xeuo pipefail # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" export RUSTDOCFLAGS='-D warnings' cargo doc --workspace --no-deps --all-features
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:18:03Z
    Exit code: 0
    Stderr:
    + export CARGO_TARGET_DIR=/workspace/cache
    + CARGO_TARGET_DIR=/workspace/cache
    + export CARGO_HOME=/workspace/deps
    + CARGO_HOME=/workspace/deps
    + export HOME=/root
    + HOME=/root
    + export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + export 'RUSTDOCFLAGS=-D warnings'
    + RUSTDOCFLAGS='-D warnings'
    + cargo doc --workspace --no-deps --all-features
        Checking radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)
        Checking radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)
        Checking radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)
        Checking radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)
        Checking radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)
       Compiling radicle v0.23.0 (/ci/src/crates/radicle)
        Checking radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)
        Checking radicle-core v0.2.0 (/ci/src/crates/radicle-core)
        Checking radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)
        Checking radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)
       Compiling radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)
        Checking radicle-term v0.17.0 (/ci/src/crates/radicle-term)
       Compiling radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)
       Compiling radicle-node v0.19.0 (/ci/src/crates/radicle-node)
        Checking radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)
     Documenting radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)
     Documenting radicle-term v0.17.0 (/ci/src/crates/radicle-term)
     Documenting radicle v0.23.0 (/ci/src/crates/radicle)
        Checking radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)
        Checking radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)
     Documenting radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)
     Documenting radicle-node v0.19.0 (/ci/src/crates/radicle-node)
     Documenting radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)
     Documenting radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)
     Documenting radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)
     Documenting radicle-schemars v0.7.0 (/ci/src/crates/radicle-schemars)
     Documenting radicle-cli-test v0.13.0 (/ci/src/crates/radicle-cli-test)
     Documenting radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)
     Documenting radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)
     Documenting radicle-core v0.2.0 (/ci/src/crates/radicle-core)
     Documenting radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)
     Documenting radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)
     Documenting radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)
     Documenting radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)
     Documenting radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)
     Documenting radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)
     Documenting radicle-windows v0.1.0 (/ci/src/crates/radicle-windows)
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.73s
       Generated /workspace/cache/doc/radicle/index.html and 20 other files
    
  • plan: Action succeeded shell: # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" export RUSTDOCFLAGS='-D warnings' cargo doc --workspace --no-deps --all-features
    After 0.00 seconds at 2026-04-23 20:18:03Z
    Shell(
        Shell {
            shell: "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport RUSTDOCFLAGS='-D warnings'\n\ncargo doc --workspace --no-deps --all-features\n",
        },
    )
plan: Successful action shell: # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" # These are based on debian/control. export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" # Clean up after tests and documentation building. The Debian # package building tools do not want changes outside the # `debian` directory, compared to what is committed to Git, from # which the "upstream tarball" is created. git reset --hard git clean -fdx git status --ignored # Update debian/changelog with a new version so that every run # creates a newer version. This avoids us having to update the # file manually for every CI run. V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')" T="$(date -u "+%Y%m%dT%H%M%S")" version="$V.ci$T-1" dch -v "$version" "CI build under Ambient." dch -r ''
After 391.19 seconds at 2026-04-23 20:18:03Z
  • plan: Start action shell: # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" # These are based on debian/control. export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" # Clean up after tests and documentation building. The Debian # package building tools do not want changes outside the # `debian` directory, compared to what is committed to Git, from # which the "upstream tarball" is created. git reset --hard git clean -fdx git status --ignored # Update debian/changelog with a new version so that every run # creates a newer version. This avoids us having to update the # file manually for every CI run. V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')" T="$(date -u "+%Y%m%dT%H%M%S")" version="$V.ci$T-1" dch -v "$version" "CI build under Ambient." dch -r ''
    After 0.00 seconds at 2026-04-23 20:18:03Z
    Shell(
        Shell {
            shell: "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\n# These are based on debian/control.\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n\n# Clean up after tests and documentation building. The Debian\n# package building tools do not want changes outside the\n# `debian` directory, compared to what is committed to Git, from\n# which the \"upstream tarball\" is created.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\n# Update debian/changelog with a new version so that every run\n# creates a newer version. This avoids us having to update the\n# file manually for every CI run.\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-04-23 20:18:03Z
    • bash
    • -c
    • set -xeuo pipefail # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" # These are based on debian/control. export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" # Clean up after tests and documentation building. The Debian # package building tools do not want changes outside the # `debian` directory, compared to what is committed to Git, from # which the "upstream tarball" is created. git reset --hard git clean -fdx git status --ignored # Update debian/changelog with a new version so that every run # creates a newer version. This avoids us having to update the # file manually for every CI run. V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')" T="$(date -u "+%Y%m%dT%H%M%S")" version="$V.ci$T-1" dch -v "$version" "CI build under Ambient." dch -r ''
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:18:04Z
    Exit code: 0
    Stdout:
    HEAD is now at 878f0a1fc0 protocol: Minimize scope of `radicle::git::raw`
    HEAD detached at 878f0a1fc0
    nothing to commit, working tree clean
    
    Stderr:
    + export CARGO_TARGET_DIR=/workspace/cache
    + CARGO_TARGET_DIR=/workspace/cache
    + export CARGO_HOME=/workspace/deps
    + CARGO_HOME=/workspace/deps
    + export HOME=/root
    + HOME=/root
    + export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + export DEBEMAIL=liw@liw.fi
    + DEBEMAIL=liw@liw.fi
    + export 'DEBFULLNAME=Lars Wirzenius'
    + DEBFULLNAME='Lars Wirzenius'
    + git reset --hard
    + git clean -fdx
    + git status --ignored
    ++ dpkg-parsechangelog -SVersion
    ++ sed 's/-[^-]*$//'
    + V=1.2.1
    ++ date -u +%Y%m%dT%H%M%S
    + T=20260423T201803
    + version=1.2.1.ci20260423T201803-1
    + dch -v 1.2.1.ci20260423T201803-1 'CI build under Ambient.'
    + dch -r ''
    
  • plan: Action succeeded shell: # Because of a (temporary) limitation in Ambient, we need to set # these variables manually. Once Ambient manages environment # variables better, these can be deleted. export CARGO_TARGET_DIR=/workspace/cache export CARGO_HOME=/workspace/deps export HOME=/root export PATH="/root/.cargo/bin:$PATH" # These are based on debian/control. export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" # Clean up after tests and documentation building. The Debian # package building tools do not want changes outside the # `debian` directory, compared to what is committed to Git, from # which the "upstream tarball" is created. git reset --hard git clean -fdx git status --ignored # Update debian/changelog with a new version so that every run # creates a newer version. This avoids us having to update the # file manually for every CI run. V="$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')" T="$(date -u "+%Y%m%dT%H%M%S")" version="$V.ci$T-1" dch -v "$version" "CI build under Ambient." dch -r ''
    After 0.00 seconds at 2026-04-23 20:18:04Z
    Shell(
        Shell {
            shell: "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\n# These are based on debian/control.\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n\n# Clean up after tests and documentation building. The Debian\n# package building tools do not want changes outside the\n# `debian` directory, compared to what is committed to Git, from\n# which the \"upstream tarball\" is created.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\n# Update debian/changelog with a new version so that every run\n# creates a newer version. This avoids us having to update the\n# file manually for every CI run.\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n",
        },
    )
plan: Successful action deb
After 391.58 seconds at 2026-04-23 20:18:04Z
  • plan: Start action deb
    After 0.00 seconds at 2026-04-23 20:18:04Z
    Deb(
        Deb {
            packages: Some(
                ".",
            ),
        },
    )
  • plan: Start program /bin/bash
    After 0.00 seconds at 2026-04-23 20:18:04Z
    • /bin/bash
    • -c
    • #!/usr/bin/env bash set -xeuo pipefail echo "PATH at start: $PATH" export PATH="/root/.cargo/bin:$PATH" export CARGO_HOME=/ci/deps export DEBEMAIL=liw@liw.fi export DEBFULLNAME="Lars Wirzenius" /bin/env command -v cargo command -v rustc cargo --version rustc --version # Get name and version of source package. name="$(dpkg-parsechangelog -SSource)" version="$(dpkg-parsechangelog -SVersion)" # Get upstream version: everything before the last dash. uv="$(echo "$version" | sed 's/-[^-]*$//')" # Files that will be created. arch="$(dpkg --print-architecture)" orig="../${name}_${uv}.orig.tar.xz" deb="../${name}_${version}_${arch}.deb" changes="../${name}_${version}_${arch}.changes" # Create "upstream tarball". git archive HEAD | xz >"$orig" # Build package. dpkg-buildpackage -us -uc # Dump some information to make it easier to visually verify # everything looks OK. Also, test the package with the lintian tool. ls -l .. for x in ../*.deb; do dpkg -c "$x"; done # FIXME: disabled while this prevents radicle-native-ci deb from being built. # lintian -i --allow-root --fail-on warning ../*.changes # Move files to artifacts directory. mv ../*_* /ci/artifacts/.
  • plan: Program succeeded
    After 0.00 seconds at 2026-04-23 20:20:42Z
    Exit code: 0
    Stdout:
    PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    DEBFULLNAME=Lars Wirzenius
    CARGO_TARGET_DIR=/ci/cache/cargo-target
    PWD=/ci/src
    SYSTEMD_EXEC_PID=282
    HOME=/root
    LANG=C.UTF-8
    CARGO_HOME=/ci/deps
    DEBEMAIL=liw@liw.fi
    INVOCATION_ID=7d231c3f4d874aae824d330ad57a2956
    SHLVL=2
    JOURNAL_STREAM=8:15361
    PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    OLDPWD=/
    _=/bin/env
    /root/.cargo/bin/cargo
    /root/.cargo/bin/rustc
    cargo 1.90.0 (840b83a10 2025-07-30)
    rustc 1.90.0 (1159e78c4 2025-09-14)
    dpkg-buildpackage: info: source package radicle
    dpkg-buildpackage: info: source version 1.2.1.ci20260423T201803-1
    dpkg-buildpackage: info: source distribution unstable
    dpkg-buildpackage: info: source changed by Lars Wirzenius <liw@liw.fi>
    dpkg-buildpackage: info: host architecture amd64
    dh clean
       dh_clean
    dpkg-source: info: using source format '3.0 (quilt)'
    dpkg-source: info: building radicle using existing ./radicle_1.2.1.ci20260423T201803.orig.tar.xz
    dpkg-source: info: building radicle in radicle_1.2.1.ci20260423T201803-1.debian.tar.xz
    dpkg-source: info: building radicle in radicle_1.2.1.ci20260423T201803-1.dsc
    make: 'build' is up to date.
    dh binary
       dh_update_autotools_config
       dh_autoreconf
       debian/rules override_dh_auto_build
    make[1]: Entering directory '/ci/src'
    scripts/build-man-pages.sh . *.adoc
    Building git-remote-rad.1.adoc..
    Building rad-id.1.adoc..
    Building rad-patch.1.adoc..
    Building rad.1.adoc..
    Building radicle-node.1.adoc..
    make[1]: Leaving directory '/ci/src'
       debian/rules override_dh_auto_test
    make[1]: Entering directory '/ci/src'
    echo tests are disabled, for now
    tests are disabled, for now
    make[1]: Leaving directory '/ci/src'
       create-stamp debian/debhelper-build-stamp
       dh_testroot
       dh_prep
       debian/rules override_dh_auto_install
    make[1]: Entering directory '/ci/src'
    mkdir -p debian/radicle/usr
    cargo install --offline --locked --path=crates/radicle-cli --root=debian/radicle/usr
    cargo install --offline --locked --path=crates/radicle-node --root=debian/radicle/usr
    cargo install --offline --locked --path=crates/radicle-remote-helper --root=debian/radicle/usr
    find debian/radicle -name '.crates*' -delete
    make[1]: Leaving directory '/ci/src'
       dh_install
       dh_installdocs
       dh_installchangelogs
       dh_installman
       dh_lintian
       dh_perl
       dh_link
       dh_strip_nondeterminism
       dh_compress
       dh_fixperms
       dh_missing
       dh_strip
       dh_makeshlibs
       dh_shlibdeps
       dh_installdeb
       dh_gencontrol
       dh_md5sums
       dh_builddeb
    dpkg-deb: building package 'radicle' in '../radicle_1.2.1.ci20260423T201803-1_amd64.deb'.
    dpkg-genchanges: info: including full source code in upload
    dpkg-buildpackage: info: full upload (original source is included)
    total 13340
    drwxr-xr-x  2 root root     4096 Apr 23 20:11 artifacts
    drwxr-xr-x  5 root root     4096 Apr 23 07:59 cache
    drwxr-xr-x  3 root root     4096 Apr 23 20:17 deps
    -rw-r--r--  1 root root     2096 Apr 23 20:18 radicle_1.2.1.ci20260423T201803-1.debian.tar.xz
    -rw-r--r--  1 root root     1028 Apr 23 20:18 radicle_1.2.1.ci20260423T201803-1.dsc
    -rw-r--r--  1 root root     5907 Apr 23 20:20 radicle_1.2.1.ci20260423T201803-1_amd64.buildinfo
    -rw-r--r--  1 root root     2023 Apr 23 20:20 radicle_1.2.1.ci20260423T201803-1_amd64.changes
    -rw-r--r--  1 root root 12284536 Apr 23 20:20 radicle_1.2.1.ci20260423T201803-1_amd64.deb
    -rw-r--r--  1 root root  1333276 Apr 23 20:18 radicle_1.2.1.ci20260423T201803.orig.tar.xz
    drwxr-xr-x 14 root root     4096 Apr 23 20:18 src
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/bin/
    -rwxr-xr-x root/root   9245232 2026-04-23 20:18 ./usr/bin/git-remote-rad
    -rwxr-xr-x root/root  30980248 2026-04-23 20:18 ./usr/bin/rad
    -rwxr-xr-x root/root  13339352 2026-04-23 20:18 ./usr/bin/radicle-node
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/doc/
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/doc/radicle/
    -rw-r--r-- root/root       291 2026-04-23 20:18 ./usr/share/doc/radicle/changelog.Debian.gz
    -rw-r--r-- root/root     12326 2026-04-23 20:18 ./usr/share/doc/radicle/changelog.gz
    -rw-r--r-- root/root       357 2026-04-23 20:18 ./usr/share/doc/radicle/copyright
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/lintian/
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/lintian/overrides/
    -rw-r--r-- root/root       121 2026-04-23 20:18 ./usr/share/lintian/overrides/radicle
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/man/
    drwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/man/man1/
    -rw-r--r-- root/root       557 2026-04-23 20:18 ./usr/share/man/man1/git-remote-rad.1.gz
    -rw-r--r-- root/root      2701 2026-04-23 20:18 ./usr/share/man/man1/rad-id.1.gz
    -rw-r--r-- root/root      4362 2026-04-23 20:18 ./usr/share/man/man1/rad-patch.1.gz
    -rw-r--r-- root/root      3717 2026-04-23 20:18 ./usr/share/man/man1/rad.1.gz
    -rw-r--r-- root/root       493 2026-04-23 20:18 ./usr/share/man/man1/radicle-node.1.gz
    
    Stderr:
    + echo 'PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
    + export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    + export CARGO_HOME=/ci/deps
    + CARGO_HOME=/ci/deps
    + export DEBEMAIL=liw@liw.fi
    + DEBEMAIL=liw@liw.fi
    + export 'DEBFULLNAME=Lars Wirzenius'
    + DEBFULLNAME='Lars Wirzenius'
    + /bin/env
    + command -v cargo
    + command -v rustc
    + cargo --version
    + rustc --version
    ++ dpkg-parsechangelog -SSource
    + name=radicle
    ++ dpkg-parsechangelog -SVersion
    + version=1.2.1.ci20260423T201803-1
    ++ echo 1.2.1.ci20260423T201803-1
    ++ sed 's/-[^-]*$//'
    + uv=1.2.1.ci20260423T201803
    ++ dpkg --print-architecture
    + arch=amd64
    + orig=../radicle_1.2.1.ci20260423T201803.orig.tar.xz
    + deb=../radicle_1.2.1.ci20260423T201803-1_amd64.deb
    + changes=../radicle_1.2.1.ci20260423T201803-1_amd64.changes
    + git archive HEAD
    + xz
    + dpkg-buildpackage -us -uc
     dpkg-source --before-build .
     debian/rules clean
     dpkg-source -b .
     debian/rules build
     debian/rules binary
      Installing radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)
       Compiling radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)
       Compiling radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)
       Compiling radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)
       Compiling radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)
       Compiling radicle v0.23.0 (/ci/src/crates/radicle)
       Compiling radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)
       Compiling radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)
       Compiling radicle-core v0.2.0 (/ci/src/crates/radicle-core)
       Compiling radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)
       Compiling radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)
       Compiling radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)
       Compiling radicle-term v0.17.0 (/ci/src/crates/radicle-term)
        Finished `release` profile [optimized] target(s) in 1m 16s
      Installing debian/radicle/usr/bin/rad
       Installed package `radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)` (executable `rad`)
    warning: be sure to add `debian/radicle/usr/bin` to your PATH to be able to run the installed binaries
      Installing radicle-node v0.19.0 (/ci/src/crates/radicle-node)
       Compiling radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)
       Compiling radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)
       Compiling radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)
       Compiling radicle v0.23.0 (/ci/src/crates/radicle)
       Compiling radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)
       Compiling radicle-core v0.2.0 (/ci/src/crates/radicle-core)
       Compiling radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)
       Compiling radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)
       Compiling radicle-node v0.19.0 (/ci/src/crates/radicle-node)
       Compiling radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)
       Compiling radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)
       Compiling radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)
       Compiling radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)
        Finished `release` profile [optimized] target(s) in 57.31s
      Installing debian/radicle/usr/bin/radicle-node
       Installed package `radicle-node v0.19.0 (/ci/src/crates/radicle-node)` (executable `radicle-node`)
    warning: be sure to add `debian/radicle/usr/bin` to your PATH to be able to run the installed binaries
      Installing radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)
       Compiling radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)
        Finished `release` profile [optimized] target(s) in 11.71s
      Installing debian/radicle/usr/bin/git-remote-rad
       Installed package `radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)` (executable `git-remote-rad`)
    warning: be sure to add `debian/radicle/usr/bin` to your PATH to be able to run the installed binaries
     dpkg-genbuildinfo -O../radicle_1.2.1.ci20260423T201803-1_amd64.buildinfo
     dpkg-genchanges -O../radicle_1.2.1.ci20260423T201803-1_amd64.changes
     dpkg-source --after-build .
    + ls -l ..
    + for x in ../*.deb
    + dpkg -c ../radicle_1.2.1.ci20260423T201803-1_amd64.deb
    + mv ../radicle_1.2.1.ci20260423T201803-1.debian.tar.xz ../radicle_1.2.1.ci20260423T201803-1.dsc ../radicle_1.2.1.ci20260423T201803-1_amd64.buildinfo ../radicle_1.2.1.ci20260423T201803-1_amd64.changes ../radicle_1.2.1.ci20260423T201803-1_amd64.deb ../radicle_1.2.1.ci20260423T201803.orig.tar.xz /ci/artifacts/.
    
  • plan: Action succeeded deb
    After 0.00 seconds at 2026-04-23 20:20:43Z
    Deb(
        Deb {
            packages: Some(
                ".",
            ),
        },
    )
plan: Successful action tar_create
After 550.58 seconds at 2026-04-23 20:20:43Z
  • plan: Start action tar_create
    After 0.00 seconds at 2026-04-23 20:20:43Z
    TarCreate(
        TarCreate {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
  • plan: Action succeeded tar_create
    After 0.00 seconds at 2026-04-23 20:20:55Z
    TarCreate(
        TarCreate {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
plan: Successful action tar_create
After 562.81 seconds at 2026-04-23 20:20:55Z
  • plan: Start action tar_create
    After 0.00 seconds at 2026-04-23 20:20:55Z
    TarCreate(
        TarCreate {
            archive: "/dev/vdd",
            directory: "/ci/artifacts",
        },
    )
  • plan: Action succeeded tar_create
    After 0.00 seconds at 2026-04-23 20:20:55Z
    TarCreate(
        TarCreate {
            archive: "/dev/vdd",
            directory: "/ci/artifacts",
        },
    )
plan: Plan succeeded
After 562.86 seconds at 2026-04-23 20:20:55ZHopefully all is good.

Raw log messages for Ambient troubleshooting

Raw log messages

These raw log messages are meant to help Ambient developers figure out problems. You can ignore them.

  1. {
      "type": "executor_starts",
      "name": "ambient-execute-plan",
      "version": "0.14.0@c37ec71",
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 549947816
      },
      "log_source": "Plan"
    }
  2. {
      "type": "runnable_plan",
      "steps": [
        {
          "action": "mkdir",
          "pathname": "/ci"
        },
        {
          "action": "mkdir",
          "pathname": "/ci/artifacts"
        },
        {
          "action": "tar_extract",
          "archive": "/dev/vdc",
          "directory": "/ci/src"
        },
        {
          "action": "tar_extract",
          "archive": "/dev/vdf",
          "directory": "/ci/deps"
        },
        {
          "action": "tar_extract",
          "archive": "/dev/vde",
          "directory": "/ci/cache"
        },
        {
          "action": "shell",
          "shell": "ln -sf /ci /workspace"
        },
        {
          "action": "shell",
          "shell": "git config --global user.name 'Ambient CI'"
        },
        {
          "action": "shell",
          "shell": "git config --global user.email ambient@example.com"
        },
        {
          "action": "cargo_fmt"
        },
        {
          "action": "cargo_clippy"
        },
        {
          "action": "cargo_build"
        },
        {
          "action": "cargo_test"
        },
        {
          "action": "shell",
          "shell": "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport RUSTDOCFLAGS='-D warnings'\n\ncargo doc --workspace --no-deps --all-features\n"
        },
        {
          "action": "shell",
          "shell": "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\n# These are based on debian/control.\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n\n# Clean up after tests and documentation building. The Debian\n# package building tools do not want changes outside the\n# `debian` directory, compared to what is committed to Git, from\n# which the \"upstream tarball\" is created.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\n# Update debian/changelog with a new version so that every run\n# creates a newer version. This avoids us having to update the\n# file manually for every CI run.\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n"
        },
        {
          "action": "deb",
          "packages": "."
        },
        {
          "action": "tar_create",
          "archive": "/dev/vde",
          "directory": "/ci/cache"
        },
        {
          "action": "tar_create",
          "archive": "/dev/vdd",
          "directory": "/ci/artifacts"
        }
      ],
      "executor_drive": "/dev/vdb",
      "source_drive": "/dev/vdc",
      "artifact_drive": "/dev/vdd",
      "cache_drive": "/dev/vde",
      "deps_drive": "/dev/vdf",
      "workspace_dir": "/ci",
      "source_dir": "/ci/src",
      "deps_dir": "/ci/deps",
      "cache_dir": "/ci/cache",
      "artifacts_dir": "/ci/artifacts",
      "envs": {},
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 550614584
      },
      "log_source": "Plan"
    }
  3. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 550825257
      },
      "log_source": "Plan"
    }
  4. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 551077778
      },
      "log_source": "Plan"
    }
  5. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 551231328
      },
      "log_source": "Plan"
    }
  6. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 551264975
      },
      "log_source": "Plan"
    }
  7. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 551448295
      },
      "log_source": "Plan"
    }
  8. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 704403239
      },
      "log_source": "Plan"
    }
  9. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1776975092,
        "nanos_since_epoch": 704867501
      },
      "log_source": "Plan"
    }
  10. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1776975094,
        "nanos_since_epoch": 950537850
      },
      "log_source": "Plan"
    }
  11. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1776975094,
        "nanos_since_epoch": 951003004
      },
      "log_source": "Plan"
    }
  12. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 834654599
      },
      "log_source": "Plan"
    }
  13. {
      "type": "execute_action",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 835120049
      },
      "log_source": "Plan"
    }
  14. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            108,
            110,
            32,
            45,
            115,
            102,
            32,
            47,
            99,
            105,
            32,
            47,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 835329998
      },
      "log_source": "Plan"
    }
  15. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ ln -sf /ci /workspace\n",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 846965061
      },
      "log_source": "Plan"
    }
  16. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 849533509
      },
      "log_source": "Plan"
    }
  17. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 851743194
      },
      "log_source": "Plan"
    }
  18. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            103,
            105,
            116,
            32,
            99,
            111,
            110,
            102,
            105,
            103,
            32,
            45,
            45,
            103,
            108,
            111,
            98,
            97,
            108,
            32,
            117,
            115,
            101,
            114,
            46,
            110,
            97,
            109,
            101,
            32,
            39,
            65,
            109,
            98,
            105,
            101,
            110,
            116,
            32,
            67,
            73,
            39,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 854337472
      },
      "log_source": "Plan"
    }
  19. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ git config --global user.name 'Ambient CI'\n",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 865346051
      },
      "log_source": "Plan"
    }
  20. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 868047778
      },
      "log_source": "Plan"
    }
  21. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 870698534
      },
      "log_source": "Plan"
    }
  22. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            103,
            105,
            116,
            32,
            99,
            111,
            110,
            102,
            105,
            103,
            32,
            45,
            45,
            103,
            108,
            111,
            98,
            97,
            108,
            32,
            117,
            115,
            101,
            114,
            46,
            101,
            109,
            97,
            105,
            108,
            32,
            97,
            109,
            98,
            105,
            101,
            110,
            116,
            64,
            101,
            120,
            97,
            109,
            112,
            108,
            101,
            46,
            99,
            111,
            109,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 873399177
      },
      "log_source": "Plan"
    }
  23. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ git config --global user.email ambient@example.com\n",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 881295122
      },
      "log_source": "Plan"
    }
  24. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 884069208
      },
      "log_source": "Plan"
    }
  25. {
      "type": "execute_action",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 886788683
      },
      "log_source": "Plan"
    }
  26. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 888687255
      },
      "log_source": "Plan"
    }
  27. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.90.0 (840b83a10 2025-07-30)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 950429346
      },
      "log_source": "Plan"
    }
  28. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            99,
            108,
            105,
            112,
            112,
            121
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975109,
        "nanos_since_epoch": 953253534
      },
      "log_source": "Plan"
    }
  29. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.90 (1159e78c47 2025-09-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975110,
        "nanos_since_epoch": 72218497
      },
      "log_source": "Plan"
    }
  30. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            114,
            117,
            115,
            116,
            99
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975110,
        "nanos_since_epoch": 72669723
      },
      "log_source": "Plan"
    }
  31. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.90.0 (1159e78c4 2025-09-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975110,
        "nanos_since_epoch": 125072711
      },
      "log_source": "Plan"
    }
  32. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            102,
            109,
            116
          ]
        },
        {
          "Unix": [
            45,
            45,
            99,
            104,
            101,
            99,
            107
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975110,
        "nanos_since_epoch": 125526823
      },
      "log_source": "Plan"
    }
  33. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 91005405
      },
      "log_source": "Plan"
    }
  34. {
      "type": "action_succeeded",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 91445067
      },
      "log_source": "Plan"
    }
  35. {
      "type": "execute_action",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 91649683
      },
      "log_source": "Plan"
    }
  36. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 91658443
      },
      "log_source": "Plan"
    }
  37. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.90.0 (840b83a10 2025-07-30)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 142043767
      },
      "log_source": "Plan"
    }
  38. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            99,
            108,
            105,
            112,
            112,
            121
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 142496618
      },
      "log_source": "Plan"
    }
  39. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.90 (1159e78c47 2025-09-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 234753980
      },
      "log_source": "Plan"
    }
  40. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            114,
            117,
            115,
            116,
            99
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 237504560
      },
      "log_source": "Plan"
    }
  41. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.90.0 (1159e78c4 2025-09-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 282660359
      },
      "log_source": "Plan"
    }
  42. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            99,
            108,
            105,
            112,
            112,
            121
          ]
        },
        {
          "Unix": [
            45,
            45,
            111,
            102,
            102,
            108,
            105,
            110,
            101
          ]
        },
        {
          "Unix": [
            45,
            45,
            108,
            111,
            99,
            107,
            101,
            100
          ]
        },
        {
          "Unix": [
            45,
            45,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101
          ]
        },
        {
          "Unix": [
            45,
            45,
            97,
            108,
            108,
            45,
            116,
            97,
            114,
            103,
            101,
            116,
            115
          ]
        },
        {
          "Unix": [
            45,
            45,
            110,
            111,
            45,
            100,
            101,
            112,
            115
          ]
        },
        {
          "Unix": [
            45,
            45
          ]
        },
        {
          "Unix": [
            45,
            45,
            100,
            101,
            110,
            121
          ]
        },
        {
          "Unix": [
            119,
            97,
            114,
            110,
            105,
            110,
            103,
            115
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975111,
        "nanos_since_epoch": 283120512
      },
      "log_source": "Plan"
    }
  43. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "    Checking radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)\n    Checking radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)\n    Checking radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)\n    Checking radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)\n    Checking radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)\n   Compiling radicle v0.23.0 (/ci/src/crates/radicle)\n    Checking radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)\n    Checking radicle-core v0.2.0 (/ci/src/crates/radicle-core)\n    Checking radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)\n    Checking radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)\n   Compiling radicle-node v0.19.0 (/ci/src/crates/radicle-node)\n   Compiling radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)\n    Checking radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)\n    Checking radicle-term v0.17.0 (/ci/src/crates/radicle-term)\n   Compiling radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)\n    Checking radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)\n    Checking radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)\n    Checking radicle-cli-test v0.13.0 (/ci/src/crates/radicle-cli-test)\n    Checking radicle-schemars v0.7.0 (/ci/src/crates/radicle-schemars)\n    Checking radicle-windows v0.1.0 (/ci/src/crates/radicle-windows)\n    Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.25s\n",
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 677549064
      },
      "log_source": "Plan"
    }
  44. {
      "type": "action_succeeded",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 678106066
      },
      "log_source": "Plan"
    }
  45. {
      "type": "execute_action",
      "action": "cargo_build",
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 678317815
      },
      "log_source": "Plan"
    }
  46. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 678326388
      },
      "log_source": "Plan"
    }
  47. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.90.0 (840b83a10 2025-07-30)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 747631026
      },
      "log_source": "Plan"
    }
  48. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            99,
            108,
            105,
            112,
            112,
            121
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 748126120
      },
      "log_source": "Plan"
    }
  49. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.90 (1159e78c47 2025-09-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 847160413
      },
      "log_source": "Plan"
    }
  50. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            114,
            117,
            115,
            116,
            99
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 847649068
      },
      "log_source": "Plan"
    }
  51. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.90.0 (1159e78c4 2025-09-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 897373144
      },
      "log_source": "Plan"
    }
  52. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            98,
            117,
            105,
            108,
            100
          ]
        },
        {
          "Unix": [
            45,
            45,
            111,
            102,
            102,
            108,
            105,
            110,
            101
          ]
        },
        {
          "Unix": [
            45,
            45,
            108,
            111,
            99,
            107,
            101,
            100
          ]
        },
        {
          "Unix": [
            45,
            45,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101
          ]
        },
        {
          "Unix": [
            45,
            45,
            97,
            108,
            108,
            45,
            116,
            97,
            114,
            103,
            101,
            116,
            115
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975123,
        "nanos_since_epoch": 897948732
      },
      "log_source": "Plan"
    }
  53. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "   Compiling radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)\n   Compiling radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)\n   Compiling radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)\n   Compiling radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)\n   Compiling radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)\n   Compiling radicle v0.23.0 (/ci/src/crates/radicle)\n   Compiling radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)\n   Compiling radicle-core v0.2.0 (/ci/src/crates/radicle-core)\n   Compiling radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)\n   Compiling radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)\n   Compiling radicle-node v0.19.0 (/ci/src/crates/radicle-node)\n   Compiling radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)\n   Compiling radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)\n   Compiling radicle-term v0.17.0 (/ci/src/crates/radicle-term)\n   Compiling radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)\n   Compiling radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)\n   Compiling radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)\n   Compiling radicle-cli-test v0.13.0 (/ci/src/crates/radicle-cli-test)\n   Compiling radicle-schemars v0.7.0 (/ci/src/crates/radicle-schemars)\n   Compiling radicle-windows v0.1.0 (/ci/src/crates/radicle-windows)\n    Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.03s\n",
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 16530018
      },
      "log_source": "Plan"
    }
  54. {
      "type": "action_succeeded",
      "action": "cargo_build",
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 17292000
      },
      "log_source": "Plan"
    }
  55. {
      "type": "execute_action",
      "action": "cargo_test",
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 17505190
      },
      "log_source": "Plan"
    }
  56. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 17513896
      },
      "log_source": "Plan"
    }
  57. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.90.0 (840b83a10 2025-07-30)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 58943856
      },
      "log_source": "Plan"
    }
  58. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            99,
            108,
            105,
            112,
            112,
            121
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 61673280
      },
      "log_source": "Plan"
    }
  59. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.90 (1159e78c47 2025-09-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 157399817
      },
      "log_source": "Plan"
    }
  60. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            114,
            117,
            115,
            116,
            99
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 160161935
      },
      "log_source": "Plan"
    }
  61. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.90.0 (1159e78c4 2025-09-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 207155579
      },
      "log_source": "Plan"
    }
  62. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            116,
            101,
            115,
            116
          ]
        },
        {
          "Unix": [
            45,
            45,
            111,
            102,
            102,
            108,
            105,
            110,
            101
          ]
        },
        {
          "Unix": [
            45,
            45,
            108,
            111,
            99,
            107,
            101,
            100
          ]
        },
        {
          "Unix": [
            45,
            45,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975166,
        "nanos_since_epoch": 207624805
      },
      "log_source": "Plan"
    }
  63. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "\nrunning 330 tests\ntest canonical::formatter::test::ascii_control_characters ... ok\ntest canonical::formatter::test::ordered_nested_object ... ok\ntest canonical::formatter::test::securesystemslib_asserts ... ok\ntest cob::cache::migrations::_2::tests::test_migration_2 ... ok\ntest cob::cache::migrations::_2::tests::test_patch_json_deserialization ... ok\ntest cob::cache::tests::test_check_version ... ok\ntest cob::cache::tests::test_migrate_to ... ok\ntest cob::common::test::test_color ... ok\ntest cob::common::test::test_emojis ... ok\ntest cob::common::test::test_title ... ok\ntest cob::identity::test::prop_json_eq_str ... ok\ntest cob::identity::test::test_identity_redact_revision ... ok\ntest cob::identity::test::test_identity_reject_concurrent ... ok\ntest cob::identity::test::test_identity_remove_delegate_concurrent ... ok\ntest cob::identity::test::test_identity_updates ... ok\ntest cob::identity::test::test_identity_update_rejected ... ok\ntest cob::identity::test::test_identity_updates_concurrent ... ok\ntest cob::identity::test::test_identity_updates_concurrent_outdated ... ok\ntest cob::issue::cache::tests::test_counts ... ok\ntest cob::issue::cache::tests::test_get ... ok\ntest cob::issue::cache::tests::test_is_empty ... ok\ntest cob::issue::cache::tests::test_list ... ok\ntest cob::issue::cache::tests::test_list_by_status ... ok\ntest cob::issue::cache::tests::test_remove ... ok\ntest cob::identity::test::test_valid_identity ... ok\ntest cob::issue::test::test_embeds ... ok\ntest cob::issue::test::test_embeds_edit ... ok\ntest cob::issue::test::test_invalid_actions ... ok\ntest cob::issue::test::test_concurrency ... ok\ntest cob::issue::test::test_invalid_cob ... ok\ntest cob::issue::test::test_invalid_tx ... ok\ntest cob::issue::test::test_invalid_tx_reference ... ok\ntest cob::issue::test::test_issue_all ... ok\ntest cob::issue::test::test_issue_comment ... ok\ntest cob::issue::test::test_issue_comment_redact ... ok\ntest cob::issue::test::test_issue_create_and_assign ... ok\ntest cob::issue::test::test_issue_create_and_change_state ... ok\ntest cob::issue::test::test_issue_create_and_get ... ok\ntest cob::issue::test::test_issue_create_and_unassign ... ok\ntest cob::issue::test::test_issue_create_and_reassign ... ok\ntest cob::issue::test::test_issue_edit ... ok\ntest cob::issue::test::test_issue_edit_description ... ok\ntest cob::issue::test::test_issue_multilines ... ok\ntest cob::issue::test::test_issue_label ... ok\ntest cob::issue::test::test_issue_react ... ok\ntest cob::issue::test::test_issue_state_serde ... ok\ntest cob::issue::test::test_ordering ... ok\ntest cob::patch::actions::test::test_review_edit ... ok\ntest cob::issue::test::test_issue_reply ... ok\ntest cob::patch::cache::tests::test_counts ... ok\ntest cob::patch::cache::tests::test_get ... ok\ntest cob::patch::cache::tests::test_is_empty ... ok\ntest cob::patch::cache::tests::test_list ... ok\ntest cob::patch::cache::tests::test_list_by_status ... ok\ntest cob::patch::cache::tests::test_remove ... ok\ntest cob::patch::encoding::review::test::test_review_deserialize_summary_migration_null_summary ... ok\ntest cob::patch::encoding::review::test::test_review_deserialize_summary_migration_with_summary ... ok\ntest cob::patch::encoding::review::test::test_review_deserialize_summary_migration_without_summary ... ok\ntest cob::patch::encoding::review::test::test_review_deserialize_summary_v2 ... ok\ntest cob::patch::encoding::review::test::test_review_summary ... ok\ntest cob::patch::test::test_json ... ok\ntest cob::patch::test::test_json_serialization ... ok\ntest cob::patch::test::test_patch_create_and_get ... ok\ntest cob::patch::test::test_patch_discussion ... ok\ntest cob::patch::test::test_patch_merge ... ok\ntest cob::patch::test::test_patch_redact ... ok\ntest cob::patch::test::test_patch_review ... ok\ntest cob::patch::test::test_patch_review_comment ... ok\ntest cob::patch::test::test_patch_review_duplicate ... ok\ntest cob::patch::test::test_patch_review_edit ... ok\ntest cob::patch::test::test_patch_review_edit_comment ... ok\ntest cob::patch::test::test_patch_review_remove_summary ... ok\ntest cob::patch::test::test_patch_review_revision_redact ... ok\ntest cob::patch::test::test_patch_update ... ok\ntest cob::patch::test::test_reactions_json_serialization ... ok\ntest cob::patch::test::test_revision_edit_redact ... ok\ntest cob::patch::test::test_revision_reaction ... ok\ntest cob::patch::test::test_revision_review_merge_redacted ... ok\ntest cob::stream::tests::test_all_from ... ok\ntest cob::stream::tests::test_all_from_until ... ok\ntest cob::stream::tests::test_all_until ... ok\ntest cob::stream::tests::test_from_until ... ok\ntest cob::stream::tests::test_regression_from_until ... ok\ntest cob::thread::tests::prop_ordering ... ok\ntest cob::thread::tests::test_comment_edit_missing ... ok\ntest cob::thread::tests::test_comment_edit_redacted ... ok\ntest cob::thread::tests::test_comment_redact_missing ... ok\ntest cob::thread::tests::test_duplicate_comments ... ok\ntest cob::thread::tests::test_edit_comment ... ok\ntest cob::thread::tests::test_redact_comment ... ok\ntest cob::thread::tests::test_timeline ... ok\ntest git::canonical::protect::tests::refs_rad ... ok\ntest git::canonical::protect::tests::refs_rad_id ... ok\ntest git::canonical::protect::tests::refs_radieschen ... ok\ntest git::canonical::quorum::test::merge_base_commutative ... ok\ntest git::canonical::quorum::test::test_merge_bases ... ok\ntest git::canonical::rules::tests::test_canonical ... ok\ntest git::canonical::rules::tests::test_deserialization ... ok\ntest git::canonical::rules::tests::test_deserialize_extensions ... ok\ntest git::canonical::rules::tests::test_order ... ok\ntest git::canonical::rules::tests::test_roundtrip ... ok\ntest git::canonical::rules::tests::test_rule_validate_failures ... ok\ntest git::canonical::rules::tests::test_rule_validate_success ... ok\ntest git::canonical::rules::tests::test_special_branches ... ok\ntest git::canonical::tests::test_commit_quorum_fork_of_a_fork ... ok\ntest git::canonical::tests::test_commit_quorum_forked_merge_commits ... ok\ntest git::canonical::tests::test_commit_quorum_groups ... ok\ntest git::canonical::tests::test_commit_quorum_linear ... ok\ntest git::canonical::tests::test_commit_quorum_merges ... ok\ntest git::canonical::tests::test_commit_quorum_single ... ok\ntest git::canonical::tests::test_commit_quorum_three_way_fork ... ok\ntest git::canonical::tests::test_commit_quorum_two_way_fork ... ok\ntest git::canonical::tests::test_quorum_different_types ... ok\ntest git::canonical::tests::test_quorum_properties ... ok\ntest git::canonical::tests::test_tag_quorum ... ok\ntest git::test::test_version_from_str ... ok\ntest git::test::test_version_ord ... ok\ntest identity::did::test::test_did_encode_decode ... ok\ntest identity::did::test::test_did_vectors ... ok\ntest cob::patch::cache::tests::test_find_by_revision ... ok\ntest identity::doc::test::test_canonical_doc ... ok\ntest identity::doc::test::test_canonical_example ... ok\ntest identity::doc::test::test_duplicate_dids ... ok\ntest identity::doc::test::test_future_version_error ... ok\ntest identity::doc::test::test_is_valid_version ... ok\ntest identity::doc::test::test_max_delegates ... ok\ntest identity::doc::test::test_not_found ... ok\ntest identity::doc::test::test_parse_version ... ok\ntest identity::doc::test::test_visibility_json ... ok\ntest identity::doc::update::test::test_can_update_crefs ... ok\ntest identity::doc::update::test::test_cannot_include_default_branch_rule ... ok\ntest identity::doc::update::test::test_default_branch_rule_exists_after_verification ... ok\ntest identity::project::test::test_project_name ... ok\ntest node::address::store::test::test_alias ... ok\ntest node::address::store::test::test_disconnected ... ok\ntest node::address::store::test::test_disconnected_ban ... ok\ntest node::address::store::test::test_empty ... ok\ntest node::address::store::test::test_entries ... ok\ntest node::address::store::test::test_get_none ... ok\ntest node::address::store::test::test_insert_and_get ... ok\ntest node::address::store::test::test_insert_and_remove ... ok\ntest node::address::store::test::test_insert_and_update ... ok\ntest node::address::store::test::test_insert_duplicate ... ok\ntest node::address::store::test::test_node_aliases ... ok\ntest node::address::store::test::test_remove_nothing ... ok\ntest node::command::test::command_result ... ok\ntest node::config::test::deserialize_migrating_scope ... ok\ntest node::config::test::fetch_level_min ... ok\ntest node::config::test::onion_absent ... ok\ntest node::config::test::onion_null ... ok\ntest node::config::test::partial ... ok\ntest node::config::test::regression_ipv6_address_brackets ... ok\ntest node::config::test::regression_ipv6_address_no_brackets ... ok\ntest node::config::test::serialize_migrating_scope ... ok\ntest node::config::test::user_agent_custom ... ok\ntest node::config::test::user_agent_default ... ok\ntest node::config::test::user_agent_default_explicit ... ok\ntest node::config::test::user_agent_opt_out ... ok\ntest node::db::config::test::database_config_valid_combinations ... ok\ntest node::db::config::test::invalid ... ok\ntest node::db::test::migration_8::all_ipv6_formatted_dns_addresses_are_retyped ... ok\ntest node::db::test::migration_8::dns_address_starting_with_bracket_but_missing_closing_bracket_colon_is_unaffected ... ok\ntest node::db::test::migration_8::dns_address_with_bracket_not_at_start_is_unaffected ... ok\ntest node::db::test::migration_8::ipv4_address_is_unaffected ... ok\ntest node::db::test::migration_8::ipv6_formatted_dns_address_is_deleted_when_correct_ipv6_row_already_exists ... ok\ntest node::db::test::migration_8::ipv6_formatted_dns_address_is_retyped_to_ipv6 ... ok\ntest node::db::test::migration_8::migration_applies_to_all_nodes ... ok\ntest node::db::test::migration_8::plain_dns_hostname_without_brackets_is_unaffected ... ok\ntest node::db::test::migration_8::retype_preserves_address_metadata ... ok\ntest node::db::test::test_version ... ok\ntest node::features::test::test_operations ... ok\ntest node::notifications::store::test::test_branch_notifications ... ok\ntest node::notifications::store::test::test_clear ... ok\ntest node::notifications::store::test::test_cob_notifications ... ok\ntest node::notifications::store::test::test_counts_by_repo ... ok\ntest node::notifications::store::test::test_duplicate_notifications ... ok\ntest node::notifications::store::test::test_notification_status ... ok\ntest node::policy::store::test::test_follow_and_unfollow_node ... ok\ntest node::policy::store::test::test_node_aliases ... ok\ntest node::policy::store::test::test_node_policies ... ok\ntest node::policy::store::test::test_node_policy ... ok\ntest node::policy::store::test::test_repo_policies ... ok\ntest node::policy::store::test::test_repo_policy ... ok\ntest node::policy::store::test::test_seed_and_unseed_repo ... ok\ntest node::policy::store::test::test_update_alias ... ok\ntest node::policy::store::test::test_update_scope ... ok\ntest node::refs::store::test::test_count ... ok\ntest node::refs::store::test::test_set_and_delete ... ok\ntest node::refs::store::test::test_set_and_get ... ok\ntest node::routing::test::test_count ... ok\ntest node::routing::test::test_entries ... ok\ntest node::routing::test::test_insert_and_get ... ok\ntest node::routing::test::test_insert_and_get_resources ... ok\ntest node::routing::test::test_insert_and_remove ... ok\ntest node::routing::test::test_insert_duplicate ... ok\ntest node::routing::test::test_insert_existing_updated_time ... ok\ntest node::routing::test::test_len ... ok\ntest node::routing::test::test_prune ... ok\ntest node::routing::test::test_remove_many ... ok\ntest node::routing::test::test_remove_redundant ... ok\ntest node::routing::test::test_update_existing_multi ... ok\ntest node::sync::announce::test::all_synced_nodes_are_preferred_seeds ... ok\ntest node::sync::announce::test::announcer_adapts_target_to_reach ... ok\ntest node::sync::announce::test::announcer_preferred_seeds_or_replica_factor ... ok\ntest node::sync::announce::test::announcer_reached_max_replication_target ... ok\ntest node::sync::announce::test::announcer_reached_min_replication_target ... ok\ntest node::sync::announce::test::announcer_reached_preferred_seeds ... ok\ntest node::sync::announce::test::announcer_synced_with_unknown_node ... ok\ntest node::sync::announce::test::announcer_timed_out ... ok\ntest node::sync::announce::test::announcer_with_replication_factor_zero_and_preferred_seeds ... ok\ntest node::sync::announce::test::cannot_construct_announcer ... ok\ntest node::sync::announce::test::construct_node_appears_in_multiple_input_sets ... ok\ntest node::sync::announce::test::construct_only_preferred_seeds_provided ... ok\ntest node::sync::announce::test::invariant_progress_should_match_state ... ok\ntest node::sync::announce::test::local_node_in_multiple_sets ... ok\ntest node::sync::announce::test::local_node_in_preferred_seeds ... ok\ntest node::sync::announce::test::local_node_in_synced_set ... ok\ntest node::sync::announce::test::local_node_in_unsynced_set ... ok\ntest node::sync::announce::test::local_node_only_in_all_sets_results_in_no_seeds_error ... ok\ntest node::sync::announce::test::preferred_seeds_already_synced ... ok\ntest node::sync::announce::test::synced_with_local_node_is_ignored ... ok\ntest node::sync::announce::test::synced_with_same_node_multiple_times ... ok\ntest node::sync::announce::test::timed_out_after_reaching_success ... ok\ntest node::sync::fetch::test::all_nodes_are_candidates ... ok\ntest node::sync::fetch::test::all_nodes_are_fetchable ... ok\ntest node::sync::fetch::test::could_not_reach_target ... ok\ntest node::sync::fetch::test::ignores_duplicates_and_local_node ... ok\ntest node::sync::fetch::test::preferred_seeds_target_returned_over_replicas ... ok\ntest node::sync::fetch::test::reaches_target_of_max_replicas ... ok\ntest node::sync::fetch::test::reaches_target_of_preferred_seeds ... ok\ntest node::sync::fetch::test::reaches_target_of_replicas ... ok\ntest node::sync::test::ensure_replicas_construction ... ok\ntest node::sync::test::replicas_constrain_to ... ok\ntest node::test::test_address ... ok\ntest node::test::test_alias ... ok\ntest node::test::test_command_result ... ok\ntest node::test::test_user_agent ... ok\ntest node::timestamp::tests::test_timestamp_max ... ok\ntest identity::doc::test::prop_encode_decode ... ok\ntest profile::test::canonicalize_home ... ok\ntest profile::test::test_config ... ok\ntest rad::tests::test_checkout ... ok\ntest rad::tests::test_fork ... ok\ntest rad::tests::test_init ... ok\ntest storage::git::tests::test_references_of ... ok\ntest storage::git::tests::test_sign_refs ... ok\ntest storage::git::transport::local::url::test::test_url_parse ... ok\ntest storage::git::transport::local::url::test::test_url_to_string ... ok\ntest storage::git::transport::remote::url::test::test_url_parse ... ok\ntest profile::config::test::schema ... ok\ntest storage::refs::sigrefs::property::idempotent ... ok\ntest storage::refs::sigrefs::read::test::commit_reader::identity_root_error ... ok\ntest storage::refs::sigrefs::read::test::commit_reader::missing_commit ... ok\ntest storage::refs::sigrefs::read::test::commit_reader::read_ok ... ok\ntest storage::refs::sigrefs::read::test::commit_reader::too_many_parents ... ok\ntest storage::refs::sigrefs::read::test::commit_reader::tree_error ... ok\ntest storage::refs::sigrefs::read::test::identity_root_reader::doc_blob_error ... ok\ntest storage::refs::sigrefs::read::test::identity_root_reader::missing_identity ... ok\ntest storage::refs::sigrefs::read::test::identity_root_reader::read_ok_none ... ok\ntest storage::refs::sigrefs::read::test::identity_root_reader::read_ok_some ... ok\ntest storage::refs::sigrefs::read::test::resolve_tip::find_reference_error ... ok\ntest storage::refs::sigrefs::read::test::resolve_tip::missing_sigrefs ... ok\ntest storage::refs::sigrefs::read::test::resolve_tip::resolve_tip_ok ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::detect_parent::root_without_parent ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::detect_parent::root_without_root ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::parent ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::restore ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::root ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::downgrade::root_with_parent ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::head_commit_error ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::head_verify_mismatched_identity_error ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::head_verify_signature_error ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::invalid_parent ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_no_parent ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_parent ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::read_ok_root ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::replay::alternating ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::replay::chain ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::replay::multiple ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::replay::root_at_head ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::single_commit ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::two_commits ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::walk_commit_error ... ok\ntest storage::refs::sigrefs::read::test::signed_refs_reader::walk_verify_error ... ok\ntest storage::refs::sigrefs::read::test::tree_reader::missing_both ... ok\ntest storage::refs::sigrefs::read::test::tree_reader::missing_refs ... ok\ntest storage::refs::sigrefs::read::test::tree_reader::missing_signature ... ok\ntest storage::refs::sigrefs::read::test::tree_reader::parse_refs_error ... ok\ntest storage::refs::sigrefs::read::test::tree_reader::parse_signature_error ... ok\ntest storage::refs::sigrefs::read::test::tree_reader::read_ok ... ok\ntest storage::refs::sigrefs::read::test::tree_reader::read_refs_error ... ok\ntest storage::refs::sigrefs::read::test::tree_reader::read_signature_error ... ok\ntest storage::refs::sigrefs::write::test::commit_writer::tree_error ... ok\ntest storage::refs::sigrefs::write::test::commit_writer::write_commit_error ... ok\ntest storage::refs::sigrefs::write::test::commit_writer::write_empty_refs ... ok\ntest storage::refs::sigrefs::write::test::commit_writer::write_root_ok ... ok\ntest storage::refs::sigrefs::write::test::commit_writer::write_with_parent_ok ... ok\ntest storage::refs::sigrefs::write::test::head_reader::no_head ... ok\ntest storage::refs::sigrefs::write::test::head_reader::read_ok ... ok\ntest storage::refs::sigrefs::write::test::head_reader::reference_error ... ok\ntest storage::refs::sigrefs::write::test::head_reader::refs_blob_error ... ok\ntest storage::refs::sigrefs::write::test::head_reader::refs_blob_missing ... ok\ntest storage::refs::sigrefs::write::test::head_reader::refs_parse_error ... ok\ntest storage::refs::sigrefs::write::test::head_reader::signature_blob_error ... ok\ntest storage::refs::sigrefs::write::test::head_reader::signature_blob_missing ... ok\ntest storage::refs::sigrefs::write::test::head_reader::signature_parse_error ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::commit_error ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::head_error ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::never_write_rad_sigrefs ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::reference_error ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::unchanged ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::unchanged_force_writes_new_commit ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::write_empty_refs ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::write_root_ok ... ok\ntest storage::refs::sigrefs::write::test::signed_refs_writer::write_with_parent_ok ... ok\ntest storage::refs::sigrefs::write::test::tree_writer::sign_error ... ok\ntest storage::refs::sigrefs::write::test::tree_writer::write_ok ... ok\ntest storage::refs::sigrefs::write::test::tree_writer::write_tree_error ... ok\ntest storage::refs::tests::prop_canonical_roundtrip ... ok\ntest storage::refs::tests::test_rid_verification ... ok\ntest storage::tests::test_storage ... ok\ntest test::assert::test::assert_with_message ... ok\ntest test::assert::test::test_assert_no_move ... ok\ntest test::assert::test::test_assert_panic_0 - should panic ... ok\ntest test::assert::test::test_assert_panic_1 - should panic ... ok\ntest test::assert::test::test_assert_panic_2 - should panic ... ok\ntest test::assert::test::test_assert_succeed ... ok\ntest test::assert::test::test_panic_message ... ok\ntest version::test::test_version ... ok\ntest storage::refs::sigrefs::property::roundtrip ... ok\n\ntest result: ok. 330 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.64s\n\n\nrunning 46 tests\ntest commands::block::args::test::should_not_parse ... ok\ntest commands::block::args::test::should_parse_nid ... ok\ntest commands::block::args::test::should_parse_rid ... ok\ntest commands::clone::args::test::should_parse_rid_non_urn ... ok\ntest commands::clone::args::test::should_parse_rid_url ... ok\ntest commands::clone::args::test::should_parse_rid_urn ... ok\ntest commands::cob::args::test::should_allow_log_json_format ... ok\ntest commands::cob::args::test::should_allow_log_pretty_format ... ok\ntest commands::cob::args::test::should_allow_show_json_format ... ok\ntest commands::cob::args::test::should_not_allow_show_pretty_format ... ok\ntest commands::cob::args::test::should_allow_update_json_format ... ok\ntest commands::fork::args::test::should_not_parse_rid_url ... ok\ntest commands::fork::args::test::should_parse_rid_non_urn ... ok\ntest commands::cob::args::test::should_not_allow_update_pretty_format ... ok\ntest commands::fork::args::test::should_parse_rid_urn ... ok\ntest commands::id::args::test::should_not_parse_into_payload - should panic ... ok\ntest commands::id::args::test::should_not_clobber_payload_args ... ok\ntest commands::id::args::test::should_not_parse_single_payload ... ok\ntest commands::id::args::test::should_parse_into_payload ... ok\ntest commands::id::args::test::should_not_parse_single_payloads ... ok\ntest commands::id::args::test::should_parse_multiple_payloads ... ok\ntest commands::init::args::test::should_not_parse_rid_url ... ok\ntest commands::id::args::test::should_parse_single_payload ... ok\ntest commands::init::args::test::should_parse_rid_non_urn ... ok\ntest commands::inspect::test::test_tree ... ok\ntest commands::patch::review::builder::tests::test_review_comments_basic ... ok\ntest commands::init::args::test::should_parse_rid_urn ... ok\ntest commands::patch::review::builder::tests::test_review_comments_multiline ... ok\ntest commands::patch::review::builder::tests::test_review_comments_before ... ok\ntest commands::patch::review::builder::tests::test_review_comments_split_hunk ... ok\ntest commands::publish::args::test::should_not_parse_rid_url ... ok\ntest commands::publish::args::test::should_parse_rid_non_urn ... ok\ntest commands::publish::args::test::should_parse_rid_urn ... ok\ntest commands::watch::args::test::should_parse_ref_str ... ok\ntest git::pretty_diff::test::test_pretty ... ignored\ntest git::ddiff::tests::diff_encode_decode_ddiff_hunk ... ok\ntest git::unified_diff::test::test_diff_content_encode_decode_content ... ok\ntest terminal::args::test::should_not_parse ... ok\ntest git::unified_diff::test::test_diff_encode_decode_diff ... ok\ntest terminal::args::test::should_parse_nid ... ok\ntest terminal::args::test::should_parse_rid ... ok\ntest terminal::format::test::test_bytes ... ok\ntest terminal::format::test::test_strip_comments ... ok\ntest terminal::patch::test::test_edit_display_message ... ok\ntest terminal::patch::test::test_create_display_message ... ok\ntest terminal::patch::test::test_update_display_message ... ok\n\ntest result: ok. 45 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.01s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 115 tests\ntest commands::checkout::rad_checkout ... ok\ntest commands::clone::rad_clone ... ok\ntest commands::clone::rad_clone_bare ... ok\ntest commands::clone::rad_clone_all ... ok\ntest commands::clone::rad_clone_connect ... ok\ntest commands::clone::rad_clone_directory ... ok\ntest commands::clone::rad_clone_scope ... ok\ntest commands::clone::rad_clone_unknown ... ok\ntest commands::clone::rad_clone_partial_fail ... ok\ntest commands::clone::test_clone_without_seeds ... ok\ntest commands::cob::rad_cob_log ... ok\ntest commands::cob::rad_cob_migrate ... ok\ntest commands::cob::rad_cob_multiset ... ok\ntest commands::cob::rad_cob_operations ... ok\ntest commands::cob::rad_cob_show ... ok\ntest commands::cob::rad_cob_update_identity ... ok\ntest commands::cob::rad_cob_update ... ok\ntest commands::cob::test_cob_deletion ... ok\ntest commands::cob::test_cob_replication ... ok\ntest commands::git::git_push_and_fetch ... ok\ntest commands::git::git_push_amend ... ok\ntest commands::git::git_push_canonical_lightweight_tags ... ok\ntest commands::git::git_push_canonical_annotated_tags ... ok\ntest commands::git::git_push_diverge ... ok\ntest commands::git::git_push_force_with_lease ... ok\ntest commands::git::git_push_converge ... ok\ntest commands::git::git_push_rollback ... ok\ntest commands::git::git_tag ... ok\ntest commands::id::rad_id_collaboration ... ignored, slow\ntest commands::id::rad_id ... ok\ntest commands::id::rad_id_conflict ... ok\ntest commands::id::rad_id_private ... ok\ntest commands::id::rad_id_multi_delegate ... ok\ntest commands::id::rad_id_threshold ... ok\ntest commands::id::rad_id_threshold_soft_fork ... ok\ntest commands::id::rad_id_unknown_field ... ok\ntest commands::id::rad_id_update_delete_field ... ok\ntest commands::id::rad_id_unauthorized_delegate ... ok\ntest commands::init::rad_init ... ignored, part of many other tests\ntest commands::init::rad_init_bare ... ok\ntest commands::init::rad_init_detached_head ... ok\ntest commands::init::rad_init_existing ... ok\ntest commands::init::rad_init_existing_bare ... ok\ntest commands::init::rad_init_no_git ... ok\ntest commands::inbox::rad_inbox ... ok\ntest commands::init::rad_init_no_seed ... ok\ntest commands::init::rad_init_private ... ok\ntest commands::init::rad_init_private_clone ... ok\ntest commands::init::rad_init_private_clone_seed ... ok\ntest commands::init::rad_init_private_no_seed ... ok\ntest commands::init::rad_init_private_seed ... ok\ntest commands::init::rad_init_sync_not_connected ... ok\ntest commands::init::rad_init_sync_preferred ... ok\ntest commands::init::rad_init_sync_and_clone ... ok\ntest commands::init::rad_init_with_existing_remote ... ok\ntest commands::init::rad_publish ... ok\ntest commands::issue::rad_issue ... ok\ntest commands::init::rad_init_sync_timeout ... ok\ntest commands::jj::rad_jj_bare ... ok\ntest commands::jj::rad_jj_colocated_patch ... ok\ntest commands::issue::rad_issue_list ... ok\ntest commands::node::rad_node ... ok\ntest commands::node::rad_node_connect ... ok\ntest commands::patch::rad_merge_after_update ... ok\ntest commands::node::rad_node_connect_without_address ... ok\ntest commands::patch::rad_merge_no_ff ... ok\ntest commands::patch::rad_merge_via_push ... ok\ntest commands::patch::rad_patch_ahead_behind ... ok\ntest commands::patch::rad_patch ... ok\ntest commands::patch::rad_patch_checkout ... ok\ntest commands::patch::rad_patch_change_base ... ok\ntest commands::patch::rad_patch_checkout_revision ... ok\ntest commands::patch::rad_patch_checkout_force ... ok\ntest commands::patch::rad_patch_detached_head ... ok\ntest commands::patch::rad_patch_diff ... ok\ntest commands::patch::rad_patch_draft ... ok\ntest commands::patch::rad_patch_delete ... ok\ntest commands::patch::rad_patch_edit ... ok\ntest commands::patch::rad_patch_fetch_2 ... ok\ntest commands::patch::rad_patch_fetch_1 ... ok\ntest commands::patch::rad_patch_merge_draft ... ok\ntest commands::patch::rad_patch_open_explore ... ok\ntest commands::patch::rad_patch_revert_merge ... ok\ntest commands::patch::rad_patch_update ... ok\ntest commands::patch::rad_patch_via_push ... ok\ntest commands::patch::rad_patch_pull_update ... ok\ntest commands::patch::rad_review_by_hunk ... ok\ntest commands::policy::rad_block ... ok\ntest commands::patch::rad_push_and_pull_patches ... ok\ntest commands::policy::rad_seed_and_follow ... ok\ntest commands::policy::rad_seed_policy_allow_no_scope ... ok\ntest commands::policy::rad_seed_scope ... ok\ntest commands::policy::rad_seed_many ... ok\ntest commands::policy::rad_unseed ... ok\ntest commands::policy::rad_unseed_many ... ok\ntest commands::remote::rad_remote ... ok\ntest commands::sync::rad_fetch ... ok\ntest commands::sync::rad_sync ... ok\ntest commands::sync::rad_sync_without_node ... ok\ntest commands::utility::framework_home ... ok\ntest commands::utility::rad_auth ... ok\ntest commands::utility::rad_auth_errors ... ok\ntest commands::utility::rad_clean ... ok\ntest commands::sync::test_replication_via_seed ... ok\ntest commands::utility::rad_diff ... ok\ntest commands::utility::rad_config ... ok\ntest commands::utility::rad_help ... ok\ntest commands::utility::rad_inspect ... ok\ntest commands::utility::rad_key_mismatch ... ok\ntest commands::utility::rad_self ... ok\ntest commands::utility::rad_warn_old_nodes ... ok\ntest commands::watch::rad_watch ... ok\ntest commands::utility::rad_fork ... ok\ntest rad_remote ... ok\ntest commands::workflow::rad_workflow ... ok\n\ntest result: ok. 113 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 183.50s\n\n\nrunning 3 tests\ntest tests::test_parse ... ok\ntest tests::test_run ... ok\ntest tests::test_example_spaced_brackets ... ok\n\ntest result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s\n\n\nrunning 9 tests\ntest object::tests::test_serde ... ok\ntest tests::git::list_cobs ... ok\ntest tests::git::roundtrip ... ok\ntest tests::git::traverse_cobs ... ok\ntest tests::invalid_parse_refstr ... ok\ntest tests::parse_refstr ... ok\ntest type_name::test::invalid_typenames ... ok\ntest type_name::test::valid_typenames ... ok\ntest tests::git::update_cob ... ok\n\ntest result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s\n\n\nrunning 4 tests\ntest repo::test::assert_prop_roundtrip_parse ... ok\ntest repo::test::invalid ... ok\ntest repo::test::valid ... ok\ntest repo::serde_impls::test::assert_prop_roundtrip_serde_json ... ok\n\ntest result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s\n\n\nrunning 11 tests\ntest ssh::agent::test::test_agent_encoding_sign ... ok\ntest ssh::agent::test::test_agent_encoding_remove ... ok\ntest ssh::fmt::test::test_key ... ok\ntest ssh::fmt::test::test_fingerprint ... ok\ntest ssh::keystore::tests::test_init_no_passphrase ... ok\ntest ssh::keystore::tests::test_signer ... ok\ntest tests::prop_encode_decode ... ok\ntest tests::prop_key_equality ... ok\ntest tests::test_e25519_dh ... ok\ntest tests::test_encode_decode ... ok\ntest ssh::keystore::tests::test_init_passphrase ... ok\n\ntest result: ok. 11 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.27s\n\n\nrunning 20 tests\ntest tests::test_contains ... ok\ntest tests::test_cycle ... ok\ntest tests::test_dependencies ... ok\ntest tests::test_diamond ... ok\ntest tests::test_fold_diamond ... ok\ntest tests::test_fold_multiple_roots ... ok\ntest tests::test_fold_reject ... ok\ntest tests::test_complex ... ok\ntest tests::test_fold_sorting_1 ... ok\ntest tests::test_fold_sorting_2 ... ok\ntest tests::test_get ... ok\ntest tests::test_is_empty ... ok\ntest tests::test_len ... ok\ntest tests::test_merge_1 ... ok\ntest tests::test_merge_2 ... ok\ntest tests::test_prune_1 ... ok\ntest tests::test_prune_2 ... ok\ntest tests::test_prune_by_sorting ... ok\ntest tests::test_remove ... ok\ntest tests::test_siblings ... ok\n\ntest result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 1 test\ntest stage::test::valid_refspecs ... ok\n\ntest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 24 tests\ntest commit::parse::test::error::invalid_author ... ok\ntest commit::parse::test::error::invalid_committer ... ok\ntest commit::parse::test::error::invalid_format_continuation_without_preceding_header ... ok\ntest commit::parse::test::error::invalid_parent ... ok\ntest commit::parse::test::error::invalid_tree ... ok\ntest commit::parse::test::error::missing_author ... ok\ntest commit::parse::test::error::missing_committer ... ok\ntest commit::parse::test::error::missing_header_body_separator ... ok\ntest commit::parse::test::error::missing_tree_empty_header ... ok\ntest commit::parse::test::error::missing_tree_wrong_first_line ... ok\ntest commit::parse::test::success::commit_gpgsig_is_preserved_and_strip_removes_it ... ok\ntest commit::parse::test::success::commit_last_paragraph_kept_in_message_when_not_all_trailers ... ok\ntest commit::parse::test::success::commit_with_extra_headers ... ok\ntest commit::parse::test::success::commit_with_multiline_gpgsig ... ok\ntest commit::parse::test::success::commit_with_single_parent ... ok\ntest commit::parse::test::success::commit_with_trailers ... ok\ntest commit::parse::test::success::merge_commit ... ok\ntest commit::parse::test::success::root_commit ... ok\ntest commit::parse::test::success::roundtrip ... ok\ntest commit::parse::test::unit::body_last_paragraph_not_trailers_stays_in_message ... ok\ntest commit::parse::test::unit::body_no_paragraph_separator_means_no_trailers ... ok\ntest commit::parse::test::unit::trailers_accepts_empty_input ... ok\ntest commit::parse::test::unit::trailers_rejects_invalid_token_chars ... ok\ntest commit::parse::test::unit::trailers_rejects_line_without_separator ... ok\n\ntest result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 9 tests\ntest test::component ... ok\ntest test::component_invalid - should panic ... ok\ntest test::pattern ... ok\ntest test::qualified ... ok\ntest test::qualified_invalid - should panic ... ok\ntest test::qualified_pattern ... ok\ntest test::qualified_pattern_invalid - should panic ... ok\ntest test::refname ... ok\ntest test::refname_invalid - should panic ... ok\n\ntest result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 1 test\ntest serde_impls::test::test_localtime ... ok\n\ntest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 79 tests\ntest control::tests::test_control_socket ... ok\ntest fingerprint::tests::matching ... ok\ntest reactor::timer::tests::test_next ... ok\ntest reactor::timer::tests::test_wake ... ok\ntest reactor::timer::tests::test_wake_exact ... ok\ntest control::tests::test_seed_unseed ... ok\ntest tests::e2e::fetch_does_not_contain_rad_sigrefs_parent ... ok\ntest tests::e2e::missing_default_branch ... ok\ntest tests::e2e::missing_delegate_default_branch ... ok\ntest tests::e2e::test_background_foreground_fetch ... ok\ntest tests::e2e::test_block_active_connection ... ok\ntest tests::e2e::test_block_prevents_connection ... ok\ntest tests::e2e::test_block_prevents_fetch ... ok\ntest tests::e2e::test_catchup_on_refs_announcements ... ok\ntest tests::e2e::test_channel_reader_limit ... ok\ntest tests::e2e::test_clone ... ok\ntest tests::e2e::test_connection_crossing ... ok\ntest tests::e2e::test_dont_fetch_owned_refs ... ok\ntest tests::e2e::test_concurrent_fetches ... ok\ntest tests::e2e::test_fetch_followed_remotes ... ok\ntest tests::e2e::test_fetch_preserve_owned_refs ... ok\ntest tests::e2e::test_fetch_emits_canonical_ref_update ... ok\ntest tests::e2e::test_fetch_unseeded ... ok\ntest tests::e2e::test_fetch_up_to_date ... ok\ntest tests::e2e::test_inventory_sync_basic ... ok\ntest tests::e2e::test_inventory_sync_bridge ... ok\ntest tests::e2e::test_inventory_sync_ring ... ok\ntest tests::e2e::test_large_fetch ... ok\ntest tests::e2e::test_migrated_clone ... ok\ntest tests::e2e::test_missing_remote ... ok\ntest tests::e2e::test_inventory_sync_star ... ok\ntest tests::e2e::test_multiple_offline_inits ... ok\ntest tests::e2e::test_non_fastforward_identity_doc ... ok\ntest tests::e2e::test_non_fastforward_sigrefs ... ok\ntest tests::e2e::test_outdated_delegate_sigrefs ... ok\ntest tests::e2e::test_outdated_sigrefs ... ok\ntest tests::e2e::test_replication ... ok\ntest tests::e2e::test_replication_invalid ... ok\ntest tests::e2e::test_replication_ref_in_sigrefs ... ok\ntest tests::test_announcement_message_amplification ... ok\ntest tests::test_announcement_rebroadcast ... ok\ntest tests::prop_inventory_exchange_dense ... ok\ntest tests::test_announcement_rebroadcast_duplicates ... ok\ntest tests::test_announcement_rebroadcast_timestamp_filtered ... ok\ntest tests::test_connection_kept_alive ... ok\ntest tests::test_announcement_relay ... ok\ntest tests::test_disconnecting_unresponsive_peer ... ok\ntest tests::test_fetch_missing_inventory_on_gossip ... ok\ntest tests::test_fetch_missing_inventory_on_schedule ... ok\ntest tests::test_inbound_connection ... ok\ntest tests::test_inventory_decode ... ok\ntest tests::test_init_and_seed ... ok\ntest tests::test_inventory_relay ... ok\ntest tests::test_inventory_relay_bad_timestamp ... ok\ntest tests::test_inventory_sync ... ok\ntest tests::test_maintain_connections ... ok\ntest tests::test_maintain_connections_failed_attempt ... ok\ntest tests::test_maintain_connections_transient ... ok\ntest tests::test_outbound_connection ... ok\ntest tests::test_inventory_pruning ... ok\ntest tests::test_persistent_peer_connect ... ok\ntest tests::test_persistent_peer_reconnect_success ... ok\ntest tests::test_persistent_peer_reconnect_attempt ... ok\ntest tests::test_ping_response ... ok\ntest tests::test_queued_fetch_from_ann_same_rid ... ok\ntest tests::test_queued_fetch_max_capacity ... ok\ntest tests::test_queued_fetch_from_command_same_rid ... ok\ntest tests::test_redundant_connect ... ok\ntest tests::test_refs_announcement_fetch_trusted_no_inventory ... ok\ntest tests::test_refs_announcement_followed ... ok\ntest tests::test_refs_announcement_no_subscribe ... ok\ntest tests::test_refs_announcement_offline ... ok\ntest tests::test_refs_announcement_relay_private ... ok\ntest tests::test_refs_announcement_relay_public ... ok\ntest tests::test_seed_repo_subscribe ... ok\ntest tests::test_refs_synced_event ... ok\ntest wire::test::test_inventory_ann_with_extension ... ok\ntest wire::test::test_pong_message_with_extension ... ok\ntest tests::test_seeding ... ok\n\ntest result: ok. 79 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 104.44s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 10 tests\ntest fmt::test::fixture ... ok\ntest fmt::test::git2 ... ok\ntest fmt::test::gix ... ok\ntest fmt::test::zero ... ok\ntest git2::test::zero ... ok\ntest gix::test::zero ... ok\ntest str::test::fixture ... ok\ntest str::test::git2_roundtrip ... ok\ntest str::test::zero ... ok\ntest str::test::gix_roundrip ... ok\n\ntest result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s\n\n\nrunning 99 tests\ntest deserializer::test::test_decode_next ... ok\ntest deserializer::test::test_unparsed ... ok\ntest deserializer::test::prop_decode_next ... ok\ntest fetcher::service::tests::test_fetch_coalescing_different_refs ... ok\ntest fetcher::test::queue::properties::capacity::bounded ... ok\ntest fetcher::test::queue::properties::capacity::capacity_reached_returns_same_item ... ok\ntest fetcher::test::queue::properties::capacity::rejection ... ok\ntest fetcher::test::queue::properties::dequeue::drained_queue_returns_none ... ok\ntest fetcher::test::queue::properties::dequeue::empty_queue_returns_none ... ok\ntest fetcher::test::queue::properties::dequeue::enables_reenqueue ... ok\ntest fetcher::test::queue::properties::capacity::restored_after_dequeue ... ok\ntest fetcher::test::queue::properties::equality::reflexive ... ok\ntest fetcher::test::queue::properties::equality::symmetric ... ok\ntest fetcher::test::queue::properties::fifo::interleaved_operations ... ok\ntest fetcher::test::queue::properties::fifo::ordering ... ok\ntest fetcher::test::queue::properties::equality::transitive ... ok\ntest fetcher::test::queue::properties::merge::combines_refs ... ok\ntest fetcher::test::queue::properties::merge::different_rid_accepted ... ok\ntest fetcher::test::queue::properties::merge::does_not_increase_queue_length ... ok\ntest fetcher::test::queue::properties::merge::longer_timeout_preserved ... ok\ntest fetcher::test::queue::properties::merge::empty_refs_fetches_all ... ok\ntest fetcher::test::queue::properties::merge::succeed_when_at_capacity ... ok\ntest fetcher::test::queue::unit::capacity_takes_precedence_over_merge_for_new_items ... ok\ntest fetcher::test::queue::unit::empty_refs_items_can_be_equal ... ok\ntest fetcher::test::queue::unit::max_timeout_accepted ... ok\ntest fetcher::test::queue::unit::merge_preserves_position_in_queue ... ok\ntest fetcher::test::queue::unit::zero_timeout_accepted ... ok\ntest fetcher::test::state::command::cancel::cancellation_is_isolated ... ok\ntest fetcher::test::state::command::cancel::non_existent_returns_unexpected ... ok\ntest fetcher::test::state::command::cancel::ongoing_and_queued ... ok\ntest fetcher::test::state::command::cancel::single_ongoing ... ok\ntest fetcher::test::state::command::fetch::fetch_after_previous_completed ... ok\ntest fetcher::test::state::command::fetch::fetch_at_capacity_enqueues ... ok\ntest fetcher::test::state::command::fetch::fetch_different_repo_same_node_within_capacity ... ok\ntest fetcher::test::state::command::fetch::fetch_duplicate_returns_already_fetching ... ok\ntest fetcher::test::state::command::fetch::fetch_queue_merge_empty_refs_fetches_all ... ok\ntest fetcher::test::state::command::fetch::fetch_queue_merge_takes_longer_timeout ... ok\ntest fetcher::test::state::command::fetch::fetch_queue_merges_already_queued ... ok\ntest fetcher::test::state::command::fetch::fetch_queue_rejected_capacity_reached ... ok\ntest fetcher::test::state::command::fetch::fetch_same_repo_different_nodes_queues_second ... ok\ntest fetcher::test::state::command::fetch::fetch_same_repo_different_refs_enqueues ... ok\ntest fetcher::test::state::command::fetch::fetch_start_first_fetch_for_node ... ok\ntest fetcher::test::queue::properties::merge::same_rid_merges_anywhere_in_queue ... ok\ntest fetcher::test::state::command::fetched::complete_single_ongoing ... ok\ntest fetcher::test::state::command::fetched::complete_one_of_multiple ... ok\ntest fetcher::test::state::command::fetched::non_existent_returns_not_found ... ok\ntest fetcher::test::state::command::fetched::complete_then_dequeue_fifo ... ok\ntest fetcher::test::state::concurrent::fetched_then_cancel ... ok\ntest fetcher::test::state::concurrent::interleaved_operations ... ok\ntest fetcher::test::state::config::min_queue_size ... ok\ntest fetcher::test::state::dequeue::cannot_dequeue_while_node_at_capacity ... ok\ntest fetcher::test::state::dequeue::empty_queue_returns_none ... ok\ntest fetcher::test::state::dequeue::maintains_fifo_order ... ok\ntest fetcher::test::state::invariant::queue_integrity_after_merge ... ok\ntest fetcher::test::state::config::high_concurrency ... ok\ntest fetcher::test::state::multinode::independent_queues ... ok\ntest service::filter::test::compatible ... ok\ntest service::filter::test::test_parameters ... ok\ntest service::filter::test::test_sizes ... ok\ntest service::gossip::store::test::test_announced ... ok\ntest service::limiter::test::test_limiter_different_rates ... ok\ntest service::limiter::test::test_limiter_multi ... ok\ntest service::limiter::test::test_limiter_refill ... ok\ntest fetcher::test::state::multinode::high_count ... ok\ntest service::message::tests::test_inventory_limit ... ok\ntest service::message::tests::prop_refs_announcement_signing ... ok\ntest service::message::tests::test_ref_remote_limit ... ok\ntest wire::frame::test::test_encode_git_large ... ok\ntest wire::frame::test::test_stream_id ... ok\ntest service::message::tests::test_node_announcement_validate ... ok\ntest wire::message::tests::prop_roundtrip_address ... ok\ntest wire::message::tests::prop_roundtrip_message ... ok\ntest wire::message::tests::prop_zero_bytes_encode_decode ... ok\ntest wire::message::tests::test_inv_ann_max_size ... ok\ntest wire::message::tests::test_node_ann_max_size ... ok\ntest wire::message::tests::test_ping_encode_size_overflow - should panic ... ok\ntest wire::message::tests::test_pingpong_encode_max_size ... ok\ntest wire::message::tests::test_pong_encode_size_overflow - should panic ... ok\ntest wire::message::tests::prop_message_decoder ... ok\ntest wire::tests::prop_oid ... ok\ntest wire::tests::prop_roundtrip_filter ... ok\ntest wire::tests::prop_roundtrip_publickey ... ok\ntest wire::tests::prop_roundtrip_refs ... ok\ntest wire::tests::prop_roundtrip_repoid ... ok\ntest wire::tests::prop_roundtrip_tuple ... ok\ntest wire::tests::prop_roundtrip_u16 ... ok\ntest wire::tests::prop_roundtrip_u32 ... ok\ntest wire::tests::prop_roundtrip_u64 ... ok\ntest wire::tests::prop_roundtrip_vec ... ok\ntest wire::tests::prop_signature ... ok\ntest wire::tests::prop_string ... ok\ntest wire::tests::test_alias ... ok\ntest wire::tests::test_bounded_vec_limit ... ok\ntest wire::tests::test_filter_invalid ... ok\ntest wire::tests::test_string ... ok\ntest wire::varint::test::prop_roundtrip_varint ... ok\ntest wire::varint::test::test_encode_overflow - should panic ... ok\ntest wire::varint::test::test_encoding ... ok\ntest wire::message::tests::test_refs_ann_max_size ... ok\n\ntest result: ok. 99 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.20s\n\n\nrunning 12 tests\ntest protocol::tests::test_capabilities ... ok\ntest protocol::tests::test_empty ... ok\ntest protocol::tests::test_fetch ... ok\ntest protocol::tests::test_fetch_whitespace ... ok\ntest protocol::tests::test_invalid ... ok\ntest protocol::tests::test_list ... ok\ntest protocol::tests::test_list_for_push ... ok\ntest protocol::tests::test_option ... ok\ntest protocol::tests::test_push ... ok\ntest protocol::tests::test_option_whitespace_preservation ... ok\ntest protocol::tests::test_push_delete ... ok\ntest protocol::tests::test_push_force ... ok\n\ntest result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 21 tests\ntest ansi::tests::colors_disabled ... ok\ntest ansi::tests::colors_enabled ... ok\ntest ansi::tests::wrapping ... ok\ntest cell::test::test_width ... ok\ntest element::test::test_spaced ... ok\ntest element::test::test_width ... ok\ntest table::test::test_table ... ok\ntest element::test::test_truncate ... ok\ntest table::test::test_table_border_maximized ... ok\ntest table::test::test_table_border ... ok\ntest table::test::test_table_truncate ... ok\ntest table::test::test_table_border_truncated ... ok\ntest table::test::test_table_unicode ... ok\ntest table::test::test_table_unicode_truncate ... ok\ntest table::test::test_truncate ... ok\ntest textarea::test::test_wrapping_code_block ... ok\ntest textarea::test::test_wrapping ... ok\ntest textarea::test::test_wrapping_fenced_block ... ok\ntest vstack::test::test_vstack ... ok\ntest vstack::test::test_vstack_maximize ... ok\ntest textarea::test::test_wrapping_paragraphs ... ok\n\ntest result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 1 test\ntest crates/radicle/src/cob/patch/encoding/review.rs - cob::patch::encoding::review::Review (line 23) ... ignored\n\ntest result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 1 test\ntest crates/radicle-cob/src/backend/stable.rs - backend::stable::with_advanced_timestamp (line 56) ... ignored\n\ntest result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 6 tests\ntest crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::max (line 96) ... ok\ntest crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::collect_from (line 30) ... ok\ntest crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::push (line 122) ... ok\ntest crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::truncate (line 50) ... ok\ntest crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::unbound (line 149) ... ok\ntest crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::with_capacity (line 66) ... ok\n\ntest result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 1 test\ntest crates/radicle-term/src/table.rs - table (line 4) ... ok\n\ntest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 0 tests\n\ntest result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n",
      "stderr": "    Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle-284bae2ddbc7a249)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_cli-2c524afd75038b2d)\n     Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/rad-09fa8b6b92f963bf)\n     Running tests/commands.rs (/ci/cache/cargo-target/debug/deps/commands-f12780f7d4c001d7)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_cli_test-eb16d72524d258cf)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_cob-6e6d599ab2b9d6d3)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_core-4336e90d66078914)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_crypto-bd6b2a9d3a72ece5)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_dag-05f7457e7194a495)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_fetch-b86dafb29fe0d411)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_git_metadata-7266929c438027dc)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_git_ref_format-b95a9bd0637298c8)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_localtime-9ecb37b1e50cb4e3)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_node-fe5d9d2dea5da7c1)\n     Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/radicle_node-10a0b8a8721eac7f)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_oid-32b41d88203b7116)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_protocol-a4bf0c341b89fcf1)\n     Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/git_remote_rad-878309aa2c710538)\n     Running unittests src/main.rs (/ci/cache/cargo-target/debug/deps/radicle_schemars-6f7430e80541ad16)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_signals-edd60ee35e85748c)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_systemd-d0fb15a14ac3d4e9)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_term-51db4123a6bc434a)\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_windows-2c067555aa9e0165)\n   Doc-tests radicle\n   Doc-tests radicle_cli\n   Doc-tests radicle_cli_test\n   Doc-tests radicle_cob\n   Doc-tests radicle_core\n   Doc-tests radicle_crypto\n   Doc-tests radicle_dag\n   Doc-tests radicle_fetch\n   Doc-tests radicle_git_metadata\n   Doc-tests radicle_git_ref_format\n   Doc-tests radicle_localtime\n   Doc-tests radicle_node\n   Doc-tests radicle_oid\n   Doc-tests radicle_protocol\n   Doc-tests radicle_signals\n   Doc-tests radicle_systemd\n   Doc-tests radicle_term\n   Doc-tests radicle_windows\n",
      "timestamp": {
        "secs_since_epoch": 1776975471,
        "nanos_since_epoch": 195375900
      },
      "log_source": "Plan"
    }
  64. {
      "type": "action_succeeded",
      "action": "cargo_test",
      "timestamp": {
        "secs_since_epoch": 1776975471,
        "nanos_since_epoch": 889450992
      },
      "log_source": "Plan"
    }
  65. {
      "type": "execute_action",
      "action": "shell",
      "shell": "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport RUSTDOCFLAGS='-D warnings'\n\ncargo doc --workspace --no-deps --all-features\n",
      "timestamp": {
        "secs_since_epoch": 1776975471,
        "nanos_since_epoch": 889573753
      },
      "log_source": "Plan"
    }
  66. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            35,
            32,
            66,
            101,
            99,
            97,
            117,
            115,
            101,
            32,
            111,
            102,
            32,
            97,
            32,
            40,
            116,
            101,
            109,
            112,
            111,
            114,
            97,
            114,
            121,
            41,
            32,
            108,
            105,
            109,
            105,
            116,
            97,
            116,
            105,
            111,
            110,
            32,
            105,
            110,
            32,
            65,
            109,
            98,
            105,
            101,
            110,
            116,
            44,
            32,
            119,
            101,
            32,
            110,
            101,
            101,
            100,
            32,
            116,
            111,
            32,
            115,
            101,
            116,
            10,
            35,
            32,
            116,
            104,
            101,
            115,
            101,
            32,
            118,
            97,
            114,
            105,
            97,
            98,
            108,
            101,
            115,
            32,
            109,
            97,
            110,
            117,
            97,
            108,
            108,
            121,
            46,
            32,
            79,
            110,
            99,
            101,
            32,
            65,
            109,
            98,
            105,
            101,
            110,
            116,
            32,
            109,
            97,
            110,
            97,
            103,
            101,
            115,
            32,
            101,
            110,
            118,
            105,
            114,
            111,
            110,
            109,
            101,
            110,
            116,
            10,
            35,
            32,
            118,
            97,
            114,
            105,
            97,
            98,
            108,
            101,
            115,
            32,
            98,
            101,
            116,
            116,
            101,
            114,
            44,
            32,
            116,
            104,
            101,
            115,
            101,
            32,
            99,
            97,
            110,
            32,
            98,
            101,
            32,
            100,
            101,
            108,
            101,
            116,
            101,
            100,
            46,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            67,
            65,
            82,
            71,
            79,
            95,
            84,
            65,
            82,
            71,
            69,
            84,
            95,
            68,
            73,
            82,
            61,
            47,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101,
            47,
            99,
            97,
            99,
            104,
            101,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            67,
            65,
            82,
            71,
            79,
            95,
            72,
            79,
            77,
            69,
            61,
            47,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101,
            47,
            100,
            101,
            112,
            115,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            72,
            79,
            77,
            69,
            61,
            47,
            114,
            111,
            111,
            116,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            80,
            65,
            84,
            72,
            61,
            34,
            47,
            114,
            111,
            111,
            116,
            47,
            46,
            99,
            97,
            114,
            103,
            111,
            47,
            98,
            105,
            110,
            58,
            36,
            80,
            65,
            84,
            72,
            34,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            82,
            85,
            83,
            84,
            68,
            79,
            67,
            70,
            76,
            65,
            71,
            83,
            61,
            39,
            45,
            68,
            32,
            119,
            97,
            114,
            110,
            105,
            110,
            103,
            115,
            39,
            10,
            10,
            99,
            97,
            114,
            103,
            111,
            32,
            100,
            111,
            99,
            32,
            45,
            45,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101,
            32,
            45,
            45,
            110,
            111,
            45,
            100,
            101,
            112,
            115,
            32,
            45,
            45,
            97,
            108,
            108,
            45,
            102,
            101,
            97,
            116,
            117,
            114,
            101,
            115,
            10,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975471,
        "nanos_since_epoch": 889588988
      },
      "log_source": "Plan"
    }
  67. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ export CARGO_TARGET_DIR=/workspace/cache\n+ CARGO_TARGET_DIR=/workspace/cache\n+ export CARGO_HOME=/workspace/deps\n+ CARGO_HOME=/workspace/deps\n+ export HOME=/root\n+ HOME=/root\n+ export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n+ PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n+ export 'RUSTDOCFLAGS=-D warnings'\n+ RUSTDOCFLAGS='-D warnings'\n+ cargo doc --workspace --no-deps --all-features\n    Checking radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)\n    Checking radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)\n    Checking radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)\n    Checking radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)\n    Checking radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)\n   Compiling radicle v0.23.0 (/ci/src/crates/radicle)\n    Checking radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)\n    Checking radicle-core v0.2.0 (/ci/src/crates/radicle-core)\n    Checking radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)\n    Checking radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)\n   Compiling radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)\n    Checking radicle-term v0.17.0 (/ci/src/crates/radicle-term)\n   Compiling radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)\n   Compiling radicle-node v0.19.0 (/ci/src/crates/radicle-node)\n    Checking radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)\n Documenting radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)\n Documenting radicle-term v0.17.0 (/ci/src/crates/radicle-term)\n Documenting radicle v0.23.0 (/ci/src/crates/radicle)\n    Checking radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)\n    Checking radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)\n Documenting radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)\n Documenting radicle-node v0.19.0 (/ci/src/crates/radicle-node)\n Documenting radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)\n Documenting radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)\n Documenting radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)\n Documenting radicle-schemars v0.7.0 (/ci/src/crates/radicle-schemars)\n Documenting radicle-cli-test v0.13.0 (/ci/src/crates/radicle-cli-test)\n Documenting radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)\n Documenting radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)\n Documenting radicle-core v0.2.0 (/ci/src/crates/radicle-core)\n Documenting radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)\n Documenting radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)\n Documenting radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)\n Documenting radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)\n Documenting radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)\n Documenting radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)\n Documenting radicle-windows v0.1.0 (/ci/src/crates/radicle-windows)\n    Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.73s\n   Generated /workspace/cache/doc/radicle/index.html and 20 other files\n",
      "timestamp": {
        "secs_since_epoch": 1776975483,
        "nanos_since_epoch": 735592016
      },
      "log_source": "Plan"
    }
  68. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport RUSTDOCFLAGS='-D warnings'\n\ncargo doc --workspace --no-deps --all-features\n",
      "timestamp": {
        "secs_since_epoch": 1776975483,
        "nanos_since_epoch": 736126937
      },
      "log_source": "Plan"
    }
  69. {
      "type": "execute_action",
      "action": "shell",
      "shell": "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\n# These are based on debian/control.\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n\n# Clean up after tests and documentation building. The Debian\n# package building tools do not want changes outside the\n# `debian` directory, compared to what is committed to Git, from\n# which the \"upstream tarball\" is created.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\n# Update debian/changelog with a new version so that every run\n# creates a newer version. This avoids us having to update the\n# file manually for every CI run.\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n",
      "timestamp": {
        "secs_since_epoch": 1776975483,
        "nanos_since_epoch": 736316935
      },
      "log_source": "Plan"
    }
  70. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            35,
            32,
            66,
            101,
            99,
            97,
            117,
            115,
            101,
            32,
            111,
            102,
            32,
            97,
            32,
            40,
            116,
            101,
            109,
            112,
            111,
            114,
            97,
            114,
            121,
            41,
            32,
            108,
            105,
            109,
            105,
            116,
            97,
            116,
            105,
            111,
            110,
            32,
            105,
            110,
            32,
            65,
            109,
            98,
            105,
            101,
            110,
            116,
            44,
            32,
            119,
            101,
            32,
            110,
            101,
            101,
            100,
            32,
            116,
            111,
            32,
            115,
            101,
            116,
            10,
            35,
            32,
            116,
            104,
            101,
            115,
            101,
            32,
            118,
            97,
            114,
            105,
            97,
            98,
            108,
            101,
            115,
            32,
            109,
            97,
            110,
            117,
            97,
            108,
            108,
            121,
            46,
            32,
            79,
            110,
            99,
            101,
            32,
            65,
            109,
            98,
            105,
            101,
            110,
            116,
            32,
            109,
            97,
            110,
            97,
            103,
            101,
            115,
            32,
            101,
            110,
            118,
            105,
            114,
            111,
            110,
            109,
            101,
            110,
            116,
            10,
            35,
            32,
            118,
            97,
            114,
            105,
            97,
            98,
            108,
            101,
            115,
            32,
            98,
            101,
            116,
            116,
            101,
            114,
            44,
            32,
            116,
            104,
            101,
            115,
            101,
            32,
            99,
            97,
            110,
            32,
            98,
            101,
            32,
            100,
            101,
            108,
            101,
            116,
            101,
            100,
            46,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            67,
            65,
            82,
            71,
            79,
            95,
            84,
            65,
            82,
            71,
            69,
            84,
            95,
            68,
            73,
            82,
            61,
            47,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101,
            47,
            99,
            97,
            99,
            104,
            101,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            67,
            65,
            82,
            71,
            79,
            95,
            72,
            79,
            77,
            69,
            61,
            47,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101,
            47,
            100,
            101,
            112,
            115,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            72,
            79,
            77,
            69,
            61,
            47,
            114,
            111,
            111,
            116,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            80,
            65,
            84,
            72,
            61,
            34,
            47,
            114,
            111,
            111,
            116,
            47,
            46,
            99,
            97,
            114,
            103,
            111,
            47,
            98,
            105,
            110,
            58,
            36,
            80,
            65,
            84,
            72,
            34,
            10,
            10,
            35,
            32,
            84,
            104,
            101,
            115,
            101,
            32,
            97,
            114,
            101,
            32,
            98,
            97,
            115,
            101,
            100,
            32,
            111,
            110,
            32,
            100,
            101,
            98,
            105,
            97,
            110,
            47,
            99,
            111,
            110,
            116,
            114,
            111,
            108,
            46,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            68,
            69,
            66,
            69,
            77,
            65,
            73,
            76,
            61,
            108,
            105,
            119,
            64,
            108,
            105,
            119,
            46,
            102,
            105,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            68,
            69,
            66,
            70,
            85,
            76,
            76,
            78,
            65,
            77,
            69,
            61,
            34,
            76,
            97,
            114,
            115,
            32,
            87,
            105,
            114,
            122,
            101,
            110,
            105,
            117,
            115,
            34,
            10,
            10,
            35,
            32,
            67,
            108,
            101,
            97,
            110,
            32,
            117,
            112,
            32,
            97,
            102,
            116,
            101,
            114,
            32,
            116,
            101,
            115,
            116,
            115,
            32,
            97,
            110,
            100,
            32,
            100,
            111,
            99,
            117,
            109,
            101,
            110,
            116,
            97,
            116,
            105,
            111,
            110,
            32,
            98,
            117,
            105,
            108,
            100,
            105,
            110,
            103,
            46,
            32,
            84,
            104,
            101,
            32,
            68,
            101,
            98,
            105,
            97,
            110,
            10,
            35,
            32,
            112,
            97,
            99,
            107,
            97,
            103,
            101,
            32,
            98,
            117,
            105,
            108,
            100,
            105,
            110,
            103,
            32,
            116,
            111,
            111,
            108,
            115,
            32,
            100,
            111,
            32,
            110,
            111,
            116,
            32,
            119,
            97,
            110,
            116,
            32,
            99,
            104,
            97,
            110,
            103,
            101,
            115,
            32,
            111,
            117,
            116,
            115,
            105,
            100,
            101,
            32,
            116,
            104,
            101,
            10,
            35,
            32,
            96,
            100,
            101,
            98,
            105,
            97,
            110,
            96,
            32,
            100,
            105,
            114,
            101,
            99,
            116,
            111,
            114,
            121,
            44,
            32,
            99,
            111,
            109,
            112,
            97,
            114,
            101,
            100,
            32,
            116,
            111,
            32,
            119,
            104,
            97,
            116,
            32,
            105,
            115,
            32,
            99,
            111,
            109,
            109,
            105,
            116,
            116,
            101,
            100,
            32,
            116,
            111,
            32,
            71,
            105,
            116,
            44,
            32,
            102,
            114,
            111,
            109,
            10,
            35,
            32,
            119,
            104,
            105,
            99,
            104,
            32,
            116,
            104,
            101,
            32,
            34,
            117,
            112,
            115,
            116,
            114,
            101,
            97,
            109,
            32,
            116,
            97,
            114,
            98,
            97,
            108,
            108,
            34,
            32,
            105,
            115,
            32,
            99,
            114,
            101,
            97,
            116,
            101,
            100,
            46,
            10,
            103,
            105,
            116,
            32,
            114,
            101,
            115,
            101,
            116,
            32,
            45,
            45,
            104,
            97,
            114,
            100,
            10,
            103,
            105,
            116,
            32,
            99,
            108,
            101,
            97,
            110,
            32,
            45,
            102,
            100,
            120,
            10,
            103,
            105,
            116,
            32,
            115,
            116,
            97,
            116,
            117,
            115,
            32,
            45,
            45,
            105,
            103,
            110,
            111,
            114,
            101,
            100,
            10,
            10,
            35,
            32,
            85,
            112,
            100,
            97,
            116,
            101,
            32,
            100,
            101,
            98,
            105,
            97,
            110,
            47,
            99,
            104,
            97,
            110,
            103,
            101,
            108,
            111,
            103,
            32,
            119,
            105,
            116,
            104,
            32,
            97,
            32,
            110,
            101,
            119,
            32,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            32,
            115,
            111,
            32,
            116,
            104,
            97,
            116,
            32,
            101,
            118,
            101,
            114,
            121,
            32,
            114,
            117,
            110,
            10,
            35,
            32,
            99,
            114,
            101,
            97,
            116,
            101,
            115,
            32,
            97,
            32,
            110,
            101,
            119,
            101,
            114,
            32,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            46,
            32,
            84,
            104,
            105,
            115,
            32,
            97,
            118,
            111,
            105,
            100,
            115,
            32,
            117,
            115,
            32,
            104,
            97,
            118,
            105,
            110,
            103,
            32,
            116,
            111,
            32,
            117,
            112,
            100,
            97,
            116,
            101,
            32,
            116,
            104,
            101,
            10,
            35,
            32,
            102,
            105,
            108,
            101,
            32,
            109,
            97,
            110,
            117,
            97,
            108,
            108,
            121,
            32,
            102,
            111,
            114,
            32,
            101,
            118,
            101,
            114,
            121,
            32,
            67,
            73,
            32,
            114,
            117,
            110,
            46,
            10,
            86,
            61,
            34,
            36,
            40,
            100,
            112,
            107,
            103,
            45,
            112,
            97,
            114,
            115,
            101,
            99,
            104,
            97,
            110,
            103,
            101,
            108,
            111,
            103,
            32,
            45,
            83,
            86,
            101,
            114,
            115,
            105,
            111,
            110,
            32,
            124,
            32,
            115,
            101,
            100,
            32,
            39,
            115,
            47,
            45,
            91,
            94,
            45,
            93,
            42,
            36,
            47,
            47,
            39,
            41,
            34,
            10,
            84,
            61,
            34,
            36,
            40,
            100,
            97,
            116,
            101,
            32,
            45,
            117,
            32,
            34,
            43,
            37,
            89,
            37,
            109,
            37,
            100,
            84,
            37,
            72,
            37,
            77,
            37,
            83,
            34,
            41,
            34,
            10,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            61,
            34,
            36,
            86,
            46,
            99,
            105,
            36,
            84,
            45,
            49,
            34,
            10,
            100,
            99,
            104,
            32,
            45,
            118,
            32,
            34,
            36,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            34,
            32,
            34,
            67,
            73,
            32,
            98,
            117,
            105,
            108,
            100,
            32,
            117,
            110,
            100,
            101,
            114,
            32,
            65,
            109,
            98,
            105,
            101,
            110,
            116,
            46,
            34,
            10,
            100,
            99,
            104,
            32,
            45,
            114,
            32,
            39,
            39,
            10,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975483,
        "nanos_since_epoch": 787981095
      },
      "log_source": "Plan"
    }
  71. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "HEAD is now at 878f0a1fc0 protocol: Minimize scope of `radicle::git::raw`\nHEAD detached at 878f0a1fc0\nnothing to commit, working tree clean\n",
      "stderr": "+ export CARGO_TARGET_DIR=/workspace/cache\n+ CARGO_TARGET_DIR=/workspace/cache\n+ export CARGO_HOME=/workspace/deps\n+ CARGO_HOME=/workspace/deps\n+ export HOME=/root\n+ HOME=/root\n+ export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n+ PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n+ export DEBEMAIL=liw@liw.fi\n+ DEBEMAIL=liw@liw.fi\n+ export 'DEBFULLNAME=Lars Wirzenius'\n+ DEBFULLNAME='Lars Wirzenius'\n+ git reset --hard\n+ git clean -fdx\n+ git status --ignored\n++ dpkg-parsechangelog -SVersion\n++ sed 's/-[^-]*$//'\n+ V=1.2.1\n++ date -u +%Y%m%dT%H%M%S\n+ T=20260423T201803\n+ version=1.2.1.ci20260423T201803-1\n+ dch -v 1.2.1.ci20260423T201803-1 'CI build under Ambient.'\n+ dch -r ''\n",
      "timestamp": {
        "secs_since_epoch": 1776975484,
        "nanos_since_epoch": 127930746
      },
      "log_source": "Plan"
    }
  72. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\n# These are based on debian/control.\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n\n# Clean up after tests and documentation building. The Debian\n# package building tools do not want changes outside the\n# `debian` directory, compared to what is committed to Git, from\n# which the \"upstream tarball\" is created.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\n# Update debian/changelog with a new version so that every run\n# creates a newer version. This avoids us having to update the\n# file manually for every CI run.\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n",
      "timestamp": {
        "secs_since_epoch": 1776975484,
        "nanos_since_epoch": 128419228
      },
      "log_source": "Plan"
    }
  73. {
      "type": "execute_action",
      "action": "deb",
      "packages": ".",
      "timestamp": {
        "secs_since_epoch": 1776975484,
        "nanos_since_epoch": 128611047
      },
      "log_source": "Plan"
    }
  74. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            47,
            98,
            105,
            110,
            47,
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            35,
            33,
            47,
            117,
            115,
            114,
            47,
            98,
            105,
            110,
            47,
            101,
            110,
            118,
            32,
            98,
            97,
            115,
            104,
            10,
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            10,
            101,
            99,
            104,
            111,
            32,
            34,
            80,
            65,
            84,
            72,
            32,
            97,
            116,
            32,
            115,
            116,
            97,
            114,
            116,
            58,
            32,
            36,
            80,
            65,
            84,
            72,
            34,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            80,
            65,
            84,
            72,
            61,
            34,
            47,
            114,
            111,
            111,
            116,
            47,
            46,
            99,
            97,
            114,
            103,
            111,
            47,
            98,
            105,
            110,
            58,
            36,
            80,
            65,
            84,
            72,
            34,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            67,
            65,
            82,
            71,
            79,
            95,
            72,
            79,
            77,
            69,
            61,
            47,
            99,
            105,
            47,
            100,
            101,
            112,
            115,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            68,
            69,
            66,
            69,
            77,
            65,
            73,
            76,
            61,
            108,
            105,
            119,
            64,
            108,
            105,
            119,
            46,
            102,
            105,
            10,
            101,
            120,
            112,
            111,
            114,
            116,
            32,
            68,
            69,
            66,
            70,
            85,
            76,
            76,
            78,
            65,
            77,
            69,
            61,
            34,
            76,
            97,
            114,
            115,
            32,
            87,
            105,
            114,
            122,
            101,
            110,
            105,
            117,
            115,
            34,
            10,
            47,
            98,
            105,
            110,
            47,
            101,
            110,
            118,
            10,
            10,
            99,
            111,
            109,
            109,
            97,
            110,
            100,
            32,
            45,
            118,
            32,
            99,
            97,
            114,
            103,
            111,
            10,
            99,
            111,
            109,
            109,
            97,
            110,
            100,
            32,
            45,
            118,
            32,
            114,
            117,
            115,
            116,
            99,
            10,
            10,
            99,
            97,
            114,
            103,
            111,
            32,
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            10,
            114,
            117,
            115,
            116,
            99,
            32,
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            10,
            10,
            35,
            32,
            71,
            101,
            116,
            32,
            110,
            97,
            109,
            101,
            32,
            97,
            110,
            100,
            32,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            32,
            111,
            102,
            32,
            115,
            111,
            117,
            114,
            99,
            101,
            32,
            112,
            97,
            99,
            107,
            97,
            103,
            101,
            46,
            10,
            110,
            97,
            109,
            101,
            61,
            34,
            36,
            40,
            100,
            112,
            107,
            103,
            45,
            112,
            97,
            114,
            115,
            101,
            99,
            104,
            97,
            110,
            103,
            101,
            108,
            111,
            103,
            32,
            45,
            83,
            83,
            111,
            117,
            114,
            99,
            101,
            41,
            34,
            10,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            61,
            34,
            36,
            40,
            100,
            112,
            107,
            103,
            45,
            112,
            97,
            114,
            115,
            101,
            99,
            104,
            97,
            110,
            103,
            101,
            108,
            111,
            103,
            32,
            45,
            83,
            86,
            101,
            114,
            115,
            105,
            111,
            110,
            41,
            34,
            10,
            10,
            35,
            32,
            71,
            101,
            116,
            32,
            117,
            112,
            115,
            116,
            114,
            101,
            97,
            109,
            32,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            58,
            32,
            101,
            118,
            101,
            114,
            121,
            116,
            104,
            105,
            110,
            103,
            32,
            98,
            101,
            102,
            111,
            114,
            101,
            32,
            116,
            104,
            101,
            32,
            108,
            97,
            115,
            116,
            32,
            100,
            97,
            115,
            104,
            46,
            10,
            117,
            118,
            61,
            34,
            36,
            40,
            101,
            99,
            104,
            111,
            32,
            34,
            36,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            34,
            32,
            124,
            32,
            115,
            101,
            100,
            32,
            39,
            115,
            47,
            45,
            91,
            94,
            45,
            93,
            42,
            36,
            47,
            47,
            39,
            41,
            34,
            10,
            10,
            35,
            32,
            70,
            105,
            108,
            101,
            115,
            32,
            116,
            104,
            97,
            116,
            32,
            119,
            105,
            108,
            108,
            32,
            98,
            101,
            32,
            99,
            114,
            101,
            97,
            116,
            101,
            100,
            46,
            10,
            97,
            114,
            99,
            104,
            61,
            34,
            36,
            40,
            100,
            112,
            107,
            103,
            32,
            45,
            45,
            112,
            114,
            105,
            110,
            116,
            45,
            97,
            114,
            99,
            104,
            105,
            116,
            101,
            99,
            116,
            117,
            114,
            101,
            41,
            34,
            10,
            111,
            114,
            105,
            103,
            61,
            34,
            46,
            46,
            47,
            36,
            123,
            110,
            97,
            109,
            101,
            125,
            95,
            36,
            123,
            117,
            118,
            125,
            46,
            111,
            114,
            105,
            103,
            46,
            116,
            97,
            114,
            46,
            120,
            122,
            34,
            10,
            100,
            101,
            98,
            61,
            34,
            46,
            46,
            47,
            36,
            123,
            110,
            97,
            109,
            101,
            125,
            95,
            36,
            123,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            125,
            95,
            36,
            123,
            97,
            114,
            99,
            104,
            125,
            46,
            100,
            101,
            98,
            34,
            10,
            99,
            104,
            97,
            110,
            103,
            101,
            115,
            61,
            34,
            46,
            46,
            47,
            36,
            123,
            110,
            97,
            109,
            101,
            125,
            95,
            36,
            123,
            118,
            101,
            114,
            115,
            105,
            111,
            110,
            125,
            95,
            36,
            123,
            97,
            114,
            99,
            104,
            125,
            46,
            99,
            104,
            97,
            110,
            103,
            101,
            115,
            34,
            10,
            10,
            35,
            32,
            67,
            114,
            101,
            97,
            116,
            101,
            32,
            34,
            117,
            112,
            115,
            116,
            114,
            101,
            97,
            109,
            32,
            116,
            97,
            114,
            98,
            97,
            108,
            108,
            34,
            46,
            10,
            103,
            105,
            116,
            32,
            97,
            114,
            99,
            104,
            105,
            118,
            101,
            32,
            72,
            69,
            65,
            68,
            32,
            124,
            32,
            120,
            122,
            32,
            62,
            34,
            36,
            111,
            114,
            105,
            103,
            34,
            10,
            10,
            35,
            32,
            66,
            117,
            105,
            108,
            100,
            32,
            112,
            97,
            99,
            107,
            97,
            103,
            101,
            46,
            10,
            100,
            112,
            107,
            103,
            45,
            98,
            117,
            105,
            108,
            100,
            112,
            97,
            99,
            107,
            97,
            103,
            101,
            32,
            45,
            117,
            115,
            32,
            45,
            117,
            99,
            10,
            10,
            35,
            32,
            68,
            117,
            109,
            112,
            32,
            115,
            111,
            109,
            101,
            32,
            105,
            110,
            102,
            111,
            114,
            109,
            97,
            116,
            105,
            111,
            110,
            32,
            116,
            111,
            32,
            109,
            97,
            107,
            101,
            32,
            105,
            116,
            32,
            101,
            97,
            115,
            105,
            101,
            114,
            32,
            116,
            111,
            32,
            118,
            105,
            115,
            117,
            97,
            108,
            108,
            121,
            32,
            118,
            101,
            114,
            105,
            102,
            121,
            10,
            35,
            32,
            101,
            118,
            101,
            114,
            121,
            116,
            104,
            105,
            110,
            103,
            32,
            108,
            111,
            111,
            107,
            115,
            32,
            79,
            75,
            46,
            32,
            65,
            108,
            115,
            111,
            44,
            32,
            116,
            101,
            115,
            116,
            32,
            116,
            104,
            101,
            32,
            112,
            97,
            99,
            107,
            97,
            103,
            101,
            32,
            119,
            105,
            116,
            104,
            32,
            116,
            104,
            101,
            32,
            108,
            105,
            110,
            116,
            105,
            97,
            110,
            32,
            116,
            111,
            111,
            108,
            46,
            10,
            10,
            108,
            115,
            32,
            45,
            108,
            32,
            46,
            46,
            10,
            102,
            111,
            114,
            32,
            120,
            32,
            105,
            110,
            32,
            46,
            46,
            47,
            42,
            46,
            100,
            101,
            98,
            59,
            32,
            100,
            111,
            32,
            100,
            112,
            107,
            103,
            32,
            45,
            99,
            32,
            34,
            36,
            120,
            34,
            59,
            32,
            100,
            111,
            110,
            101,
            10,
            35,
            32,
            70,
            73,
            88,
            77,
            69,
            58,
            32,
            100,
            105,
            115,
            97,
            98,
            108,
            101,
            100,
            32,
            119,
            104,
            105,
            108,
            101,
            32,
            116,
            104,
            105,
            115,
            32,
            112,
            114,
            101,
            118,
            101,
            110,
            116,
            115,
            32,
            114,
            97,
            100,
            105,
            99,
            108,
            101,
            45,
            110,
            97,
            116,
            105,
            118,
            101,
            45,
            99,
            105,
            32,
            100,
            101,
            98,
            32,
            102,
            114,
            111,
            109,
            32,
            98,
            101,
            105,
            110,
            103,
            32,
            98,
            117,
            105,
            108,
            116,
            46,
            10,
            35,
            32,
            108,
            105,
            110,
            116,
            105,
            97,
            110,
            32,
            45,
            105,
            32,
            45,
            45,
            97,
            108,
            108,
            111,
            119,
            45,
            114,
            111,
            111,
            116,
            32,
            45,
            45,
            102,
            97,
            105,
            108,
            45,
            111,
            110,
            32,
            119,
            97,
            114,
            110,
            105,
            110,
            103,
            32,
            46,
            46,
            47,
            42,
            46,
            99,
            104,
            97,
            110,
            103,
            101,
            115,
            10,
            10,
            35,
            32,
            77,
            111,
            118,
            101,
            32,
            102,
            105,
            108,
            101,
            115,
            32,
            116,
            111,
            32,
            97,
            114,
            116,
            105,
            102,
            97,
            99,
            116,
            115,
            32,
            100,
            105,
            114,
            101,
            99,
            116,
            111,
            114,
            121,
            46,
            10,
            109,
            118,
            32,
            46,
            46,
            47,
            42,
            95,
            42,
            32,
            47,
            99,
            105,
            47,
            97,
            114,
            116,
            105,
            102,
            97,
            99,
            116,
            115,
            47,
            46,
            10,
            32,
            32,
            32,
            32,
            32,
            32,
            32,
            32
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1776975484,
        "nanos_since_epoch": 128822016
      },
      "log_source": "Plan"
    }
  75. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nDEBFULLNAME=Lars Wirzenius\nCARGO_TARGET_DIR=/ci/cache/cargo-target\nPWD=/ci/src\nSYSTEMD_EXEC_PID=282\nHOME=/root\nLANG=C.UTF-8\nCARGO_HOME=/ci/deps\nDEBEMAIL=liw@liw.fi\nINVOCATION_ID=7d231c3f4d874aae824d330ad57a2956\nSHLVL=2\nJOURNAL_STREAM=8:15361\nPATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\nOLDPWD=/\n_=/bin/env\n/root/.cargo/bin/cargo\n/root/.cargo/bin/rustc\ncargo 1.90.0 (840b83a10 2025-07-30)\nrustc 1.90.0 (1159e78c4 2025-09-14)\ndpkg-buildpackage: info: source package radicle\ndpkg-buildpackage: info: source version 1.2.1.ci20260423T201803-1\ndpkg-buildpackage: info: source distribution unstable\ndpkg-buildpackage: info: source changed by Lars Wirzenius <liw@liw.fi>\ndpkg-buildpackage: info: host architecture amd64\ndh clean\n   dh_clean\ndpkg-source: info: using source format '3.0 (quilt)'\ndpkg-source: info: building radicle using existing ./radicle_1.2.1.ci20260423T201803.orig.tar.xz\ndpkg-source: info: building radicle in radicle_1.2.1.ci20260423T201803-1.debian.tar.xz\ndpkg-source: info: building radicle in radicle_1.2.1.ci20260423T201803-1.dsc\nmake: 'build' is up to date.\ndh binary\n   dh_update_autotools_config\n   dh_autoreconf\n   debian/rules override_dh_auto_build\nmake[1]: Entering directory '/ci/src'\nscripts/build-man-pages.sh . *.adoc\nBuilding git-remote-rad.1.adoc..\nBuilding rad-id.1.adoc..\nBuilding rad-patch.1.adoc..\nBuilding rad.1.adoc..\nBuilding radicle-node.1.adoc..\nmake[1]: Leaving directory '/ci/src'\n   debian/rules override_dh_auto_test\nmake[1]: Entering directory '/ci/src'\necho tests are disabled, for now\ntests are disabled, for now\nmake[1]: Leaving directory '/ci/src'\n   create-stamp debian/debhelper-build-stamp\n   dh_testroot\n   dh_prep\n   debian/rules override_dh_auto_install\nmake[1]: Entering directory '/ci/src'\nmkdir -p debian/radicle/usr\ncargo install --offline --locked --path=crates/radicle-cli --root=debian/radicle/usr\ncargo install --offline --locked --path=crates/radicle-node --root=debian/radicle/usr\ncargo install --offline --locked --path=crates/radicle-remote-helper --root=debian/radicle/usr\nfind debian/radicle -name '.crates*' -delete\nmake[1]: Leaving directory '/ci/src'\n   dh_install\n   dh_installdocs\n   dh_installchangelogs\n   dh_installman\n   dh_lintian\n   dh_perl\n   dh_link\n   dh_strip_nondeterminism\n   dh_compress\n   dh_fixperms\n   dh_missing\n   dh_strip\n   dh_makeshlibs\n   dh_shlibdeps\n   dh_installdeb\n   dh_gencontrol\n   dh_md5sums\n   dh_builddeb\ndpkg-deb: building package 'radicle' in '../radicle_1.2.1.ci20260423T201803-1_amd64.deb'.\ndpkg-genchanges: info: including full source code in upload\ndpkg-buildpackage: info: full upload (original source is included)\ntotal 13340\ndrwxr-xr-x  2 root root     4096 Apr 23 20:11 artifacts\ndrwxr-xr-x  5 root root     4096 Apr 23 07:59 cache\ndrwxr-xr-x  3 root root     4096 Apr 23 20:17 deps\n-rw-r--r--  1 root root     2096 Apr 23 20:18 radicle_1.2.1.ci20260423T201803-1.debian.tar.xz\n-rw-r--r--  1 root root     1028 Apr 23 20:18 radicle_1.2.1.ci20260423T201803-1.dsc\n-rw-r--r--  1 root root     5907 Apr 23 20:20 radicle_1.2.1.ci20260423T201803-1_amd64.buildinfo\n-rw-r--r--  1 root root     2023 Apr 23 20:20 radicle_1.2.1.ci20260423T201803-1_amd64.changes\n-rw-r--r--  1 root root 12284536 Apr 23 20:20 radicle_1.2.1.ci20260423T201803-1_amd64.deb\n-rw-r--r--  1 root root  1333276 Apr 23 20:18 radicle_1.2.1.ci20260423T201803.orig.tar.xz\ndrwxr-xr-x 14 root root     4096 Apr 23 20:18 src\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/bin/\n-rwxr-xr-x root/root   9245232 2026-04-23 20:18 ./usr/bin/git-remote-rad\n-rwxr-xr-x root/root  30980248 2026-04-23 20:18 ./usr/bin/rad\n-rwxr-xr-x root/root  13339352 2026-04-23 20:18 ./usr/bin/radicle-node\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/doc/\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/doc/radicle/\n-rw-r--r-- root/root       291 2026-04-23 20:18 ./usr/share/doc/radicle/changelog.Debian.gz\n-rw-r--r-- root/root     12326 2026-04-23 20:18 ./usr/share/doc/radicle/changelog.gz\n-rw-r--r-- root/root       357 2026-04-23 20:18 ./usr/share/doc/radicle/copyright\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/lintian/\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/lintian/overrides/\n-rw-r--r-- root/root       121 2026-04-23 20:18 ./usr/share/lintian/overrides/radicle\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/man/\ndrwxr-xr-x root/root         0 2026-04-23 20:18 ./usr/share/man/man1/\n-rw-r--r-- root/root       557 2026-04-23 20:18 ./usr/share/man/man1/git-remote-rad.1.gz\n-rw-r--r-- root/root      2701 2026-04-23 20:18 ./usr/share/man/man1/rad-id.1.gz\n-rw-r--r-- root/root      4362 2026-04-23 20:18 ./usr/share/man/man1/rad-patch.1.gz\n-rw-r--r-- root/root      3717 2026-04-23 20:18 ./usr/share/man/man1/rad.1.gz\n-rw-r--r-- root/root       493 2026-04-23 20:18 ./usr/share/man/man1/radicle-node.1.gz\n",
      "stderr": "+ echo 'PATH at start: /root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'\n+ export PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n+ PATH=/root/.cargo/bin:/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n+ export CARGO_HOME=/ci/deps\n+ CARGO_HOME=/ci/deps\n+ export DEBEMAIL=liw@liw.fi\n+ DEBEMAIL=liw@liw.fi\n+ export 'DEBFULLNAME=Lars Wirzenius'\n+ DEBFULLNAME='Lars Wirzenius'\n+ /bin/env\n+ command -v cargo\n+ command -v rustc\n+ cargo --version\n+ rustc --version\n++ dpkg-parsechangelog -SSource\n+ name=radicle\n++ dpkg-parsechangelog -SVersion\n+ version=1.2.1.ci20260423T201803-1\n++ echo 1.2.1.ci20260423T201803-1\n++ sed 's/-[^-]*$//'\n+ uv=1.2.1.ci20260423T201803\n++ dpkg --print-architecture\n+ arch=amd64\n+ orig=../radicle_1.2.1.ci20260423T201803.orig.tar.xz\n+ deb=../radicle_1.2.1.ci20260423T201803-1_amd64.deb\n+ changes=../radicle_1.2.1.ci20260423T201803-1_amd64.changes\n+ git archive HEAD\n+ xz\n+ dpkg-buildpackage -us -uc\n dpkg-source --before-build .\n debian/rules clean\n dpkg-source -b .\n debian/rules build\n debian/rules binary\n  Installing radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)\n   Compiling radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)\n   Compiling radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)\n   Compiling radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)\n   Compiling radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)\n   Compiling radicle v0.23.0 (/ci/src/crates/radicle)\n   Compiling radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)\n   Compiling radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)\n   Compiling radicle-core v0.2.0 (/ci/src/crates/radicle-core)\n   Compiling radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)\n   Compiling radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)\n   Compiling radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)\n   Compiling radicle-term v0.17.0 (/ci/src/crates/radicle-term)\n    Finished `release` profile [optimized] target(s) in 1m 16s\n  Installing debian/radicle/usr/bin/rad\n   Installed package `radicle-cli v0.20.0 (/ci/src/crates/radicle-cli)` (executable `rad`)\nwarning: be sure to add `debian/radicle/usr/bin` to your PATH to be able to run the installed binaries\n  Installing radicle-node v0.19.0 (/ci/src/crates/radicle-node)\n   Compiling radicle-oid v0.1.0 (/ci/src/crates/radicle-oid)\n   Compiling radicle-crypto v0.16.0 (/ci/src/crates/radicle-crypto)\n   Compiling radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)\n   Compiling radicle v0.23.0 (/ci/src/crates/radicle)\n   Compiling radicle-cob v0.19.0 (/ci/src/crates/radicle-cob)\n   Compiling radicle-core v0.2.0 (/ci/src/crates/radicle-core)\n   Compiling radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)\n   Compiling radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)\n   Compiling radicle-node v0.19.0 (/ci/src/crates/radicle-node)\n   Compiling radicle-systemd v0.12.0 (/ci/src/crates/radicle-systemd)\n   Compiling radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)\n   Compiling radicle-fetch v0.19.0 (/ci/src/crates/radicle-fetch)\n   Compiling radicle-protocol v0.7.0 (/ci/src/crates/radicle-protocol)\n    Finished `release` profile [optimized] target(s) in 57.31s\n  Installing debian/radicle/usr/bin/radicle-node\n   Installed package `radicle-node v0.19.0 (/ci/src/crates/radicle-node)` (executable `radicle-node`)\nwarning: be sure to add `debian/radicle/usr/bin` to your PATH to be able to run the installed binaries\n  Installing radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)\n   Compiling radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)\n    Finished `release` profile [optimized] target(s) in 11.71s\n  Installing debian/radicle/usr/bin/git-remote-rad\n   Installed package `radicle-remote-helper v0.16.0 (/ci/src/crates/radicle-remote-helper)` (executable `git-remote-rad`)\nwarning: be sure to add `debian/radicle/usr/bin` to your PATH to be able to run the installed binaries\n dpkg-genbuildinfo -O../radicle_1.2.1.ci20260423T201803-1_amd64.buildinfo\n dpkg-genchanges -O../radicle_1.2.1.ci20260423T201803-1_amd64.changes\n dpkg-source --after-build .\n+ ls -l ..\n+ for x in ../*.deb\n+ dpkg -c ../radicle_1.2.1.ci20260423T201803-1_amd64.deb\n+ mv ../radicle_1.2.1.ci20260423T201803-1.debian.tar.xz ../radicle_1.2.1.ci20260423T201803-1.dsc ../radicle_1.2.1.ci20260423T201803-1_amd64.buildinfo ../radicle_1.2.1.ci20260423T201803-1_amd64.changes ../radicle_1.2.1.ci20260423T201803-1_amd64.deb ../radicle_1.2.1.ci20260423T201803.orig.tar.xz /ci/artifacts/.\n",
      "timestamp": {
        "secs_since_epoch": 1776975642,
        "nanos_since_epoch": 994340144
      },
      "log_source": "Plan"
    }
  76. {
      "type": "action_succeeded",
      "action": "deb",
      "packages": ".",
      "timestamp": {
        "secs_since_epoch": 1776975643,
        "nanos_since_epoch": 128017190
      },
      "log_source": "Plan"
    }
  77. {
      "type": "execute_action",
      "action": "tar_create",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1776975643,
        "nanos_since_epoch": 130039764
      },
      "log_source": "Plan"
    }
  78. {
      "type": "action_succeeded",
      "action": "tar_create",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1776975655,
        "nanos_since_epoch": 361783548
      },
      "log_source": "Plan"
    }
  79. {
      "type": "execute_action",
      "action": "tar_create",
      "archive": "/dev/vdd",
      "directory": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1776975655,
        "nanos_since_epoch": 364378886
      },
      "log_source": "Plan"
    }
  80. {
      "type": "action_succeeded",
      "action": "tar_create",
      "archive": "/dev/vdd",
      "directory": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1776975655,
        "nanos_since_epoch": 407943989
      },
      "log_source": "Plan"
    }
  81. {
      "type": "plan_succeeded",
      "timestamp": {
        "secs_since_epoch": 1776975655,
        "nanos_since_epoch": 412030589
      },
      "log_source": "Plan"
    }
  82. {
      "type": "executor_ends_successfully",
      "timestamp": {
        "secs_since_epoch": 1776975655,
        "nanos_since_epoch": 414389541
      },
      "log_source": "Plan"
    }

Trigger message

{
  "request": "trigger",
  "version": 1,
  "event_type": "patch",
  "repository": {
    "id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
    "name": "heartwood",
    "description": "Radicle Heartwood Protocol & Stack",
    "private": false,
    "default_branch": "master",
    "delegates": [
      "did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
      "did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
      "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
      "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
    ]
  },
  "action": "Created",
  "patch": {
    "id": "1c9eb544c33490201faec77117049f21baa869ed",
    "author": {
      "id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
      "alias": "lorenz"
    },
    "title": "Improvements to Git OID Handling",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "5d8988b1a242cb1ef006313cb0aa3756e629a422",
    "after": "878f0a1fc066fe6f93373b3aff95cf3aea5e9127",
    "commits": [
      "878f0a1fc066fe6f93373b3aff95cf3aea5e9127",
      "735e45b7e12d653ad1a9d237024e006f72d60b2f",
      "54164f84033d7ea74c58d758fc02c5eba7309303",
      "ad466743b0082c91584278c8c5934c5b587a43b7",
      "8f0206c634d6a8590e8d9df9cedffb02890dd794",
      "533bc3b57e922207255d007479a65ea50c82bcab",
      "5a9013adaefa524a5d8d91e06386cb7402606feb"
    ],
    "target": "5d8988b1a242cb1ef006313cb0aa3756e629a422",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "1c9eb544c33490201faec77117049f21baa869ed",
        "author": {
          "id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
          "alias": "lorenz"
        },
        "description": "With Git 3 on the horizon, which will make SHA-256 object identifiers the default, this patch implements first steps to prepare integration of SHA-256 by means of a clean up around code locations that will be affected.",
        "base": "5d8988b1a242cb1ef006313cb0aa3756e629a422",
        "oid": "878f0a1fc066fe6f93373b3aff95cf3aea5e9127",
        "timestamp": 1776975058
      }
    ]
  }
}

Ambient stdout

executor from config: /usr/bin/ambient-execute-plan
executor from PATH: /usr/bin/ambient-execute-plan
run CI for rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5

Ambient stderr

<empty log>