CI run for rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5

Radicle repository id rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5

Table of Contents

Run log

[2025-10-16T12:22:12Z INFO  ambient] ambient starts
[=3h[=3hBdsDxe: failed to load Boot0001 "UEFI QEMU DVD-ROM QM00005 " from PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x2,0xFFFF,0x0): Not Found
BdsDxe: loading Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0)
BdsDxe: starting Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x2,0x0)
Welcome to GRUB!


INFO: Block devices
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
vda    254:0    0   100G  0 disk 
├─vda1 254:1    0   953M  0 part 
└─vda2 254:2    0  99.1G  0 part /
vdb    254:16   0   6.1M  1 disk 
vdc    254:32   0  33.1M  1 disk 
vdd    254:48   0   9.3G  0 disk 
vde    254:64   0  46.6G  0 disk 
vdf    254:80   0 809.9M  1 disk 
INFO: Extracting tar archive from /dev/vdb
drwxr-xr-x _rad/_rad         0 2025-10-14 20:01 ./
-rw-r--r-- _rad/_rad      2450 2025-10-14 20:01 ./plan.yaml
-rwxr-xr-x _rad/_rad   6410400 2025-10-14 20:01 ./run-ci
INFO: Extracted files:
  4587526      4 drwxr-xr-x   2 1001     1001         4096 Oct 14 20:01 .
  4587527      4 -rw-r--r--   1 1001     1001         2450 Oct 14 20:01 ./plan.yaml
  4587530   6264 -rwxr-xr-x   1 1001     1001      6410400 Oct 14 20:01 ./run-ci
INFO: Running run-ci from /dev/vdb
================================ BEGIN ================================
[2025-10-14T20:03:25Z TRACE ambient_execute_plan] ambient-execute-plan version 0.8.0@9113b5e starts
[2025-10-14T20:03:25Z DEBUG ambient_execute_plan] ambient-execute-plan version 0.8.0@9113b5e starts
[2025-10-14T20:03:25Z INFO  ambient_execute_plan] ambient-execute-plan version 0.8.0@9113b5e starts
[2025-10-14T20:03:25Z WARN  ambient_execute_plan] ambient-execute-plan version 0.8.0@9113b5e starts
[2025-10-14T20:03:25Z ERROR ambient_execute_plan] ambient-execute-plan version 0.8.0@9113b5e starts
RunnablePlan::from_file: filename=plan.yaml
steps:
- action: mkdir
  pathname: /workspace
- action: mkdir
  pathname: /workspace/artifacts
- action: tar_extract
  archive: /dev/vdc
  directory: /workspace/src
- action: tar_extract
  archive: /dev/vdf
  directory: /workspace/deps
- action: tar_extract
  archive: /dev/vde
  directory: /workspace/cache
- action: spawn
  argv:
  - find
  - /workspace
  - -maxdepth
  - '2'
  - -ls
- 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
- 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
- action: tar_create
  archive: /dev/vde
  directory: /workspace/cache
- action: tar_create
  archive: /dev/vdd
  directory: /workspace/artifacts
executor_drive: /dev/vdb
source_drive: /dev/vdc
artifact_drive: /dev/vdd
cache_drive: /dev/vde
deps_drive: /dev/vdf
workspace_dir: /workspace
source_dir: /workspace/src
deps_dir: /workspace/deps
cache_dir: /workspace/cache
artifacts_dir: /workspace/artifacts


[2025-10-14T20:03:25Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
        pathname: "/workspace",
    }
[2025-10-14T20:03:25Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
        pathname: "/workspace",
    }
[2025-10-14T20:03:25Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "CARGO_HOME": "/workspace/deps",
            "PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "CARGO_TARGET_DIR": "/workspace/cache",
        },
        source_dir: "/workspace/src",
    }
[2025-10-14T20:03:25Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-10-14T20:03:25Z DEBUG ambient_ci::plan] RUN: Action Mkdir {
        pathname: "/workspace/artifacts",
    }
[2025-10-14T20:03:25Z DEBUG ambient_ci::action] Plan::execute: plan=Mkdir {
        pathname: "/workspace/artifacts",
    }
[2025-10-14T20:03:25Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "CARGO_HOME": "/workspace/deps",
            "PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "CARGO_TARGET_DIR": "/workspace/cache",
        },
        source_dir: "/workspace/src",
    }
[2025-10-14T20:03:25Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-10-14T20:03:25Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
        archive: "/dev/vdc",
        directory: "/workspace/src",
    }
[2025-10-14T20:03:25Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
        archive: "/dev/vdc",
        directory: "/workspace/src",
    }
[2025-10-14T20:03:25Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "CARGO_HOME": "/workspace/deps",
            "PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "CARGO_TARGET_DIR": "/workspace/cache",
        },
        source_dir: "/workspace/src",
    }
[2025-10-14T20:03:25Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
[2025-10-14T20:03:26Z TRACE ambient_ci::vdrive] extraction OK
[2025-10-14T20:03:26Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-10-14T20:03:26Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
        archive: "/dev/vdf",
        directory: "/workspace/deps",
    }
[2025-10-14T20:03:26Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
        archive: "/dev/vdf",
        directory: "/workspace/deps",
    }
[2025-10-14T20:03:26Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "CARGO_HOME": "/workspace/deps",
            "PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "CARGO_TARGET_DIR": "/workspace/cache",
        },
        source_dir: "/workspace/src",
    }
[2025-10-14T20:03:26Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
[2025-10-14T20:03:34Z TRACE ambient_ci::vdrive] extraction OK
[2025-10-14T20:03:34Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-10-14T20:03:34Z DEBUG ambient_ci::plan] RUN: Action TarExtract {
        archive: "/dev/vde",
        directory: "/workspace/cache",
    }
[2025-10-14T20:03:34Z DEBUG ambient_ci::action] Plan::execute: plan=TarExtract {
        archive: "/dev/vde",
        directory: "/workspace/cache",
    }
[2025-10-14T20:03:34Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "CARGO_HOME": "/workspace/deps",
            "PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "CARGO_TARGET_DIR": "/workspace/cache",
        },
        source_dir: "/workspace/src",
    }
[2025-10-14T20:03:34Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
[2025-10-14T20:06:51Z TRACE ambient_ci::vdrive] extraction OK
[2025-10-14T20:06:51Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-10-14T20:06:51Z DEBUG ambient_ci::plan] RUN: Action Spawn {
        argv: [
            "find",
            "/workspace",
            "-maxdepth",
            "2",
            "-ls",
        ],
    }
[2025-10-14T20:06:51Z DEBUG ambient_ci::action] Plan::execute: plan=Spawn {
        argv: [
            "find",
            "/workspace",
            "-maxdepth",
            "2",
            "-ls",
        ],
    }
[2025-10-14T20:06:51Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "CARGO_HOME": "/workspace/deps",
            "PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "CARGO_TARGET_DIR": "/workspace/cache",
        },
        source_dir: "/workspace/src",
    }
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
       cwd=/workspace/src (exists? true)
  2621441      4 drwxr-xr-x   6 root     root         4096 Oct 14 20:03 /workspace
  2622373      4 drwxr-xr-x   3 root     root         4096 Oct 14 20:01 /workspace/deps
  2622374      0 -rw-r--r--   1 root     root            0 Sep 22 16:46 /workspace/deps/.package-cache-mutate
  2622377      4 drwxr-xr-x   5 root     root         4096 Sep 22 16:46 /workspace/deps/registry
  2622375    128 -rw-r--r--   1 root     root       131072 Oct 14 20:01 /workspace/deps/.global-cache
  2622376      0 -rw-r--r--   1 root     root            0 Sep 22 16:46 /workspace/deps/.package-cache
  2621443      4 drwxr-xr-x  12 root     root         4096 Oct 14 20:01 /workspace/src
  2621500      4 -rw-r--r--   1 root     root         3376 Oct 14 20:01 /workspace/src/Cargo.toml
  2622369     12 -rw-r--r--   1 root     root         9636 Oct 14 20:01 /workspace/src/CONTRIBUTING.md
  2621501      4 drwxr-xr-x   2 root     root         4096 Oct 14 20:01 /workspace/src/.config
  2621497      4 -rw-r--r--   1 root     root         1623 Oct 14 20:01 /workspace/src/build.rs
  2621503      4 -rw-r--r--   1 root     root          426 Oct 14 20:01 /workspace/src/radicle-node.1.adoc
  2621505      4 drwxr-xr-x   8 root     root         4096 Oct 14 20:01 /workspace/src/.git
  2622366      8 -rw-r--r--   1 root     root         7144 Oct 14 20:01 /workspace/src/rad-id.1.adoc
  2621460      4 -rw-r--r--   1 root     root         2163 Oct 14 20:01 /workspace/src/VERSIONING.md
  2621496      4 -rw-r--r--   1 root     root         3133 Oct 14 20:01 /workspace/src/README.md
  2621718     12 -rw-r--r--   1 root     root        10975 Oct 14 20:01 /workspace/src/rad-patch.1.adoc
  2622370      4 -rw-r--r--   1 root     root           79 Oct 14 20:01 /workspace/src/ARCHITECTURE.md
  2621726      4 drwxr-xr-x  20 root     root         4096 Oct 14 20:01 /workspace/src/crates
  2621448      4 drwxr-xr-x   2 root     root         4096 Oct 14 20:01 /workspace/src/scripts
  2621444      4 drwxr-xr-x   2 root     root         4096 Oct 14 20:01 /workspace/src/.radicle
  2621467     16 -rw-r--r--   1 root     root        14643 Oct 14 20:01 /workspace/src/CHANGELOG.md
  2621483      4 drwxr-xr-x   3 root     root         4096 Oct 14 20:01 /workspace/src/debian
  2621465      4 -rw-r--r--   1 root     root           42 Oct 14 20:01 /workspace/src/.envrc
  2622367      4 -rw-r--r--   1 root     root         1203 Oct 14 20:01 /workspace/src/DCO
  2622362      4 drwxr-xr-x   3 root     root         4096 Oct 14 20:01 /workspace/src/.github
  2621482      4 -rw-r--r--   1 root     root           17 Oct 14 20:01 /workspace/src/.rustfmt.toml
  2622372    120 -rw-r--r--   1 root     root       122162 Oct 14 20:01 /workspace/src/Cargo.lock
  2621719      4 drwxr-xr-x   5 root     root         4096 Oct 14 20:01 /workspace/src/systemd
  2621717     12 -rw-r--r--   1 root     root         9723 Oct 14 20:01 /workspace/src/LICENSE-APACHE
  2621499      4 -rw-r--r--   1 root     root          101 Oct 14 20:01 /workspace/src/.gitignore
  2622368      8 -rw-r--r--   1 root     root         5102 Oct 14 20:01 /workspace/src/flake.lock
  2621464      4 -rw-r--r--   1 root     root           77 Oct 14 20:01 /workspace/src/rust-toolchain.toml
  2621498     12 -rw-r--r--   1 root     root        11476 Oct 14 20:01 /workspace/src/flake.nix
  2621468      4 -rw-r--r--   1 root     root          571 Oct 14 20:01 /workspace/src/git-remote-rad.1.adoc
  2621466      4 -rw-r--r--   1 root     root           61 Oct 14 20:01 /workspace/src/.env.seed
  2621504      8 -rw-r--r--   1 root     root         5432 Oct 14 20:01 /workspace/src/deny.toml
  2621458      8 -rw-r--r--   1 root     root         7645 Oct 14 20:01 /workspace/src/HACKING.md
  2621447      4 -rw-r--r--   1 root     root         1079 Oct 14 20:01 /workspace/src/LICENSE-MIT
  2621463      8 -rw-r--r--   1 root     root         8023 Oct 14 20:01 /workspace/src/rad.1.adoc
  2621469      4 drwxr-xr-x   2 root     root         4096 Oct 14 20:01 /workspace/src/build
  2622371      4 -rw-r--r--   1 root     root         1083 Oct 14 20:01 /workspace/src/.gitsigners
  2621459      4 -rw-r--r--   1 root     root           30 Oct 14 20:01 /workspace/src/.dockerignore
  2621461      4 drwxr-xr-x   2 root     root         4096 Oct 14 20:01 /workspace/src/.cargo
  2621442      4 drwxr-xr-x   2 root     root         4096 Oct 14 20:03 /workspace/artifacts
  2650600      4 drwxr-xr-x   6 root     root         4096 Sep 22 23:09 /workspace/cache
  2667781      4 -rw-r--r--   1 root     root          218 Sep 22 23:08 /workspace/cache/.rustdoc_fingerprint.json
  2667783      4 drwxr-xr-x  24 root     root         4096 Oct  7 15:08 /workspace/cache/doc
  2650602      4 drwxr-xr-x   7 root     root         4096 Oct  7 15:05 /workspace/cache/debug
  2650601      4 drwxr-xr-x   2 root     root         4096 Sep 22 23:02 /workspace/cache/tmp
  2667782      4 -rw-r--r--   1 root     root         1036 Oct  7 16:40 /workspace/cache/.rustc_info.json
  2762144      4 drwxr-xr-x   7 root     root         4096 Oct  7 15:10 /workspace/cache/release
[2025-10-14T20:06:51Z DEBUG ambient_ci::plan] RUN: Action finished OK
[2025-10-14T20:06:51Z DEBUG ambient_ci::plan] RUN: Action CargoFmt
[2025-10-14T20:06:51Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFmt
[2025-10-14T20:06:51Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "CARGO_HOME": "/workspace/deps",
            "PATH": "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "CARGO_TARGET_DIR": "/workspace/cache",
        },
        source_dir: "/workspace/src",
    }
SPAWN: argv=["cargo", "--version"]
       cwd=/workspace/src (exists? true)
cargo 1.88.0 (873a06493 2025-05-10)
SPAWN: argv=["cargo", "clippy", "--version"]
       cwd=/workspace/src (exists? true)
clippy 0.1.88 (6b00bc3880 2025-06-23)
SPAWN: argv=["rustc", "--version"]
       cwd=/workspace/src (exists? true)
rustc 1.88.0 (6b00bc388 2025-06-23)
SPAWN: argv=["cargo", "fmt", "--check"]
       cwd=/workspace/src (exists? true)
Diff in /workspace/src/crates/radicle-node/src/reactor.rs:452:
                             self.service.listener_reacted(token, service_event, time);
                         });
                 } else {
-                    let listener = self.deregister_listener(token).unwrap_or_else(|| panic!("listener with token {} has disappeared", token.0));
+                    let listener = self.deregister_listener(token).unwrap_or_else(|| {
+                        panic!("listener with token {} has disappeared", token.0)
+                    });
                     self.service
                         .handle_error(Error::ListenerDisconnect(token, listener));
                     deregistered.push(token);
Diff in /workspace/src/crates/radicle-node/src/reactor.rs:471:
                             self.service.transport_reacted(token, service_event, time);
                         });
                 } else {
-                    let transport = self.deregister_transport(token).unwrap_or_else(|| panic!("transport with token {} has disappeared", token.0));
+                    let transport = self.deregister_transport(token).unwrap_or_else(|| {
+                        panic!("transport with token {} has disappeared", token.0)
+                    });
                     self.service
                         .handle_error(Error::TransportDisconnect(token, transport));
                     deregistered.push(token);
[2025-10-14T20:06:53Z ERROR ambient_ci::plan] ERROR: Action failed: failed to execute cargo
[2025-10-14T20:06:53Z ERROR ambient_ci::plan] caused by: command failed: "cargo": exit code 1
ERROR: failed to execute cargo
caused by: command failed: "cargo": exit code 1
EXIT CODE: 1
[2025-10-16T12:22:12Z INFO  ambient] ambient ends successfully

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": "9e45558dda40cf7e46739fef11b366d2060ecb1d",
    "author": {
      "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "alias": "fintohaps"
    },
    "title": "cli/id: Use clap",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
    "after": "9a2e62c0407aee02f03f0feb92164ed554b5ed9c",
    "commits": [
      "9a2e62c0407aee02f03f0feb92164ed554b5ed9c",
      "7c6b7a94247ed724c54eb6835e9f1e250496502a",
      "138f929851c7b443451775eecc822d5e0a58c2ad"
    ],
    "target": "d9ae29deaa0dc43db4ea0391d6604cde0fc192c5",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "9e45558dda40cf7e46739fef11b366d2060ecb1d",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "This implementation works around the fact that `clap` does currently\nnot support value parsers for a series of values, so representing\n`--payload` as a `Vec<Payload>` does not work.\n\nInstead, we parse eveything into a `Vec<String>` and do the validation\non the application side.\n\nUsing value parsers for a series of values will probably be supported in\n`clap` v5, though.",
        "base": "3e98589a767d9a17a3da90e52ae4abb198fa9ada",
        "oid": "1fcee08a8fd3b3c863bddb8c98cdf1bcbb2cf2cc",
        "timestamp": 1760432036
      },
      {
        "id": "5743b4009825c6beafb70cb6fd9ddee79843057c",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "- Rebase",
        "base": "efe10f95be9fde1cda84f0631ec8f6546ac7228d",
        "oid": "f27f69e9a00f4dc33f9c74327d2d3dfe62a14322",
        "timestamp": 1760432200
      },
      {
        "id": "4afef0bc538bbf407e8e8863535bcbaf1bc10807",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "REVIEW",
        "base": "efe10f95be9fde1cda84f0631ec8f6546ac7228d",
        "oid": "53244fd61500879b0f81d7a3496f494e595fbd81",
        "timestamp": 1760440294
      },
      {
        "id": "8391c927f0376b3043c677d3e78ddd28fb6cc405",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Changes:\n\n- Return `impl Iterator` from payload parsing function\n- Assert value number in payload parsing function\n- Add unit tests",
        "base": "dfd35480be82828713ccc3c9206b1273ddac35d0",
        "oid": "d3f8eced41cd81b833a8a101f8004113002aba58",
        "timestamp": 1760443529
      },
      {
        "id": "c2b443e152167326672d9952f01c26ff08a70896",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "REVIEW",
        "base": "dfd35480be82828713ccc3c9206b1273ddac35d0",
        "oid": "1ea1182827099e205c9e060135ce4770584e7628",
        "timestamp": 1760444570
      },
      {
        "id": "2f9c64211a2179b13b253e0e93ef749c2b388abb",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "- Squash review commits",
        "base": "dfd35480be82828713ccc3c9206b1273ddac35d0",
        "oid": "8a3a222b18f315fe7a9fad7cfd7fc11e9ca00886",
        "timestamp": 1760458749
      },
      {
        "id": "8904aec75c2095b785209754949ad4a6cdeed146",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "- Rebase",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "6030280853c4c6ddbab12a17de75a7c18538f6c6",
        "timestamp": 1760458770
      },
      {
        "id": "9549a776bd4e3f7a744b3020774cb5eb564a5c61",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Review",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "45820843c6d147802b49a780dda800dcafb52a69",
        "timestamp": 1760469079
      },
      {
        "id": "a67b55d8e6df58ae2d0d745316e9a2ce8090d4b1",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Changes:\n\n- Use `REVISION_ID` and fix a missing new line",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "7e3433a9de4338c3556e81d5c66b518747548f4c",
        "timestamp": 1760602570
      },
      {
        "id": "d10bf70a3417af6b3c496f63bf84e3f2a94e1fb6",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Changes:\n- Squashed `lorenz`'s changes\n- Removed errant whitespace\n- Renamed all accounts of `REVISON-ID` to `REVISION_ID`",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "7c6b7a94247ed724c54eb6835e9f1e250496502a",
        "timestamp": 1760617111
      },
      {
        "id": "2159229e0bd9fa49e8bdefd58a0d202c97dbf2d4",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "REVIEW: make the panic message *even* nicer",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "9a2e62c0407aee02f03f0feb92164ed554b5ed9c",
        "timestamp": 1760617327
      }
    ]
  }
}

Ambient stdout

[2025-10-16T12:22:12Z INFO  ambient] ambient starts
[2025-10-16T12:22:12Z DEBUG ambient] load default configuration file /home/_rad/.config/ambient/config.yaml if it exists
[2025-10-16T12:22:12Z DEBUG ambient] complete configuration: Config {
        tmpdir: "/srv/tmp",
        image_store: "/home/_rad/.local/state/ambient-ci/images",
        projects: "/home/_rad/ambient-projects.yaml",
        state: "/srv/ambient-state",
        rsync_target: None,
        rsync_target_base: None,
        rsync_target_map: None,
        dput_target: None,
        executor: Some(
            "/usr/bin/ambient-execute-plan",
        ),
        artifacts_max_size: Byte(
            10000000000,
        ),
        cache_max_size: Byte(
            50000000000,
        ),
        qemu: QemuConfig {
            cpus: 4,
            memory: Byte(
                8000000000,
            ),
            kvm_binary: "/usr/bin/kvm",
            ovmf_vars_file: "/usr/share/ovmf/OVMF.fd",
            ovmf_code_file: "/usr/share/ovmf/OVMF.fd",
        },
    }
[2025-10-16T12:22:12Z DEBUG ambient] configuration: Config {
        tmpdir: "/srv/tmp",
        image_store: "/home/_rad/.local/state/ambient-ci/images",
        projects: "/home/_rad/ambient-projects.yaml",
        state: "/srv/ambient-state",
        rsync_target: None,
        rsync_target_base: None,
        rsync_target_map: None,
        dput_target: None,
        executor: Some(
            "/usr/bin/ambient-execute-plan",
        ),
        artifacts_max_size: Byte(
            10000000000,
        ),
        cache_max_size: Byte(
            50000000000,
        ),
        qemu: QemuConfig {
            cpus: 4,
            memory: Byte(
                8000000000,
            ),
            kvm_binary: "/usr/bin/kvm",
            ovmf_vars_file: "/usr/share/ovmf/OVMF.fd",
            ovmf_code_file: "/usr/share/ovmf/OVMF.fd",
        },
    }
[2025-10-16T12:22:12Z DEBUG ambient_ci::project] load project state from /srv/ambient-state/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/meta.yaml
[2025-10-16T12:22:12Z DEBUG ambient_ci::run] latest commit: "554266e32f891a48c95dc9747600fe8308031d29"
[2025-10-16T12:22:12Z DEBUG ambient_ci::run] is a git repository
[2025-10-16T12:22:12Z DEBUG ambient_ci::run] git repository is clean
[2025-10-16T12:22:12Z DEBUG ambient_ci::run] current (HEAD) commit: 9a2e62c0407aee02f03f0feb92164ed554b5ed9c
[2025-10-16T12:22:12Z DEBUG ambient_ci::run] no dry run requested
[2025-10-16T12:22:12Z DEBUG ambient_ci::run] forced run requested
[2025-10-16T12:22:12Z DEBUG ambient_ci::run] run? true
[2025-10-16T12:22:12Z INFO  ambient_ci::run] project rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5: running CI
[2025-10-16T12:22:12Z DEBUG ambient_ci::run] Executing pre-plan steps
[2025-10-16T12:22:12Z DEBUG ambient_ci::plan] RUN: Action CargoFetch {
        sourcedir: "/tmp/.tmpb42Gn3/src",
    }
[2025-10-16T12:22:12Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFetch {
        sourcedir: "/tmp/.tmpb42Gn3/src",
    }
[2025-10-16T12:22:12Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "CARGO_TARGET_DIR": "/srv/ambient-state/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/cache",
            "HOME": "/root",
            "CARGO_HOME": "/srv/ambient-state/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/dependencies",
            "PATH": "/root/.cargo/bin:/bin:/home/_rad/.radicle/bin:/home/_rad/.cargo/bin",
        },
        source_dir: "/tmp/.tmpb42Gn3/src",
    }
SPAWN: argv=["cargo", "--version"]
       cwd=/tmp/.tmpb42Gn3/src (exists? true)
error: could not create home directory: '/root/.rustup': Permission denied (os error 13)
[2025-10-16T12:22:12Z ERROR ambient_ci::plan] ERROR: Action failed: failed to execute cargo
[2025-10-16T12:22:12Z ERROR ambient_ci::plan] caused by: command failed: "cargo": exit code 1
ERROR: failed to execute cargo
caused by: command failed: "cargo": exit code 1

Ambient stderr

<empty log>