CI: FAILURE heartwood

Table of Contents

Run log

Plan, inside VM without network

plan: Executor starts
After 0.00 seconds at 2026-06-22 15:07:33ZProgram: ambient-execute-plan
Version: 0.14.0@c37ec71
plan: Runnable plan
After 0.00 seconds at 2026-06-22 15:07: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.00 seconds at 2026-06-22 15:07:33Z
  • plan: Start action mkdir: /ci
    After 0.00 seconds at 2026-06-22 15:07:33Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
  • plan: Action succeeded mkdir: /ci
    After 0.00 seconds at 2026-06-22 15:07:33Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
plan: Successful action mkdir: /ci/artifacts
After 0.00 seconds at 2026-06-22 15:07:33Z
  • plan: Start action mkdir: /ci/artifacts
    After 0.00 seconds at 2026-06-22 15:07:33Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
  • plan: Action succeeded mkdir: /ci/artifacts
    After 0.00 seconds at 2026-06-22 15:07:33Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
plan: Successful action tar_extract
After 0.00 seconds at 2026-06-22 15:07:33Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-06-22 15:07:33Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-06-22 15:07:34Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
plan: Successful action tar_extract
After 0.18 seconds at 2026-06-22 15:07:34Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-06-22 15:07:34Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-06-22 15:07:42Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
plan: Successful action tar_extract
After 8.95 seconds at 2026-06-22 15:07:42Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-06-22 15:07:42Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-06-22 15:07:54Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
plan: Successful action shell: ln -sf /ci /workspace
After 21.03 seconds at 2026-06-22 15:07:54Z
  • plan: Start action shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-06-22 15:07:54Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-06-22 15:07:54Z
    • bash
    • -c
    • set -xeuo pipefail ln -sf /ci /workspace
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-22 15:07:55Z
    Exit code: 0
    Stderr:
    + ln -sf /ci /workspace
    
  • plan: Action succeeded shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-06-22 15:07:55Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
plan: Successful action shell: git config --global user.name 'Ambient CI'
After 21.04 seconds at 2026-06-22 15:07:55Z
  • plan: Start action shell: git config --global user.name 'Ambient CI'
    After 0.00 seconds at 2026-06-22 15:07:55Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-06-22 15:07:55Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.name 'Ambient CI'
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-22 15:07:55Z
    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-22 15:07:55Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
plan: Successful action shell: git config --global user.email ambient@example.com
After 21.06 seconds at 2026-06-22 15:07:55Z
  • plan: Start action shell: git config --global user.email ambient@example.com
    After 0.00 seconds at 2026-06-22 15:07:55Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-06-22 15:07:55Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.email ambient@example.com
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-22 15:07:55Z
    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-22 15:07:55Z
    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 21.08 seconds at 2026-06-22 15:07:55Z
  • 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-06-22 15:07:55Z
    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-06-22 15:07:55Z
    • 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-06-22 15:07:55Z
    Exit code: 0
    Stdout:
    [detached HEAD 1ba0d642b] 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-06-22 15:07:55Z
    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 21.22 seconds at 2026-06-22 15:07:55Z
  • plan: Start action cargo_fmt
    After 0.00 seconds at 2026-06-22 15:07:55Z
    CargoFmt(
        CargoFmt,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-22 15:07:55Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-22 15:07:55Z
    Exit code: 0
    Stdout:
    cargo 1.95.0 (f2d3ce0bd 2026-03-21)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-22 15:07:55Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-22 15:07:55Z
    Exit code: 0
    Stdout:
    clippy 0.1.95 (59807616e1 2026-04-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-06-22 15:07:55Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-22 15:07:55Z
    Exit code: 0
    Stdout:
    rustc 1.95.0 (59807616e 2026-04-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-06-22 15:07:55Z
    • cargo
    • fmt
    • --check
  • plan: Program succeeded
    After 0.00 seconds at 2026-06-22 15:07:56Z
    Exit code: 0
  • plan: Action succeeded cargo_fmt
    After 0.00 seconds at 2026-06-22 15:07:56Z
    CargoFmt(
        CargoFmt,
    )
plan: Start action cargo_clippy
After 22.17 seconds at 2026-06-22 15:07:56Z
CargoClippy(
    CargoClippy,
)
plan: Start program cargo
After 22.17 seconds at 2026-06-22 15:07:56Z
  • cargo
  • --version
plan: Program succeeded
After 22.19 seconds at 2026-06-22 15:07:56Z
Exit code: 0
Stdout:
cargo 1.95.0 (f2d3ce0bd 2026-03-21)
plan: Start program cargo
After 22.19 seconds at 2026-06-22 15:07:56Z
  • cargo
  • clippy
  • --version
plan: Program succeeded
After 22.22 seconds at 2026-06-22 15:07:56Z
Exit code: 0
Stdout:
clippy 0.1.95 (59807616e1 2026-04-14)
plan: Start program rustc
After 22.22 seconds at 2026-06-22 15:07:56Z
  • rustc
  • --version
plan: Program succeeded
After 22.24 seconds at 2026-06-22 15:07:56Z
Exit code: 0
Stdout:
rustc 1.95.0 (59807616e 2026-04-14)
plan: Start program cargo
After 22.24 seconds at 2026-06-22 15:07:56Z
  • cargo
  • clippy
  • --offline
  • --locked
  • --workspace
  • --all-targets
  • --no-deps
  • --
  • --deny
  • warnings
plan: ERROR: Program failed
After 38.89 seconds at 2026-06-22 15:08:12Z
Exit code: 101
Stderr:
   Compiling libgit2-sys v0.18.4+1.9.3
    Checking radicle-crypto v0.17.0 (/ci/src/crates/radicle-crypto)
    Checking radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)
    Checking radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)
    Checking radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)
    Checking radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)
   Compiling radicle v0.24.0 (/ci/src/crates/radicle)
    Checking radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)
   Compiling proc-macro-error-attr3 v3.0.2
   Compiling proc-macro-error3 v3.0.2
   Compiling git-ref-format-macro v0.7.0
   Compiling radicle-surf v0.28.0
    Checking git-ref-format v0.7.0
   Compiling radicle-node v0.20.0 (/ci/src/crates/radicle-node)
   Compiling radicle-cli v0.21.0 (/ci/src/crates/radicle-cli)
    Checking radicle-systemd v0.13.0 (/ci/src/crates/radicle-systemd)
   Compiling radicle-remote-helper v0.17.0 (/ci/src/crates/radicle-remote-helper)
    Checking radicle-windows v0.1.0 (/ci/src/crates/radicle-windows)
    Checking git2 v0.21.0
    Checking radicle-oid v0.2.0 (/ci/src/crates/radicle-oid)
    Checking radicle-term v0.18.0 (/ci/src/crates/radicle-term)
error: enum `Oid` has a public `len` method, but no `is_empty` method
   --> crates/radicle-oid/src/lib.rs:177:5
    |
177 |     pub fn len(&self) -> usize {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.95.0/index.html#len_without_is_empty
    = note: `-D clippy::len-without-is-empty` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::len_without_is_empty)]`

error: could not compile `radicle-oid` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
plan: Action failed: cargo_clippy
After 38.89 seconds at 2026-06-22 15:08:12Z
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": 1782140853,
        "nanos_since_epoch": 958303013
      },
      "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": 1782140853,
        "nanos_since_epoch": 958706208
      },
      "log_source": "Plan"
    }
  3. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1782140853,
        "nanos_since_epoch": 958896308
      },
      "log_source": "Plan"
    }
  4. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1782140853,
        "nanos_since_epoch": 959137844
      },
      "log_source": "Plan"
    }
  5. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1782140853,
        "nanos_since_epoch": 959717046
      },
      "log_source": "Plan"
    }
  6. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1782140853,
        "nanos_since_epoch": 959749462
      },
      "log_source": "Plan"
    }
  7. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1782140853,
        "nanos_since_epoch": 959923854
      },
      "log_source": "Plan"
    }
  8. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1782140854,
        "nanos_since_epoch": 133997154
      },
      "log_source": "Plan"
    }
  9. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1782140854,
        "nanos_since_epoch": 136678735
      },
      "log_source": "Plan"
    }
  10. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1782140862,
        "nanos_since_epoch": 901307689
      },
      "log_source": "Plan"
    }
  11. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1782140862,
        "nanos_since_epoch": 904011306
      },
      "log_source": "Plan"
    }
  12. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1782140874,
        "nanos_since_epoch": 989910161
      },
      "log_source": "Plan"
    }
  13. {
      "type": "execute_action",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1782140874,
        "nanos_since_epoch": 990372601
      },
      "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": 1782140874,
        "nanos_since_epoch": 990582059
      },
      "log_source": "Plan"
    }
  15. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ ln -sf /ci /workspace\n",
      "timestamp": {
        "secs_since_epoch": 1782140875,
        "nanos_since_epoch": 2520295
      },
      "log_source": "Plan"
    }
  16. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1782140875,
        "nanos_since_epoch": 2979224
      },
      "log_source": "Plan"
    }
  17. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1782140875,
        "nanos_since_epoch": 3207129
      },
      "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": 1782140875,
        "nanos_since_epoch": 3216072
      },
      "log_source": "Plan"
    }
  19. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ git config --global user.name 'Ambient CI'\n",
      "timestamp": {
        "secs_since_epoch": 1782140875,
        "nanos_since_epoch": 20135082
      },
      "log_source": "Plan"
    }
  20. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1782140875,
        "nanos_since_epoch": 20582921
      },
      "log_source": "Plan"
    }
  21. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1782140875,
        "nanos_since_epoch": 20786550
      },
      "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": 1782140875,
        "nanos_since_epoch": 20795663
      },
      "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": 1782140875,
        "nanos_since_epoch": 35529956
      },
      "log_source": "Plan"
    }
  24. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1782140875,
        "nanos_since_epoch": 36020164
      },
      "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": 1782140875,
        "nanos_since_epoch": 36220389
      },
      "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": 1782140875,
        "nanos_since_epoch": 36236551
      },
      "log_source": "Plan"
    }
  27. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "[detached HEAD 1ba0d642b] 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": 1782140875,
        "nanos_since_epoch": 161969850
      },
      "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": 1782140875,
        "nanos_since_epoch": 168246878
      },
      "log_source": "Plan"
    }
  29. {
      "type": "execute_action",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1782140875,
        "nanos_since_epoch": 174517496
      },
      "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": 1782140875,
        "nanos_since_epoch": 176443616
      },
      "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": 1782140875,
        "nanos_since_epoch": 204206642
      },
      "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": 1782140875,
        "nanos_since_epoch": 206958550
      },
      "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": 1782140875,
        "nanos_since_epoch": 258716740
      },
      "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": 1782140875,
        "nanos_since_epoch": 261539683
      },
      "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": 1782140875,
        "nanos_since_epoch": 279213172
      },
      "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": 1782140875,
        "nanos_since_epoch": 279674676
      },
      "log_source": "Plan"
    }
  37. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1782140876,
        "nanos_since_epoch": 128404012
      },
      "log_source": "Plan"
    }
  38. {
      "type": "action_succeeded",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1782140876,
        "nanos_since_epoch": 128909747
      },
      "log_source": "Plan"
    }
  39. {
      "type": "execute_action",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1782140876,
        "nanos_since_epoch": 129105457
      },
      "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": 1782140876,
        "nanos_since_epoch": 129114899
      },
      "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": 1782140876,
        "nanos_since_epoch": 144940791
      },
      "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": 1782140876,
        "nanos_since_epoch": 147560857
      },
      "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": 1782140876,
        "nanos_since_epoch": 176377564
      },
      "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": 1782140876,
        "nanos_since_epoch": 178996379
      },
      "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": 1782140876,
        "nanos_since_epoch": 193555953
      },
      "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": 1782140876,
        "nanos_since_epoch": 196200718
      },
      "log_source": "Plan"
    }
  47. {
      "type": "program_failed",
      "exit_code": 101,
      "stdout": "",
      "stderr": "   Compiling libgit2-sys v0.18.4+1.9.3\n    Checking radicle-crypto v0.17.0 (/ci/src/crates/radicle-crypto)\n    Checking radicle-localtime v0.1.0 (/ci/src/crates/radicle-localtime)\n    Checking radicle-dag v0.10.0 (/ci/src/crates/radicle-dag)\n    Checking radicle-git-metadata v0.2.0 (/ci/src/crates/radicle-git-metadata)\n    Checking radicle-git-ref-format v0.1.0 (/ci/src/crates/radicle-git-ref-format)\n   Compiling radicle v0.24.0 (/ci/src/crates/radicle)\n    Checking radicle-signals v0.11.0 (/ci/src/crates/radicle-signals)\n   Compiling proc-macro-error-attr3 v3.0.2\n   Compiling proc-macro-error3 v3.0.2\n   Compiling git-ref-format-macro v0.7.0\n   Compiling radicle-surf v0.28.0\n    Checking git-ref-format v0.7.0\n   Compiling radicle-node v0.20.0 (/ci/src/crates/radicle-node)\n   Compiling radicle-cli v0.21.0 (/ci/src/crates/radicle-cli)\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)\n    Checking radicle-windows v0.1.0 (/ci/src/crates/radicle-windows)\n    Checking git2 v0.21.0\n    Checking radicle-oid v0.2.0 (/ci/src/crates/radicle-oid)\n    Checking radicle-term v0.18.0 (/ci/src/crates/radicle-term)\nerror: enum `Oid` has a public `len` method, but no `is_empty` method\n   --> crates/radicle-oid/src/lib.rs:177:5\n    |\n177 |     pub fn len(&self) -> usize {\n    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^\n    |\n    = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.95.0/index.html#len_without_is_empty\n    = note: `-D clippy::len-without-is-empty` implied by `-D warnings`\n    = help: to override `-D warnings` add `#[allow(clippy::len_without_is_empty)]`\n\nerror: could not compile `radicle-oid` (lib) due to 1 previous error\nwarning: build failed, waiting for other jobs to finish...\n",
      "timestamp": {
        "secs_since_epoch": 1782140892,
        "nanos_since_epoch": 850300069
      },
      "log_source": "Plan"
    }
  48. {
      "type": "action_failed",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1782140892,
        "nanos_since_epoch": 850860457
      },
      "log_source": "Plan"
    }
  49. {
      "type": "executor_ends_in_failure",
      "exit_code": 1,
      "timestamp": {
        "secs_since_epoch": 1782140892,
        "nanos_since_epoch": 851984301
      },
      "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": "890b1dd59b8417016b6b07a8f41f752022a83684",
    "author": {
      "id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
      "alias": "lorenz"
    },
    "title": "SHA-256 Support",
    "state": {
      "status": "draft",
      "conflicts": []
    },
    "before": "018266023a738c51b3a4bf6abef5bb16ee3b1181",
    "after": "f1b2d2d0015f1e716b0658e006669426e1352a79",
    "commits": [
      "f1b2d2d0015f1e716b0658e006669426e1352a79",
      "f4c76f97f91a7f1631186e30f0e154826933b232",
      "ccc52dbf1cc4b13da2a3bbb88a25de5041d057a1",
      "fd6deb719919f2b30eb6de917e358b03b43dbf84",
      "c4eef1dc1219e40d6bbf73ca28baf96d379139be",
      "66f93dcd9b7c00984432114d4f8f20188b3bce27",
      "1bc672ea6c1402f1dc13f5549eb2f107835a28a2",
      "076fe48d46ae590594f161f0f60fa0609f8d8aa0"
    ],
    "target": "018266023a738c51b3a4bf6abef5bb16ee3b1181",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "890b1dd59b8417016b6b07a8f41f752022a83684",
        "author": {
          "id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
          "alias": "lorenz"
        },
        "description": "See <https://radicle.zulipchat.com/#narrow/channel/369277-heartwood/topic/SHA-256/with/596665662>.",
        "base": "88bf2a9648750365d4565e32deae35b18808a391",
        "oid": "71d8e288907d5af277427829a97cf741dfdac927",
        "timestamp": 1782063843
      },
      {
        "id": "35852c562dbc7b27b1a2168ad7513e4fc7ad5983",
        "author": {
          "id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
          "alias": "lorenz"
        },
        "description": "Remove `Cargo.toml` override.",
        "base": "018266023a738c51b3a4bf6abef5bb16ee3b1181",
        "oid": "f1b2d2d0015f1e716b0658e006669426e1352a79",
        "timestamp": 1782140815
      }
    ]
  }
}

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>