CI: FAILURE heartwood

Table of Contents

Run log

Plan, inside VM without network

plan: Executor starts
After 0.00 seconds at 2026-05-30 08:02:33ZProgram: ambient-execute-plan
Version: 0.14.0@c37ec71
plan: Runnable plan
After 0.01 seconds at 2026-05-30 08:02:33Z
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: shell
  shell: |
    sed -i /components/d rust-toolchain.toml

    # Commit this to git so that the Debian package building doesn't
    # see changes outside the debian directory.
    git config set user.name "Ambient CI"
    git config set user.email "ambient@example.com"
    git commit -m "remove components from toolchain file" rust-toolchain.toml
- 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:
  RUSTUP_HOME:
  - 47
  - 99
  - 105
  - 47
  - 100
  - 101
  - 112
  - 115
  - 47
  - 114
  - 117
  - 115
  - 116
  - 117
  - 112
plan: Successful action mkdir: /ci
After 0.05 seconds at 2026-05-30 08:02:33Z
  • plan: Start action mkdir: /ci
    After 0.00 seconds at 2026-05-30 08:02:33Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
  • plan: Action succeeded mkdir: /ci
    After 0.00 seconds at 2026-05-30 08:02:33Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
plan: Successful action mkdir: /ci/artifacts
After 0.05 seconds at 2026-05-30 08:02:33Z
  • plan: Start action mkdir: /ci/artifacts
    After 0.00 seconds at 2026-05-30 08:02:33Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
  • plan: Action succeeded mkdir: /ci/artifacts
    After 0.00 seconds at 2026-05-30 08:02:33Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
plan: Successful action tar_extract
After 0.06 seconds at 2026-05-30 08:02:33Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-05-30 08:02:33Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-05-30 08:02:34Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
plan: Successful action tar_extract
After 0.21 seconds at 2026-05-30 08:02:34Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-05-30 08:02:34Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-05-30 08:02:43Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
plan: Successful action tar_extract
After 9.43 seconds at 2026-05-30 08:02:43Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-05-30 08:02:43Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-05-30 08:02:59Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
plan: Successful action shell: ln -sf /ci /workspace
After 25.44 seconds at 2026-05-30 08:02:59Z
  • plan: Start action shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-05-30 08:02:59Z
    • bash
    • -c
    • set -xeuo pipefail ln -sf /ci /workspace
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Exit code: 0
    Stderr:
    + ln -sf /ci /workspace
    
  • plan: Action succeeded shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
plan: Successful action shell: git config --global user.name 'Ambient CI'
After 25.46 seconds at 2026-05-30 08:02:59Z
  • plan: Start action shell: git config --global user.name 'Ambient CI'
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-05-30 08:02:59Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.name 'Ambient CI'
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-30 08:02:59Z
    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-05-30 08:02:59Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
plan: Successful action shell: git config --global user.email ambient@example.com
After 25.46 seconds at 2026-05-30 08:02:59Z
  • plan: Start action shell: git config --global user.email ambient@example.com
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-05-30 08:02:59Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.email ambient@example.com
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-30 08:02:59Z
    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-05-30 08:02:59Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
plan: Successful action shell: sed -i /components/d rust-toolchain.toml # Commit this to git so that the Debian package building doesn't # see changes outside the debian directory. git config set user.name "Ambient CI" git config set user.email "ambient@example.com" git commit -m "remove components from toolchain file" rust-toolchain.toml
After 25.46 seconds at 2026-05-30 08:02:59Z
  • plan: Start action shell: sed -i /components/d rust-toolchain.toml # Commit this to git so that the Debian package building doesn't # see changes outside the debian directory. git config set user.name "Ambient CI" git config set user.email "ambient@example.com" git commit -m "remove components from toolchain file" rust-toolchain.toml
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Shell(
        Shell {
            shell: "sed -i /components/d rust-toolchain.toml\n\n# Commit this to git so that the Debian package building doesn't\n# see changes outside the debian directory.\ngit config set user.name \"Ambient CI\"\ngit config set user.email \"ambient@example.com\"\ngit commit -m \"remove components from toolchain file\" rust-toolchain.toml\n",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-05-30 08:02:59Z
    • bash
    • -c
    • set -xeuo pipefail sed -i /components/d rust-toolchain.toml # Commit this to git so that the Debian package building doesn't # see changes outside the debian directory. git config set user.name "Ambient CI" git config set user.email "ambient@example.com" git commit -m "remove components from toolchain file" rust-toolchain.toml
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Exit code: 0
    Stdout:
    [detached HEAD 828f36f12] remove components from toolchain file
     1 file changed, 1 deletion(-)
    
    Stderr:
    + sed -i /components/d rust-toolchain.toml
    + git config set user.name 'Ambient CI'
    + git config set user.email ambient@example.com
    + git commit -m 'remove components from toolchain file' rust-toolchain.toml
    
  • plan: Action succeeded shell: sed -i /components/d rust-toolchain.toml # Commit this to git so that the Debian package building doesn't # see changes outside the debian directory. git config set user.name "Ambient CI" git config set user.email "ambient@example.com" git commit -m "remove components from toolchain file" rust-toolchain.toml
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Shell(
        Shell {
            shell: "sed -i /components/d rust-toolchain.toml\n\n# Commit this to git so that the Debian package building doesn't\n# see changes outside the debian directory.\ngit config set user.name \"Ambient CI\"\ngit config set user.email \"ambient@example.com\"\ngit commit -m \"remove components from toolchain file\" rust-toolchain.toml\n",
        },
    )
plan: Successful action cargo_fmt
After 25.67 seconds at 2026-05-30 08:02:59Z
  • plan: Start action cargo_fmt
    After 0.00 seconds at 2026-05-30 08:02:59Z
    CargoFmt(
        CargoFmt,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-05-30 08:02:59Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Exit code: 0
    Stdout:
    cargo 1.95.0 (f2d3ce0bd 2026-03-21)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-05-30 08:02:59Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Exit code: 0
    Stdout:
    clippy 0.1.95 (59807616e1 2026-04-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-05-30 08:02:59Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-30 08:02:59Z
    Exit code: 0
    Stdout:
    rustc 1.95.0 (59807616e 2026-04-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-05-30 08:02:59Z
    • cargo
    • fmt
    • --check
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-30 08:03:00Z
    Exit code: 0
  • plan: Action succeeded cargo_fmt
    After 0.00 seconds at 2026-05-30 08:03:00Z
    CargoFmt(
        CargoFmt,
    )
plan: Start action cargo_clippy
After 26.64 seconds at 2026-05-30 08:03:00Z
CargoClippy(
    CargoClippy,
)
plan: Start program cargo
After 26.64 seconds at 2026-05-30 08:03:00Z
  • cargo
  • --version
plan: Program succeeded
After 26.65 seconds at 2026-05-30 08:03:00Z
Exit code: 0
Stdout:
cargo 1.95.0 (f2d3ce0bd 2026-03-21)
plan: Start program cargo
After 26.65 seconds at 2026-05-30 08:03:00Z
  • cargo
  • clippy
  • --version
plan: Program succeeded
After 26.68 seconds at 2026-05-30 08:03:00Z
Exit code: 0
Stdout:
clippy 0.1.95 (59807616e1 2026-04-14)
plan: Start program rustc
After 26.68 seconds at 2026-05-30 08:03:00Z
  • rustc
  • --version
plan: Program succeeded
After 26.70 seconds at 2026-05-30 08:03:00Z
Exit code: 0
Stdout:
rustc 1.95.0 (59807616e 2026-04-14)
plan: Start program cargo
After 26.70 seconds at 2026-05-30 08:03:00Z
  • cargo
  • clippy
  • --offline
  • --locked
  • --workspace
  • --all-targets
  • --no-deps
  • --
  • --deny
  • warnings
plan: ERROR: Program failed
After 33.98 seconds at 2026-05-30 08:03:07Z
Exit code: 101
Stderr:
    Checking radicle-crypto v0.17.0 (/ci/src/crates/radicle-crypto)
    Checking radicle-oid v0.2.0 (/ci/src/crates/radicle-oid)
    Checking radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)
    Checking radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)
    Checking radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)
    Checking radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)
   Compiling radicle v0.24.0 (/ci/src/crates/radicle)
    Checking radicle-cob v0.20.0 (/ci/src/crates/radicle-cob)
    Checking radicle-core v0.3.0 (/ci/src/crates/radicle-core)
    Checking radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)
    Checking radicle-term v0.18.0 (/ci/src/crates/radicle-term)
    Checking radicle-log v0.1.0 (/ci/src/crates/radicle-log)
   Compiling radicle-cli v0.21.0 (/ci/src/crates/radicle-cli)
   Compiling radicle-node v0.20.0 (/ci/src/crates/radicle-node)
    Checking radicle-systemd v0.13.0 (/ci/src/crates/radicle-systemd)
   Compiling radicle-remote-helper v0.17.0 (/ci/src/crates/radicle-remote-helper)
error[E0433]: cannot find module or crate `read` in this scope
  --> crates/radicle/src/git/repository/adapter/git2/object.rs:69:67
   |
69 |     fn object_kind(&self, oid: Oid) -> Result<Option<ObjectKind>, read::ObjectKind> {
   |                                                                   ^^^^ use of unresolved module or unlinked crate `read`
   |
   = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`
note: module `crate::storage::git::trailers::object::error::read` exists but is inaccessible
  --> crates/radicle/src/git/repository/object/error.rs:3:1
   |
 3 | pub mod read;
   | ^^^^^^^^^^^^^ not accessible

error[E0433]: cannot find module or crate `read` in this scope
   --> crates/radicle/src/git/repository/adapter/git2/object.rs:70:38
    |
 70 |         let odb = self.odb().map_err(read::ObjectKind::backend)?;
    |                                      ^^^^ use of unresolved module or unlinked crate `read`
    |
    = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`
note: these enums exist but are inaccessible
   --> crates/radicle/src/git/repository/object/error/read.rs:130:1
    |
130 | pub enum ObjectKind {
    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::trailers::object::error::read::ObjectKind`: not accessible
    |
   ::: crates/radicle/src/git/repository/types.rs:19:1
    |
 19 | pub enum ObjectKind {
    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::trailers::repository::ObjectKind`: not accessible

error[E0433]: cannot find module or crate `read` in this scope
   --> crates/radicle/src/git/repository/adapter/git2/object.rs:74:27
    |
 74 |             Err(e) => Err(read::ObjectKind::backend(e)),
    |                           ^^^^ use of unresolved module or unlinked crate `read`
    |
    = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`
note: these enums exist but are inaccessible
   --> crates/radicle/src/git/repository/object/error/read.rs:130:1
    |
130 | pub enum ObjectKind {
    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::trailers::object::error::read::ObjectKind`: not accessible
    |
   ::: crates/radicle/src/git/repository/types.rs:19:1
    |
 19 | pub enum ObjectKind {
    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::trailers::repository::ObjectKind`: not accessible

error[E0433]: cannot find module or crate `read` in this scope
  --> crates/radicle/src/git/repository/adapter/git2/object.rs:69:67
   |
69 |     fn object_kind(&self, oid: Oid) -> Result<Option<ObjectKind>, read::ObjectKind> {
   |                                                                   ^^^^ use of unresolved module or unlinked crate `read`
   |
   = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`
note: module `crate::storage::git::tests::object::error::read` exists but is inaccessible
  --> crates/radicle/src/git/repository/object/error.rs:3:1
   |
 3 | pub mod read;
   | ^^^^^^^^^^^^^ not accessible

error[E0433]: cannot find module or crate `read` in this scope
   --> crates/radicle/src/git/repository/adapter/git2/object.rs:70:38
    |
 70 |         let odb = self.odb().map_err(read::ObjectKind::backend)?;
    |                                      ^^^^ use of unresolved module or unlinked crate `read`
    |
    = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`
note: these enums exist but are inaccessible
   --> crates/radicle/src/git/repository/object/error/read.rs:130:1
    |
130 | pub enum ObjectKind {
    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::tests::object::error::read::ObjectKind`: not accessible
    |
   ::: crates/radicle/src/git/repository/types.rs:19:1
    |
 19 | pub enum ObjectKind {
    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::tests::repository::ObjectKind`: not accessible

error[E0433]: cannot find module or crate `read` in this scope
   --> crates/radicle/src/git/repository/adapter/git2/object.rs:74:27
    |
 74 |             Err(e) => Err(read::ObjectKind::backend(e)),
    |                           ^^^^ use of unresolved module or unlinked crate `read`
    |
    = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`
note: these enums exist but are inaccessible
   --> crates/radicle/src/git/repository/object/error/read.rs:130:1
    |
130 | pub enum ObjectKind {
    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::tests::object::error::read::ObjectKind`: not accessible
    |
   ::: crates/radicle/src/git/repository/types.rs:19:1
    |
 19 | pub enum ObjectKind {
    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::tests::repository::ObjectKind`: not accessible

For more information about this error, try `rustc --explain E0433`.
error: could not compile `radicle` (lib) due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
error: could not compile `radicle` (lib test) due to 3 previous errors
plan: Action failed: cargo_clippy
After 34.03 seconds at 2026-05-30 08:03:07Z
CargoClippy(
    CargoClippy,
)

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": 1780128153,
        "nanos_since_epoch": 810366567
      },
      "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": "shell",
          "shell": "sed -i /components/d rust-toolchain.toml\n\n# Commit this to git so that the Debian package building doesn't\n# see changes outside the debian directory.\ngit config set user.name \"Ambient CI\"\ngit config set user.email \"ambient@example.com\"\ngit commit -m \"remove components from toolchain file\" rust-toolchain.toml\n"
        },
        {
          "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": {
        "RUSTUP_HOME": [
          47,
          99,
          105,
          47,
          100,
          101,
          112,
          115,
          47,
          114,
          117,
          115,
          116,
          117,
          112
        ]
      },
      "timestamp": {
        "secs_since_epoch": 1780128153,
        "nanos_since_epoch": 817153327
      },
      "log_source": "Plan"
    }
  3. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1780128153,
        "nanos_since_epoch": 858862620
      },
      "log_source": "Plan"
    }
  4. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1780128153,
        "nanos_since_epoch": 861394349
      },
      "log_source": "Plan"
    }
  5. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1780128153,
        "nanos_since_epoch": 863606951
      },
      "log_source": "Plan"
    }
  6. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1780128153,
        "nanos_since_epoch": 866198213
      },
      "log_source": "Plan"
    }
  7. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1780128153,
        "nanos_since_epoch": 868590301
      },
      "log_source": "Plan"
    }
  8. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1780128154,
        "nanos_since_epoch": 17191718
      },
      "log_source": "Plan"
    }
  9. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1780128154,
        "nanos_since_epoch": 19845417
      },
      "log_source": "Plan"
    }
  10. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1780128163,
        "nanos_since_epoch": 233418282
      },
      "log_source": "Plan"
    }
  11. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1780128163,
        "nanos_since_epoch": 236126783
      },
      "log_source": "Plan"
    }
  12. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 253516467
      },
      "log_source": "Plan"
    }
  13. {
      "type": "execute_action",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 253593640
      },
      "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": 1780128179,
        "nanos_since_epoch": 253890853
      },
      "log_source": "Plan"
    }
  15. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ ln -sf /ci /workspace\n",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 265006866
      },
      "log_source": "Plan"
    }
  16. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 265264092
      },
      "log_source": "Plan"
    }
  17. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 265490476
      },
      "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": 1780128179,
        "nanos_since_epoch": 265498733
      },
      "log_source": "Plan"
    }
  19. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ git config --global user.name 'Ambient CI'\n",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 271889192
      },
      "log_source": "Plan"
    }
  20. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 272121823
      },
      "log_source": "Plan"
    }
  21. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 272349775
      },
      "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": 1780128179,
        "nanos_since_epoch": 272359342
      },
      "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": 1780128179,
        "nanos_since_epoch": 274639346
      },
      "log_source": "Plan"
    }
  24. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 274705068
      },
      "log_source": "Plan"
    }
  25. {
      "type": "execute_action",
      "action": "shell",
      "shell": "sed -i /components/d rust-toolchain.toml\n\n# Commit this to git so that the Debian package building doesn't\n# see changes outside the debian directory.\ngit config set user.name \"Ambient CI\"\ngit config set user.email \"ambient@example.com\"\ngit commit -m \"remove components from toolchain file\" rust-toolchain.toml\n",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 274709439
      },
      "log_source": "Plan"
    }
  26. {
      "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,
            115,
            101,
            100,
            32,
            45,
            105,
            32,
            47,
            99,
            111,
            109,
            112,
            111,
            110,
            101,
            110,
            116,
            115,
            47,
            100,
            32,
            114,
            117,
            115,
            116,
            45,
            116,
            111,
            111,
            108,
            99,
            104,
            97,
            105,
            110,
            46,
            116,
            111,
            109,
            108,
            10,
            10,
            35,
            32,
            67,
            111,
            109,
            109,
            105,
            116,
            32,
            116,
            104,
            105,
            115,
            32,
            116,
            111,
            32,
            103,
            105,
            116,
            32,
            115,
            111,
            32,
            116,
            104,
            97,
            116,
            32,
            116,
            104,
            101,
            32,
            68,
            101,
            98,
            105,
            97,
            110,
            32,
            112,
            97,
            99,
            107,
            97,
            103,
            101,
            32,
            98,
            117,
            105,
            108,
            100,
            105,
            110,
            103,
            32,
            100,
            111,
            101,
            115,
            110,
            39,
            116,
            10,
            35,
            32,
            115,
            101,
            101,
            32,
            99,
            104,
            97,
            110,
            103,
            101,
            115,
            32,
            111,
            117,
            116,
            115,
            105,
            100,
            101,
            32,
            116,
            104,
            101,
            32,
            100,
            101,
            98,
            105,
            97,
            110,
            32,
            100,
            105,
            114,
            101,
            99,
            116,
            111,
            114,
            121,
            46,
            10,
            103,
            105,
            116,
            32,
            99,
            111,
            110,
            102,
            105,
            103,
            32,
            115,
            101,
            116,
            32,
            117,
            115,
            101,
            114,
            46,
            110,
            97,
            109,
            101,
            32,
            34,
            65,
            109,
            98,
            105,
            101,
            110,
            116,
            32,
            67,
            73,
            34,
            10,
            103,
            105,
            116,
            32,
            99,
            111,
            110,
            102,
            105,
            103,
            32,
            115,
            101,
            116,
            32,
            117,
            115,
            101,
            114,
            46,
            101,
            109,
            97,
            105,
            108,
            32,
            34,
            97,
            109,
            98,
            105,
            101,
            110,
            116,
            64,
            101,
            120,
            97,
            109,
            112,
            108,
            101,
            46,
            99,
            111,
            109,
            34,
            10,
            103,
            105,
            116,
            32,
            99,
            111,
            109,
            109,
            105,
            116,
            32,
            45,
            109,
            32,
            34,
            114,
            101,
            109,
            111,
            118,
            101,
            32,
            99,
            111,
            109,
            112,
            111,
            110,
            101,
            110,
            116,
            115,
            32,
            102,
            114,
            111,
            109,
            32,
            116,
            111,
            111,
            108,
            99,
            104,
            97,
            105,
            110,
            32,
            102,
            105,
            108,
            101,
            34,
            32,
            114,
            117,
            115,
            116,
            45,
            116,
            111,
            111,
            108,
            99,
            104,
            97,
            105,
            110,
            46,
            116,
            111,
            109,
            108,
            10,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 274945543
      },
      "log_source": "Plan"
    }
  27. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "[detached HEAD 828f36f12] remove components from toolchain file\n 1 file changed, 1 deletion(-)\n",
      "stderr": "+ sed -i /components/d rust-toolchain.toml\n+ git config set user.name 'Ambient CI'\n+ git config set user.email ambient@example.com\n+ git commit -m 'remove components from toolchain file' rust-toolchain.toml\n",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 481340175
      },
      "log_source": "Plan"
    }
  28. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "sed -i /components/d rust-toolchain.toml\n\n# Commit this to git so that the Debian package building doesn't\n# see changes outside the debian directory.\ngit config set user.name \"Ambient CI\"\ngit config set user.email \"ambient@example.com\"\ngit commit -m \"remove components from toolchain file\" rust-toolchain.toml\n",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 481388007
      },
      "log_source": "Plan"
    }
  29. {
      "type": "execute_action",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 481602435
      },
      "log_source": "Plan"
    }
  30. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 481612346
      },
      "log_source": "Plan"
    }
  31. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 523475893
      },
      "log_source": "Plan"
    }
  32. {
      "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": 1780128179,
        "nanos_since_epoch": 523524359
      },
      "log_source": "Plan"
    }
  33. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.95 (59807616e1 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 578533033
      },
      "log_source": "Plan"
    }
  34. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            114,
            117,
            115,
            116,
            99
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 581477980
      },
      "log_source": "Plan"
    }
  35. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.95.0 (59807616e 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1780128179,
        "nanos_since_epoch": 599266980
      },
      "log_source": "Plan"
    }
  36. {
      "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": 1780128179,
        "nanos_since_epoch": 599307639
      },
      "log_source": "Plan"
    }
  37. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1780128180,
        "nanos_since_epoch": 443832251
      },
      "log_source": "Plan"
    }
  38. {
      "type": "action_succeeded",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1780128180,
        "nanos_since_epoch": 446106003
      },
      "log_source": "Plan"
    }
  39. {
      "type": "execute_action",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1780128180,
        "nanos_since_epoch": 448136560
      },
      "log_source": "Plan"
    }
  40. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1780128180,
        "nanos_since_epoch": 450142537
      },
      "log_source": "Plan"
    }
  41. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1780128180,
        "nanos_since_epoch": 461365133
      },
      "log_source": "Plan"
    }
  42. {
      "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": 1780128180,
        "nanos_since_epoch": 464129966
      },
      "log_source": "Plan"
    }
  43. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.95 (59807616e1 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1780128180,
        "nanos_since_epoch": 493977181
      },
      "log_source": "Plan"
    }
  44. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            114,
            117,
            115,
            116,
            99
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1780128180,
        "nanos_since_epoch": 494033416
      },
      "log_source": "Plan"
    }
  45. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.95.0 (59807616e 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1780128180,
        "nanos_since_epoch": 511680798
      },
      "log_source": "Plan"
    }
  46. {
      "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": 1780128180,
        "nanos_since_epoch": 511736078
      },
      "log_source": "Plan"
    }
  47. {
      "type": "program_failed",
      "exit_code": 101,
      "stdout": "",
      "stderr": "    Checking radicle-crypto v0.17.0 (/ci/src/crates/radicle-crypto)\n    Checking radicle-oid v0.2.0 (/ci/src/crates/radicle-oid)\n    Checking radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)\n    Checking radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)\n    Checking radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)\n    Checking radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)\n   Compiling radicle v0.24.0 (/ci/src/crates/radicle)\n    Checking radicle-cob v0.20.0 (/ci/src/crates/radicle-cob)\n    Checking radicle-core v0.3.0 (/ci/src/crates/radicle-core)\n    Checking radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)\n    Checking radicle-term v0.18.0 (/ci/src/crates/radicle-term)\n    Checking radicle-log v0.1.0 (/ci/src/crates/radicle-log)\n   Compiling radicle-cli v0.21.0 (/ci/src/crates/radicle-cli)\n   Compiling radicle-node v0.20.0 (/ci/src/crates/radicle-node)\n    Checking radicle-systemd v0.13.0 (/ci/src/crates/radicle-systemd)\n   Compiling radicle-remote-helper v0.17.0 (/ci/src/crates/radicle-remote-helper)\nerror[E0433]: cannot find module or crate `read` in this scope\n  --> crates/radicle/src/git/repository/adapter/git2/object.rs:69:67\n   |\n69 |     fn object_kind(&self, oid: Oid) -> Result<Option<ObjectKind>, read::ObjectKind> {\n   |                                                                   ^^^^ use of unresolved module or unlinked crate `read`\n   |\n   = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`\nnote: module `crate::storage::git::trailers::object::error::read` exists but is inaccessible\n  --> crates/radicle/src/git/repository/object/error.rs:3:1\n   |\n 3 | pub mod read;\n   | ^^^^^^^^^^^^^ not accessible\n\nerror[E0433]: cannot find module or crate `read` in this scope\n   --> crates/radicle/src/git/repository/adapter/git2/object.rs:70:38\n    |\n 70 |         let odb = self.odb().map_err(read::ObjectKind::backend)?;\n    |                                      ^^^^ use of unresolved module or unlinked crate `read`\n    |\n    = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`\nnote: these enums exist but are inaccessible\n   --> crates/radicle/src/git/repository/object/error/read.rs:130:1\n    |\n130 | pub enum ObjectKind {\n    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::trailers::object::error::read::ObjectKind`: not accessible\n    |\n   ::: crates/radicle/src/git/repository/types.rs:19:1\n    |\n 19 | pub enum ObjectKind {\n    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::trailers::repository::ObjectKind`: not accessible\n\nerror[E0433]: cannot find module or crate `read` in this scope\n   --> crates/radicle/src/git/repository/adapter/git2/object.rs:74:27\n    |\n 74 |             Err(e) => Err(read::ObjectKind::backend(e)),\n    |                           ^^^^ use of unresolved module or unlinked crate `read`\n    |\n    = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`\nnote: these enums exist but are inaccessible\n   --> crates/radicle/src/git/repository/object/error/read.rs:130:1\n    |\n130 | pub enum ObjectKind {\n    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::trailers::object::error::read::ObjectKind`: not accessible\n    |\n   ::: crates/radicle/src/git/repository/types.rs:19:1\n    |\n 19 | pub enum ObjectKind {\n    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::trailers::repository::ObjectKind`: not accessible\n\nerror[E0433]: cannot find module or crate `read` in this scope\n  --> crates/radicle/src/git/repository/adapter/git2/object.rs:69:67\n   |\n69 |     fn object_kind(&self, oid: Oid) -> Result<Option<ObjectKind>, read::ObjectKind> {\n   |                                                                   ^^^^ use of unresolved module or unlinked crate `read`\n   |\n   = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`\nnote: module `crate::storage::git::tests::object::error::read` exists but is inaccessible\n  --> crates/radicle/src/git/repository/object/error.rs:3:1\n   |\n 3 | pub mod read;\n   | ^^^^^^^^^^^^^ not accessible\n\nerror[E0433]: cannot find module or crate `read` in this scope\n   --> crates/radicle/src/git/repository/adapter/git2/object.rs:70:38\n    |\n 70 |         let odb = self.odb().map_err(read::ObjectKind::backend)?;\n    |                                      ^^^^ use of unresolved module or unlinked crate `read`\n    |\n    = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`\nnote: these enums exist but are inaccessible\n   --> crates/radicle/src/git/repository/object/error/read.rs:130:1\n    |\n130 | pub enum ObjectKind {\n    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::tests::object::error::read::ObjectKind`: not accessible\n    |\n   ::: crates/radicle/src/git/repository/types.rs:19:1\n    |\n 19 | pub enum ObjectKind {\n    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::tests::repository::ObjectKind`: not accessible\n\nerror[E0433]: cannot find module or crate `read` in this scope\n   --> crates/radicle/src/git/repository/adapter/git2/object.rs:74:27\n    |\n 74 |             Err(e) => Err(read::ObjectKind::backend(e)),\n    |                           ^^^^ use of unresolved module or unlinked crate `read`\n    |\n    = help: if you wanted to use a crate named `read`, use `cargo add read` to add it to your `Cargo.toml`\nnote: these enums exist but are inaccessible\n   --> crates/radicle/src/git/repository/object/error/read.rs:130:1\n    |\n130 | pub enum ObjectKind {\n    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::tests::object::error::read::ObjectKind`: not accessible\n    |\n   ::: crates/radicle/src/git/repository/types.rs:19:1\n    |\n 19 | pub enum ObjectKind {\n    | ^^^^^^^^^^^^^^^^^^^ `crate::storage::git::tests::repository::ObjectKind`: not accessible\n\nFor more information about this error, try `rustc --explain E0433`.\nerror: could not compile `radicle` (lib) due to 3 previous errors\nwarning: build failed, waiting for other jobs to finish...\nerror: could not compile `radicle` (lib test) due to 3 previous errors\n",
      "timestamp": {
        "secs_since_epoch": 1780128187,
        "nanos_since_epoch": 789680449
      },
      "log_source": "Plan"
    }
  48. {
      "type": "action_failed",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1780128187,
        "nanos_since_epoch": 840672040
      },
      "log_source": "Plan"
    }
  49. {
      "type": "executor_ends_in_failure",
      "exit_code": 1,
      "timestamp": {
        "secs_since_epoch": 1780128187,
        "nanos_since_epoch": 841683123
      },
      "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": "Updated",
  "patch": {
    "id": "0f07db98214142b63b138f790969f44117d4b75d",
    "author": {
      "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "alias": "fintohaps"
    },
    "title": "Introduce `git::repository::user`",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "fb4d84927c228d59d48afb997ff35385a2898f95",
    "after": "fca3c519c64da0c0a79ce3f81bd035ad8b8a3c9a",
    "commits": [
      "fca3c519c64da0c0a79ce3f81bd035ad8b8a3c9a",
      "175e3217b49f52d3542b9d9602c65d06a70e700a",
      "d990739ade2fde235ba5698b5570bf6be5efa25e",
      "d26c62e1fe159b9ea3cd694cef9a50b516196d4b",
      "af27f7fbcc9cbb0224f3b25222662fcbc3a84590",
      "2f84deba9aa1d1b7aeaf1efba35616592d51df47",
      "9a0bf85dfcb17625cfec0b564d5091e26a04982a",
      "b3334426dc9ee4d1432dc78fad681b81f5bd87e4"
    ],
    "target": "a65ac048cbda3473e7b372375d33e3a357965492",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "0f07db98214142b63b138f790969f44117d4b75d",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Introduce a new module, `user`, that encapsulates logic for references\nin user space.\n\nThe current implementation of this is having supplying `NodeId`\nalongside a `Qualified` reference name, to get the form\n`refs/namespaces/<node id>/<qualifed refname>`.\nThe entire code base should not need to know this, yet this detail is\nleaked in an ad-hoc manner.\nOn top of this, using `NodeId` creates a stronger tie to this\nimplementation, where we know we want move towards a more flexible\nform, e.g. other `Did`s, in the future.\n\nThe `user` module introduces two types:\n1. `Namespace`: captures a user's `Did` and a generic repository, so\nthat it can query a user's reference space.\n2. `Namespaces`: captures a generic repository, so that it can query\nfor what `Did`s exist in that repository.\n\nThese two types are then used to refactor existing code, to help\nprevent the aformentioned leaking of implementation details.",
        "base": "ab3c64ddf2b1fd2985c0e380039ae44f5348fa26",
        "oid": "e3d54ba6efd5aec2b066778b14ad7b04d6a408f2",
        "timestamp": 1778830068
      },
      {
        "id": "45b453627fabf53216c68c346caa477bc82707c1",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Rebase",
        "base": "8787796de041765ae1b53d358474079924f99494",
        "oid": "5c7ab12225c7a3150fa06f27088303189c68b566",
        "timestamp": 1778944794
      },
      {
        "id": "dc5b06a0f4a1d0922ced29eceb8bf33d50f0375d",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Rebase",
        "base": "fb4d84927c228d59d48afb997ff35385a2898f95",
        "oid": "fca3c519c64da0c0a79ce3f81bd035ad8b8a3c9a",
        "timestamp": 1780127009
      }
    ]
  }
}

Ambient stdout

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

Ambient stderr

<empty log>