CI: SUCCESS radicle-artifact

Table of Contents

Run log

Plan, inside VM without network

plan: Executor starts
After 0.00 seconds at 2026-06-11 12:55:19ZProgram: ambient-execute-plan
Version: 0.14.0@c37ec71
plan: Runnable plan
After 0.00 seconds at 2026-06-11 12:55:19Z
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_test
- 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-06-11 12:55:19Z
  • plan: Start action mkdir: /ci
    After 0.00 seconds at 2026-06-11 12:55:19Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
  • plan: Action succeeded mkdir: /ci
    After 0.00 seconds at 2026-06-11 12:55:19Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
plan: Successful action mkdir: /ci/artifacts
After 0.00 seconds at 2026-06-11 12:55:19Z
  • plan: Start action mkdir: /ci/artifacts
    After 0.00 seconds at 2026-06-11 12:55:19Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
  • plan: Action succeeded mkdir: /ci/artifacts
    After 0.00 seconds at 2026-06-11 12:55:19Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
plan: Successful action tar_extract
After 0.00 seconds at 2026-06-11 12:55:19Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-06-11 12:55:19Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-06-11 12:55:19Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
plan: Successful action tar_extract
After 0.02 seconds at 2026-06-11 12:55:19Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-06-11 12:55:19Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-06-11 12:55:22Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
plan: Successful action tar_extract
After 2.17 seconds at 2026-06-11 12:55:22Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-06-11 12:55:22Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-06-11 12:55:27Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
plan: Successful action shell: ln -sf /ci /workspace
After 7.88 seconds at 2026-06-11 12:55:27Z
  • plan: Start action shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-06-11 12:55:27Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-06-11 12:55:27Z
    • bash
    • -c
    • set -xeuo pipefail ln -sf /ci /workspace
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:27Z
    Exit code: 0
    Stderr:
    + ln -sf /ci /workspace
    
  • plan: Action succeeded shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-06-11 12:55:27Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
plan: Successful action shell: git config --global user.name 'Ambient CI'
After 7.89 seconds at 2026-06-11 12:55:27Z
  • plan: Start action shell: git config --global user.name 'Ambient CI'
    After 0.00 seconds at 2026-06-11 12:55:27Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-06-11 12:55:27Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.name 'Ambient CI'
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:27Z
    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-06-11 12:55:27Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
plan: Successful action shell: git config --global user.email ambient@example.com
After 7.91 seconds at 2026-06-11 12:55:27Z
  • plan: Start action shell: git config --global user.email ambient@example.com
    After 0.00 seconds at 2026-06-11 12:55:27Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-06-11 12:55:27Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.email ambient@example.com
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:27Z
    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-06-11 12:55:27Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
plan: Successful action cargo_fmt
After 7.93 seconds at 2026-06-11 12:55:27Z
  • plan: Start action cargo_fmt
    After 0.00 seconds at 2026-06-11 12:55:27Z
    CargoFmt(
        CargoFmt,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:27Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:27Z
    Exit code: 0
    Stdout:
    cargo 1.95.0 (f2d3ce0bd 2026-03-21)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:27Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:27Z
    Exit code: 0
    Stdout:
    clippy 0.1.95 (59807616e1 2026-04-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-06-11 12:55:27Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:27Z
    Exit code: 0
    Stdout:
    rustc 1.95.0 (59807616e 2026-04-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:27Z
    • cargo
    • fmt
    • --check
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:28Z
    Exit code: 0
  • plan: Action succeeded cargo_fmt
    After 0.00 seconds at 2026-06-11 12:55:28Z
    CargoFmt(
        CargoFmt,
    )
plan: Successful action cargo_clippy
After 8.21 seconds at 2026-06-11 12:55:28Z
  • plan: Start action cargo_clippy
    After 0.00 seconds at 2026-06-11 12:55:28Z
    CargoClippy(
        CargoClippy,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:28Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:28Z
    Exit code: 0
    Stdout:
    cargo 1.95.0 (f2d3ce0bd 2026-03-21)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:28Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:28Z
    Exit code: 0
    Stdout:
    clippy 0.1.95 (59807616e1 2026-04-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-06-11 12:55:28Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:28Z
    Exit code: 0
    Stdout:
    rustc 1.95.0 (59807616e 2026-04-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:28Z
    • cargo
    • clippy
    • --offline
    • --locked
    • --workspace
    • --all-targets
    • --no-deps
    • --
    • --deny
    • warnings
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:30Z
    Exit code: 0
    Stderr:
        Checking radicle-artifact v0.14.0 (/ci/src)
        Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.30s
    
  • plan: Action succeeded cargo_clippy
    After 0.00 seconds at 2026-06-11 12:55:30Z
    CargoClippy(
        CargoClippy,
    )
plan: Successful action cargo_test
After 10.66 seconds at 2026-06-11 12:55:30Z
  • plan: Start action cargo_test
    After 0.00 seconds at 2026-06-11 12:55:30Z
    CargoTest(
        CargoTest,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:30Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:30Z
    Exit code: 0
    Stdout:
    cargo 1.95.0 (f2d3ce0bd 2026-03-21)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:30Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:30Z
    Exit code: 0
    Stdout:
    clippy 0.1.95 (59807616e1 2026-04-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-06-11 12:55:30Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:55:30Z
    Exit code: 0
    Stdout:
    rustc 1.95.0 (59807616e 2026-04-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-11 12:55:30Z
    • cargo
    • test
    • --offline
    • --locked
    • --workspace
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-11 12:56:26Z
    Exit code: 0
    Stdout:
    running 123 tests
    test display::tests::describe_progress_maps_every_frame ... ok
    test node::lifecycle::tests::log_path_is_under_artifacts_dir ... ok
    test node::lifecycle::tests::rotate_log_moves_current_to_dot_one ... ok
    test client::tests::streaming_methods_round_trip ... ok
    test node::tests::double_start_errors ... ok
    test node::tests::fetch_and_download_fast_path_and_no_locations ... ok
    test node::tests::has_and_export_round_trip ... ok
    test node::tests::invalid_typed_fields_surface_as_invalid_request ... ok
    test node::tests::malformed_json_surfaces_as_invalid_request ... ok
    test node::tests::run_stream_aborts_on_client_disconnect ... ok
    test node::tests::node_round_trip ... ok
    test node::tests::seed_missing_path_errors ... ok
    test protocol::tests::wire_snapshot_command_alive ... ok
    test protocol::tests::wire_snapshot_command_has_export_fetch_download ... ok
    test protocol::tests::wire_snapshot_command_result_ok_and_err ... ok
    test protocol::tests::wire_snapshot_command_seed ... ok
    test protocol::tests::wire_snapshot_command_status ... ok
    test protocol::tests::wire_snapshot_command_unseed_and_lookups ... ok
    test protocol::tests::wire_snapshot_fetch_progress ... ok
    test protocol::tests::wire_snapshot_fetch_results ... ok
    test protocol::tests::wire_snapshot_receipts ... ok
    test protocol::tests::wire_snapshot_status_zeroed ... ok
    test protocol::tests::wire_snapshot_stream_event ... ok
    test seeder::tests::all_seeded_round_trip ... ok
    test seeder::tests::per_repo_tags_isolate ... ok
    test seeder::tests::seeded_tag_layout ... ok
    test seeder::tests::unregister_unknown_is_noop ... ok
    test share::cid_utils::tests::artifact_kind_blob ... ok
    test share::cid_utils::tests::artifact_kind_collection ... ok
    test share::cid_utils::tests::artifact_kind_unknown_codec ... ok
    test share::cid_utils::tests::blake3_hash_to_cid_blob_roundtrip ... ok
    test share::cid_utils::tests::blake3_hash_to_cid_collection_roundtrip ... ok
    test share::cid_utils::tests::canonical_walk_normalizes_separators ... ok
    test share::cid_utils::tests::canonical_walk_returns_absolute_paths ... ok
    test share::cid_utils::tests::canonical_walk_returns_sorted_entries ... ok
    test share::cid_utils::tests::canonical_walk_skips_directories ... ok
    test share::cid_utils::tests::cid_to_blake3_hash_rejects_sha256 ... ok
    test share::cid_utils::tests::cid_to_blake3_hash_roundtrip ... ok
    test share::cid_utils::tests::cid_to_blake3_works_with_hashseq_codec ... ok
    test share::cid_utils::tests::determinism ... ok
    test share::cid_utils::tests::golden_hash ... ok
    test share::cid_utils::tests::symlink_is_skipped ... ok
    test share::fetch::tests::export_collection_rejects_unsafe_member ... ok
    test share::fetch::tests::export_collection_writes_members ... ok
    test share::fetch::tests::http_to_store_imports_matching_blob ... ok
    test share::fetch::tests::http_to_store_rejects_mismatch ... ok
    test share::fetch::tests::safe_join_allows_nested_paths ... ok
    test share::fetch::tests::safe_join_rejects_traversal_and_absolute ... ok
    test share::fetch::tests::scoped_path_removes_dir_on_drop ... ok
    test share::fetch::tests::scoped_path_removes_file_on_drop ... ok
    test share::iroh::tests::default_uses_radworks_endpoints ... ok
    test share::iroh::tests::parse_env_rejects_malformed_value ... ok
    test share::iroh::tests::parse_relay_urls_comma_separated ... ok
    test share::iroh::tests::parse_relay_urls_rejects_malformed ... ok
    test share::keys::tests::display_differs_from_iroh_default ... ok
    test share::keys::tests::display_is_endpoint_url ... ok
    test share::keys::tests::encrypted_keystore_requires_passphrase ... ok
    test share::keys::tests::from_url_bare_is_none ... ok
    test share::keys::tests::from_url_garbage_host_errors ... ok
    test share::keys::tests::from_url_rejects_legacy_iroh_scheme ... ok
    test share::keys::tests::from_url_wrong_scheme_errors ... ok
    test share::keys::tests::fromstr_round_trip ... ok
    test share::keys::tests::is_endpoint_url_only_matches_endpoint_scheme ... ok
    test share::keys::tests::is_legacy_endpoint_url_matches_only_iroh_scheme ... ok
    test share::keys::tests::matches_url_rules ... ok
    test share::keys::tests::radicle_and_iroh_keys_share_same_public_identity ... ok
    test share::keys::tests::url_round_trip ... ok
    test test::add_location_for_missing_cid_is_noop ... ok
    test test::attest_missing_cid_is_noop ... ok
    test test::attestation_persists_through_reload ... ok
    test test::author_self_attestation_is_noop ... ok
    test test::create_records_tag_oid ... ok
    test test::create_rejects_commit_oid_as_tag ... ok
    test test::create_rejects_tag_pointing_at_other_commit ... ok
    test test::create_rejects_unknown_tag_oid ... ok
    test test::create_without_tag_leaves_none ... ok
    test test::creator_persists_through_reload ... ok
    test test::display_marks_seeding_for_local_endpoint_location ... ok
    test test::display_renders_metadata ... ok
    test test::e2e ... ok
    test test::find_by_cid_aggregates_across_different_oids ... ok
    test test::find_by_cid_aggregates_duplicate_oid_releases ... ok
    test test::find_by_cid_finds_across_releases ... ok
    test test::find_by_commit_returns_empty_for_no_match ... ok
    test test::find_by_commit_returns_matching_releases ... ok
    test test::get_mut_not_found ... ok
    test test::idempotent_attestation ... ok
    test test::idempotent_create ... ok
    test test::idempotent_register_artifact ... ok
    test test::locations_by_scheme_duplicate_url_from_two_dids ... ok
    test test::locations_by_scheme_filters_correctly ... ok
    test test::metadata_persists_through_reload ... ok
    test test::missing_commit ... ok
    test test::multi_delegate_attestation ... ok
    test test::multi_user_redaction ... ok
    test test::multi_user_same_reason ... ok
    test test::multiple_locations_per_node ... ok
    test test::non_author_cannot_rename_artifact ... ok
    test test::pretty_renders_compact_and_detailed ... ok
    test test::redact_artifact ... ok
    test test::redact_empty_reason ... ok
    test test::redact_nonexistent_cid_errors ... ok
    test test::redact_only_removes_own_attestation ... ok
    test test::redact_reason_too_long ... ok
    test test::redact_removes_attestation ... ok
    test test::redact_then_attest_is_blocked ... ok
    test test::redact_updates_reason ... ok
    test test::redaction_persists_through_reload ... ok
    test test::register_artifact_records_author ... ok
    test test::register_artifact_wire_name_stays_add_artifact ... ok
    test test::reload_refreshes_from_store ... ok
    test test::remove_location_for_node_that_never_added_is_noop ... ok
    test test::remove_metadata_drops_key ... ok
    test test::remove_metadata_for_missing_key_is_noop ... ok
    test test::set_metadata_accepts_json_object ... ok
    test test::set_metadata_basic ... ok
    test test::set_metadata_for_missing_cid_is_noop ... ok
    test test::set_metadata_last_writer_wins ... ok
    test test::set_metadata_rejects_invalid_keys ... ok
    test test::set_metadata_rejects_oversized_value ... ok
    test test::tag_field_default_none_on_old_actions ... ok
    test test::tag_persists_through_reload ... ok
    test node::tests::stale_socket_is_reclaimed ... ok
    
    test result: ok. 123 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 50.19s
    
    
    running 12 tests
    test reconcile::tests::bare_iroh_is_current_endpoint ... ok
    test reconcile::tests::current_endpoint_not_seeded_is_orphaned_self ... ok
    test reconcile::tests::explicit_current_endpoint_is_current ... ok
    test reconcile::tests::legacy_iroh_scheme_is_stale ... ok
    test reconcile::tests::missing_and_dangling_split_correctly ... ok
    test reconcile::tests::legacy_only_cid_is_reported_missing ... ok
    test reconcile::tests::missing_picks_release_with_latest_timestamp ... ok
    test reconcile::tests::other_endpoint_is_stale ... ok
    test reconcile::tests::mixed_urls_on_same_cid_split_into_buckets ... ok
    test reconcile::tests::seeded_cid_with_no_matching_release_is_dangling ... ok
    test reconcile::tests::seeded_with_current_location_is_not_missing ... ok
    test reconcile::tests::undecodable_host_is_stale ... ok
    
    test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
    
    
    running 1 test
    test src/lib.rs - (line 13) ... ok
    
    test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.52s
    
    
    Stderr:
       Compiling radicle-artifact v0.14.0 (/ci/src)
        Finished `test` profile [unoptimized + debuginfo] target(s) in 3.80s
         Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_artifact-e3b5a10f2c673776)
         Running unittests src/bin/rad-artifact/main.rs (/ci/cache/cargo-target/debug/deps/rad_artifact-fcbce47adca04877)
       Doc-tests radicle_artifact
    
  • plan: Action succeeded cargo_test
    After 0.00 seconds at 2026-06-11 12:56:26Z
    CargoTest(
        CargoTest,
    )
plan: Successful action tar_create
After 66.64 seconds at 2026-06-11 12:56:26Z
  • plan: Start action tar_create
    After 0.00 seconds at 2026-06-11 12:56:26Z
    TarCreate(
        TarCreate {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
  • plan: Action succeeded tar_create
    After 0.00 seconds at 2026-06-11 12:56:31Z
    TarCreate(
        TarCreate {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
plan: Successful action tar_create
After 71.22 seconds at 2026-06-11 12:56:31Z
  • plan: Start action tar_create
    After 0.00 seconds at 2026-06-11 12:56:31Z
    TarCreate(
        TarCreate {
            archive: "/dev/vdd",
            directory: "/ci/artifacts",
        },
    )
  • plan: Action succeeded tar_create
    After 0.00 seconds at 2026-06-11 12:56:31Z
    TarCreate(
        TarCreate {
            archive: "/dev/vdd",
            directory: "/ci/artifacts",
        },
    )
plan: Plan succeeded
After 71.23 seconds at 2026-06-11 12:56:31ZHopefully 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": 1781182519,
        "nanos_since_epoch": 900238406
      },
      "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_test"
        },
        {
          "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": 1781182519,
        "nanos_since_epoch": 900556840
      },
      "log_source": "Plan"
    }
  3. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1781182519,
        "nanos_since_epoch": 900625664
      },
      "log_source": "Plan"
    }
  4. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1781182519,
        "nanos_since_epoch": 901149145
      },
      "log_source": "Plan"
    }
  5. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1781182519,
        "nanos_since_epoch": 901356793
      },
      "log_source": "Plan"
    }
  6. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1781182519,
        "nanos_since_epoch": 901388769
      },
      "log_source": "Plan"
    }
  7. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1781182519,
        "nanos_since_epoch": 901568942
      },
      "log_source": "Plan"
    }
  8. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1781182519,
        "nanos_since_epoch": 917884116
      },
      "log_source": "Plan"
    }
  9. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1781182519,
        "nanos_since_epoch": 917983428
      },
      "log_source": "Plan"
    }
  10. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1781182522,
        "nanos_since_epoch": 70966628
      },
      "log_source": "Plan"
    }
  11. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1781182522,
        "nanos_since_epoch": 71007046
      },
      "log_source": "Plan"
    }
  12. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 774953471
      },
      "log_source": "Plan"
    }
  13. {
      "type": "execute_action",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 777653067
      },
      "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": 1781182527,
        "nanos_since_epoch": 780043306
      },
      "log_source": "Plan"
    }
  15. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ ln -sf /ci /workspace\n",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 787634752
      },
      "log_source": "Plan"
    }
  16. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 790157749
      },
      "log_source": "Plan"
    }
  17. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 792615825
      },
      "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": 1781182527,
        "nanos_since_epoch": 795313407
      },
      "log_source": "Plan"
    }
  19. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ git config --global user.name 'Ambient CI'\n",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 806120222
      },
      "log_source": "Plan"
    }
  20. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 808999867
      },
      "log_source": "Plan"
    }
  21. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 811645916
      },
      "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": 1781182527,
        "nanos_since_epoch": 814313783
      },
      "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": 1781182527,
        "nanos_since_epoch": 822401934
      },
      "log_source": "Plan"
    }
  24. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 825398263
      },
      "log_source": "Plan"
    }
  25. {
      "type": "execute_action",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 828149390
      },
      "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": 1781182527,
        "nanos_since_epoch": 830073717
      },
      "log_source": "Plan"
    }
  27. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 861838450
      },
      "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": 1781182527,
        "nanos_since_epoch": 864681203
      },
      "log_source": "Plan"
    }
  29. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.95 (59807616e1 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 917902787
      },
      "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": 1781182527,
        "nanos_since_epoch": 917961317
      },
      "log_source": "Plan"
    }
  31. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.95.0 (59807616e 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182527,
        "nanos_since_epoch": 937740980
      },
      "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": 1781182527,
        "nanos_since_epoch": 940564611
      },
      "log_source": "Plan"
    }
  33. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182528,
        "nanos_since_epoch": 106725525
      },
      "log_source": "Plan"
    }
  34. {
      "type": "action_succeeded",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1781182528,
        "nanos_since_epoch": 109047924
      },
      "log_source": "Plan"
    }
  35. {
      "type": "execute_action",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1781182528,
        "nanos_since_epoch": 111044440
      },
      "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": 1781182528,
        "nanos_since_epoch": 113099720
      },
      "log_source": "Plan"
    }
  37. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182528,
        "nanos_since_epoch": 124705381
      },
      "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": 1781182528,
        "nanos_since_epoch": 127543642
      },
      "log_source": "Plan"
    }
  39. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.95 (59807616e1 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182528,
        "nanos_since_epoch": 158624358
      },
      "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": 1781182528,
        "nanos_since_epoch": 161572168
      },
      "log_source": "Plan"
    }
  41. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.95.0 (59807616e 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182528,
        "nanos_since_epoch": 177656657
      },
      "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": 1781182528,
        "nanos_since_epoch": 177719476
      },
      "log_source": "Plan"
    }
  43. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "    Checking radicle-artifact v0.14.0 (/ci/src)\n    Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.30s\n",
      "timestamp": {
        "secs_since_epoch": 1781182530,
        "nanos_since_epoch": 557594670
      },
      "log_source": "Plan"
    }
  44. {
      "type": "action_succeeded",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1781182530,
        "nanos_since_epoch": 561468632
      },
      "log_source": "Plan"
    }
  45. {
      "type": "execute_action",
      "action": "cargo_test",
      "timestamp": {
        "secs_since_epoch": 1781182530,
        "nanos_since_epoch": 563531805
      },
      "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": 1781182530,
        "nanos_since_epoch": 565481414
      },
      "log_source": "Plan"
    }
  47. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182530,
        "nanos_since_epoch": 576548751
      },
      "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": 1781182530,
        "nanos_since_epoch": 576577351
      },
      "log_source": "Plan"
    }
  49. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.95 (59807616e1 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182530,
        "nanos_since_epoch": 608226910
      },
      "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": 1781182530,
        "nanos_since_epoch": 610969082
      },
      "log_source": "Plan"
    }
  51. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.95.0 (59807616e 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1781182530,
        "nanos_since_epoch": 625576596
      },
      "log_source": "Plan"
    }
  52. {
      "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": 1781182530,
        "nanos_since_epoch": 625617838
      },
      "log_source": "Plan"
    }
  53. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "\nrunning 123 tests\ntest display::tests::describe_progress_maps_every_frame ... ok\ntest node::lifecycle::tests::log_path_is_under_artifacts_dir ... ok\ntest node::lifecycle::tests::rotate_log_moves_current_to_dot_one ... ok\ntest client::tests::streaming_methods_round_trip ... ok\ntest node::tests::double_start_errors ... ok\ntest node::tests::fetch_and_download_fast_path_and_no_locations ... ok\ntest node::tests::has_and_export_round_trip ... ok\ntest node::tests::invalid_typed_fields_surface_as_invalid_request ... ok\ntest node::tests::malformed_json_surfaces_as_invalid_request ... ok\ntest node::tests::run_stream_aborts_on_client_disconnect ... ok\ntest node::tests::node_round_trip ... ok\ntest node::tests::seed_missing_path_errors ... ok\ntest protocol::tests::wire_snapshot_command_alive ... ok\ntest protocol::tests::wire_snapshot_command_has_export_fetch_download ... ok\ntest protocol::tests::wire_snapshot_command_result_ok_and_err ... ok\ntest protocol::tests::wire_snapshot_command_seed ... ok\ntest protocol::tests::wire_snapshot_command_status ... ok\ntest protocol::tests::wire_snapshot_command_unseed_and_lookups ... ok\ntest protocol::tests::wire_snapshot_fetch_progress ... ok\ntest protocol::tests::wire_snapshot_fetch_results ... ok\ntest protocol::tests::wire_snapshot_receipts ... ok\ntest protocol::tests::wire_snapshot_status_zeroed ... ok\ntest protocol::tests::wire_snapshot_stream_event ... ok\ntest seeder::tests::all_seeded_round_trip ... ok\ntest seeder::tests::per_repo_tags_isolate ... ok\ntest seeder::tests::seeded_tag_layout ... ok\ntest seeder::tests::unregister_unknown_is_noop ... ok\ntest share::cid_utils::tests::artifact_kind_blob ... ok\ntest share::cid_utils::tests::artifact_kind_collection ... ok\ntest share::cid_utils::tests::artifact_kind_unknown_codec ... ok\ntest share::cid_utils::tests::blake3_hash_to_cid_blob_roundtrip ... ok\ntest share::cid_utils::tests::blake3_hash_to_cid_collection_roundtrip ... ok\ntest share::cid_utils::tests::canonical_walk_normalizes_separators ... ok\ntest share::cid_utils::tests::canonical_walk_returns_absolute_paths ... ok\ntest share::cid_utils::tests::canonical_walk_returns_sorted_entries ... ok\ntest share::cid_utils::tests::canonical_walk_skips_directories ... ok\ntest share::cid_utils::tests::cid_to_blake3_hash_rejects_sha256 ... ok\ntest share::cid_utils::tests::cid_to_blake3_hash_roundtrip ... ok\ntest share::cid_utils::tests::cid_to_blake3_works_with_hashseq_codec ... ok\ntest share::cid_utils::tests::determinism ... ok\ntest share::cid_utils::tests::golden_hash ... ok\ntest share::cid_utils::tests::symlink_is_skipped ... ok\ntest share::fetch::tests::export_collection_rejects_unsafe_member ... ok\ntest share::fetch::tests::export_collection_writes_members ... ok\ntest share::fetch::tests::http_to_store_imports_matching_blob ... ok\ntest share::fetch::tests::http_to_store_rejects_mismatch ... ok\ntest share::fetch::tests::safe_join_allows_nested_paths ... ok\ntest share::fetch::tests::safe_join_rejects_traversal_and_absolute ... ok\ntest share::fetch::tests::scoped_path_removes_dir_on_drop ... ok\ntest share::fetch::tests::scoped_path_removes_file_on_drop ... ok\ntest share::iroh::tests::default_uses_radworks_endpoints ... ok\ntest share::iroh::tests::parse_env_rejects_malformed_value ... ok\ntest share::iroh::tests::parse_relay_urls_comma_separated ... ok\ntest share::iroh::tests::parse_relay_urls_rejects_malformed ... ok\ntest share::keys::tests::display_differs_from_iroh_default ... ok\ntest share::keys::tests::display_is_endpoint_url ... ok\ntest share::keys::tests::encrypted_keystore_requires_passphrase ... ok\ntest share::keys::tests::from_url_bare_is_none ... ok\ntest share::keys::tests::from_url_garbage_host_errors ... ok\ntest share::keys::tests::from_url_rejects_legacy_iroh_scheme ... ok\ntest share::keys::tests::from_url_wrong_scheme_errors ... ok\ntest share::keys::tests::fromstr_round_trip ... ok\ntest share::keys::tests::is_endpoint_url_only_matches_endpoint_scheme ... ok\ntest share::keys::tests::is_legacy_endpoint_url_matches_only_iroh_scheme ... ok\ntest share::keys::tests::matches_url_rules ... ok\ntest share::keys::tests::radicle_and_iroh_keys_share_same_public_identity ... ok\ntest share::keys::tests::url_round_trip ... ok\ntest test::add_location_for_missing_cid_is_noop ... ok\ntest test::attest_missing_cid_is_noop ... ok\ntest test::attestation_persists_through_reload ... ok\ntest test::author_self_attestation_is_noop ... ok\ntest test::create_records_tag_oid ... ok\ntest test::create_rejects_commit_oid_as_tag ... ok\ntest test::create_rejects_tag_pointing_at_other_commit ... ok\ntest test::create_rejects_unknown_tag_oid ... ok\ntest test::create_without_tag_leaves_none ... ok\ntest test::creator_persists_through_reload ... ok\ntest test::display_marks_seeding_for_local_endpoint_location ... ok\ntest test::display_renders_metadata ... ok\ntest test::e2e ... ok\ntest test::find_by_cid_aggregates_across_different_oids ... ok\ntest test::find_by_cid_aggregates_duplicate_oid_releases ... ok\ntest test::find_by_cid_finds_across_releases ... ok\ntest test::find_by_commit_returns_empty_for_no_match ... ok\ntest test::find_by_commit_returns_matching_releases ... ok\ntest test::get_mut_not_found ... ok\ntest test::idempotent_attestation ... ok\ntest test::idempotent_create ... ok\ntest test::idempotent_register_artifact ... ok\ntest test::locations_by_scheme_duplicate_url_from_two_dids ... ok\ntest test::locations_by_scheme_filters_correctly ... ok\ntest test::metadata_persists_through_reload ... ok\ntest test::missing_commit ... ok\ntest test::multi_delegate_attestation ... ok\ntest test::multi_user_redaction ... ok\ntest test::multi_user_same_reason ... ok\ntest test::multiple_locations_per_node ... ok\ntest test::non_author_cannot_rename_artifact ... ok\ntest test::pretty_renders_compact_and_detailed ... ok\ntest test::redact_artifact ... ok\ntest test::redact_empty_reason ... ok\ntest test::redact_nonexistent_cid_errors ... ok\ntest test::redact_only_removes_own_attestation ... ok\ntest test::redact_reason_too_long ... ok\ntest test::redact_removes_attestation ... ok\ntest test::redact_then_attest_is_blocked ... ok\ntest test::redact_updates_reason ... ok\ntest test::redaction_persists_through_reload ... ok\ntest test::register_artifact_records_author ... ok\ntest test::register_artifact_wire_name_stays_add_artifact ... ok\ntest test::reload_refreshes_from_store ... ok\ntest test::remove_location_for_node_that_never_added_is_noop ... ok\ntest test::remove_metadata_drops_key ... ok\ntest test::remove_metadata_for_missing_key_is_noop ... ok\ntest test::set_metadata_accepts_json_object ... ok\ntest test::set_metadata_basic ... ok\ntest test::set_metadata_for_missing_cid_is_noop ... ok\ntest test::set_metadata_last_writer_wins ... ok\ntest test::set_metadata_rejects_invalid_keys ... ok\ntest test::set_metadata_rejects_oversized_value ... ok\ntest test::tag_field_default_none_on_old_actions ... ok\ntest test::tag_persists_through_reload ... ok\ntest node::tests::stale_socket_is_reclaimed ... ok\n\ntest result: ok. 123 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 50.19s\n\n\nrunning 12 tests\ntest reconcile::tests::bare_iroh_is_current_endpoint ... ok\ntest reconcile::tests::current_endpoint_not_seeded_is_orphaned_self ... ok\ntest reconcile::tests::explicit_current_endpoint_is_current ... ok\ntest reconcile::tests::legacy_iroh_scheme_is_stale ... ok\ntest reconcile::tests::missing_and_dangling_split_correctly ... ok\ntest reconcile::tests::legacy_only_cid_is_reported_missing ... ok\ntest reconcile::tests::missing_picks_release_with_latest_timestamp ... ok\ntest reconcile::tests::other_endpoint_is_stale ... ok\ntest reconcile::tests::mixed_urls_on_same_cid_split_into_buckets ... ok\ntest reconcile::tests::seeded_cid_with_no_matching_release_is_dangling ... ok\ntest reconcile::tests::seeded_with_current_location_is_not_missing ... ok\ntest reconcile::tests::undecodable_host_is_stale ... ok\n\ntest result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s\n\n\nrunning 1 test\ntest src/lib.rs - (line 13) ... ok\n\ntest result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.52s\n\n",
      "stderr": "   Compiling radicle-artifact v0.14.0 (/ci/src)\n    Finished `test` profile [unoptimized + debuginfo] target(s) in 3.80s\n     Running unittests src/lib.rs (/ci/cache/cargo-target/debug/deps/radicle_artifact-e3b5a10f2c673776)\n     Running unittests src/bin/rad-artifact/main.rs (/ci/cache/cargo-target/debug/deps/rad_artifact-fcbce47adca04877)\n   Doc-tests radicle_artifact\n",
      "timestamp": {
        "secs_since_epoch": 1781182586,
        "nanos_since_epoch": 406525017
      },
      "log_source": "Plan"
    }
  54. {
      "type": "action_succeeded",
      "action": "cargo_test",
      "timestamp": {
        "secs_since_epoch": 1781182586,
        "nanos_since_epoch": 537274230
      },
      "log_source": "Plan"
    }
  55. {
      "type": "execute_action",
      "action": "tar_create",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1781182586,
        "nanos_since_epoch": 539298026
      },
      "log_source": "Plan"
    }
  56. {
      "type": "action_succeeded",
      "action": "tar_create",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1781182591,
        "nanos_since_epoch": 115478621
      },
      "log_source": "Plan"
    }
  57. {
      "type": "execute_action",
      "action": "tar_create",
      "archive": "/dev/vdd",
      "directory": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1781182591,
        "nanos_since_epoch": 118162598
      },
      "log_source": "Plan"
    }
  58. {
      "type": "action_succeeded",
      "action": "tar_create",
      "archive": "/dev/vdd",
      "directory": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1781182591,
        "nanos_since_epoch": 124477759
      },
      "log_source": "Plan"
    }
  59. {
      "type": "plan_succeeded",
      "timestamp": {
        "secs_since_epoch": 1781182591,
        "nanos_since_epoch": 128384200
      },
      "log_source": "Plan"
    }
  60. {
      "type": "executor_ends_successfully",
      "timestamp": {
        "secs_since_epoch": 1781182591,
        "nanos_since_epoch": 130039580
      },
      "log_source": "Plan"
    }

Trigger message

{
  "request": "trigger",
  "version": 1,
  "event_type": "patch",
  "repository": {
    "id": "rad:z4VYyJ9KuwMNkXGQnmKuGPGKw3inv",
    "name": "radicle-artifact",
    "description": "Secure artifact distribution for Radicle",
    "private": false,
    "default_branch": "main",
    "delegates": [
      "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm"
    ]
  },
  "action": "Updated",
  "patch": {
    "id": "175961a1cd940d5780c7cfcdde8c13332d8c1130",
    "author": {
      "id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
      "alias": "2color"
    },
    "title": "Fix ref announcement and rename --no-sync to --no-broadcast",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "36be9bac8b4269f18466631810d1f3b4e0d98a73",
    "after": "e8124907190fee1b4d5f8a1b902ef1767a63107f",
    "commits": [
      "e8124907190fee1b4d5f8a1b902ef1767a63107f",
      "bf7c35d40bec131bbcfbb097ae0cee3c68050266"
    ],
    "target": "36be9bac8b4269f18466631810d1f3b4e0d98a73",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "175961a1cd940d5780c7cfcdde8c13332d8c1130",
        "author": {
          "id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
          "alias": "2color"
        },
        "description": "ensure quick response to the user without waiting for the sync to\nfinish\n\nAlso renames `--no-sync` to `--no-broadcast` and updates CONTEXT.md:\nremoves the **Sync** entry, adds **Broadcast** (reference announcement\npush), and clarifies that **Announce** covers both the COB Location\nwrite and the radicle protocol's reference announcement.\n\n`--no-announce` was considered but rejected: the `seed` subcommand\nalready has a `--no-announce` flag meaning \"don't write the radiroh\nLocation to the COB\" — two flags with the same name doing different\nthings in the same CLI would be worse than the terminology overlap.",
        "base": "36be9bac8b4269f18466631810d1f3b4e0d98a73",
        "oid": "c270c6525894580fe86dee2052642da2f7a46130",
        "timestamp": 1781122943
      },
      {
        "id": "f7886f6239a192557bbf681d0c95fa26ed71dca4",
        "author": {
          "id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
          "alias": "2color"
        },
        "description": "refactor: rename --no-sync to --no-broadcast\n\n- Replace `no_sync` with `no_broadcast` throughout CLI and node module\n- Update inline comments to use \"broadcast\" terminology\n- Add Broadcast verb to CONTEXT.md (reference announcement push)\n- Clarify Announce covers both the COB Location write and the\n  radicle reference announcement broadcast\n- Remove Sync entry; `rad sync -a` remains the underlying mechanism",
        "base": "36be9bac8b4269f18466631810d1f3b4e0d98a73",
        "oid": "2710af79125bc7f98e912819d433aec133a80c51",
        "timestamp": 1781124114
      },
      {
        "id": "81f21abf260f31dd42682dc9b25aa3e428e968a6",
        "author": {
          "id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
          "alias": "2color"
        },
        "description": "Rewrite history",
        "base": "36be9bac8b4269f18466631810d1f3b4e0d98a73",
        "oid": "040bfd5fe9be54964f7159c685fc9d7a30fc8281",
        "timestamp": 1781124650
      },
      {
        "id": "6d4c7ee56e5e865db3153fe5b4ba1f79484a7fb9",
        "author": {
          "id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
          "alias": "2color"
        },
        "description": "refactor: split announce into add and announce\n\n- use \"add\" for the COB Location operation and \"announce\"\n  exclusively for the network push (radicle reference announcement)\n- rename global --no-broadcast to --no-announce\n- rename seed --no-announce to --no-location to free up the\n  announce verb for the network push\n- update CONTEXT.md glossary, README, help text, and comments\n\nThe verb \"announce\" was overloaded: docs used it for adding a COB\nLocation while the code already used it for the network push\n(announce_refs_for). Aligning on radicle's vocabulary removes the\ncollision and matches the existing function names.",
        "base": "36be9bac8b4269f18466631810d1f3b4e0d98a73",
        "oid": "c6510a6ffee143720d4293436fe4e69f7682010c",
        "timestamp": 1781181955
      },
      {
        "id": "a06898c68f18a3333fc44d8a773e246487b04746",
        "author": {
          "id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
          "alias": "2color"
        },
        "description": "",
        "base": "36be9bac8b4269f18466631810d1f3b4e0d98a73",
        "oid": "60bbc1fea9acf9142ea502b14a8ee3a640630406",
        "timestamp": 1781182126
      },
      {
        "id": "b768080ef6f12c0b67295525a1bb07012016ad19",
        "author": {
          "id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
          "alias": "2color"
        },
        "description": "",
        "base": "36be9bac8b4269f18466631810d1f3b4e0d98a73",
        "oid": "e8124907190fee1b4d5f8a1b902ef1767a63107f",
        "timestamp": 1781182502
      }
    ]
  }
}

Ambient stdout

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

Ambient stderr

<empty log>