CI run for rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5

Radicle repository id rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5

Table of Contents

Run log

[2025-10-15T09:46: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-15T09:46: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": "80ae361a0b13980a10d50febaca13090842791fd",
    "author": {
      "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "alias": "fintohaps"
    },
    "title": "node/reactor: Correctly handle error events",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "72cf3d19190438bb5a44a737d34f540715c0442b",
    "after": "0b3424857ec1c5b57d6778f2bf6f379685e7f073",
    "commits": [
      "0b3424857ec1c5b57d6778f2bf6f379685e7f073"
    ],
    "target": "72cf3d19190438bb5a44a737d34f540715c0442b",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "80ae361a0b13980a10d50febaca13090842791fd",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "`fn handle_events` would panic, if there were multiple events for one\ntoken, and the first one that happened to be handled was an error.\nIndeed it is concerning if a token is encountered that was never\nregistered before. However, tokens that were just deregistered must be\ntracked.\n\nUsing `Vec` here seems a bit costly, in the future,\n`smallvec::SmallVec` could be considered.\n\nThe \"unregister\" methods are renamed to \"deregister\" to better line up\nwith `mio` vocabulary.\n\nLog stamtements that helped analysis of the panic that occurred here\nis overhauled and improved, requiring a `Debug` bound on types that\nobviously implement it.",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "6180c256afafb3b5c06942b87bf7972c09af6b23",
        "timestamp": 1760471598
      },
      {
        "id": "5756a29ea83971577888c3042e552ae9efd1567c",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Fix errors in commit message",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "554266e32f891a48c95dc9747600fe8308031d29",
        "timestamp": 1760472058
      },
      {
        "id": "98c2bed398d03b8b149e9435e8077f18524e7ebc",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Rebase",
        "base": "532e5a0de03e0d0251bf1b30fdd6ba7432c5e4d6",
        "oid": "39b90878ffca0197c86d78ea3a0de82472dc4ce3",
        "timestamp": 1760472364
      },
      {
        "id": "111ec202ece4e7419a674e7374a35a21eb658331",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "REVIEW",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "045d8d611f942235cdeaa0c1ab1d289cae6e6f98",
        "timestamp": 1760517511
      },
      {
        "id": "48447f147fd7af289f18671a65673212111af680",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Squash in review",
        "base": "384c506489dd6a4cbf8c80b0370b2b2a8de7835b",
        "oid": "a5d05d02fc6392ab40beced01c9a2991bf3ee74c",
        "timestamp": 1760519714
      },
      {
        "id": "3bb9b89496e540fb74de1acf98cc1946431e7937",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Rebase",
        "base": "72cf3d19190438bb5a44a737d34f540715c0442b",
        "oid": "0b3424857ec1c5b57d6778f2bf6f379685e7f073",
        "timestamp": 1760521567
      }
    ]
  }
}

Ambient stdout

[2025-10-15T09:46:12Z INFO  ambient] ambient starts
[2025-10-15T09:46:12Z DEBUG ambient] load default configuration file /home/_rad/.config/ambient/config.yaml if it exists
[2025-10-15T09:46: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-15T09:46: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-15T09:46:12Z DEBUG ambient_ci::project] load project state from /srv/ambient-state/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/meta.yaml
[2025-10-15T09:46:12Z DEBUG ambient_ci::run] latest commit: "554266e32f891a48c95dc9747600fe8308031d29"
[2025-10-15T09:46:12Z DEBUG ambient_ci::run] is a git repository
[2025-10-15T09:46:12Z DEBUG ambient_ci::run] git repository is clean
[2025-10-15T09:46:12Z DEBUG ambient_ci::run] current (HEAD) commit: 0b3424857ec1c5b57d6778f2bf6f379685e7f073
[2025-10-15T09:46:12Z DEBUG ambient_ci::run] no dry run requested
[2025-10-15T09:46:12Z DEBUG ambient_ci::run] forced run requested
[2025-10-15T09:46:12Z DEBUG ambient_ci::run] run? true
[2025-10-15T09:46:12Z INFO  ambient_ci::run] project rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5: running CI
[2025-10-15T09:46:12Z DEBUG ambient_ci::run] Executing pre-plan steps
[2025-10-15T09:46:12Z DEBUG ambient_ci::plan] RUN: Action CargoFetch {
        sourcedir: "/tmp/.tmpEYTM8n/src",
    }
[2025-10-15T09:46:12Z DEBUG ambient_ci::action] Plan::execute: plan=CargoFetch {
        sourcedir: "/tmp/.tmpEYTM8n/src",
    }
[2025-10-15T09:46:12Z DEBUG ambient_ci::action] Plan::execute: context=Context {
        envs: {
            "HOME": "/root",
            "CARGO_TARGET_DIR": "/srv/ambient-state/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/cache",
            "CARGO_HOME": "/srv/ambient-state/rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/dependencies",
            "PATH": "/root/.cargo/bin:/bin:/home/_rad/.radicle/bin:/home/_rad/.cargo/bin",
        },
        source_dir: "/tmp/.tmpEYTM8n/src",
    }
SPAWN: argv=["cargo", "--version"]
       cwd=/tmp/.tmpEYTM8n/src (exists? true)
error: could not create home directory: '/root/.rustup': Permission denied (os error 13)
[2025-10-15T09:46:12Z ERROR ambient_ci::plan] ERROR: Action failed: failed to execute cargo
[2025-10-15T09:46: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>