CI run for rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh

Radicle repository id rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh

Table of Contents

Run log

[2025-09-11T13:05:23Z INFO  ambient] ambient starts
deprecated: the `cpus` field is replaced by `qemu.cpus`
deprecated: the `memory` field is replaced by `qemu.memory`
[=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
sr0     11:0    1   370K  0 rom  
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   2.9M  1 disk 
vdc    254:32   0     2M  1 disk 
vdd    254:48   0 953.7M  0 disk 
vde    254:64   0  27.9G  0 disk 
vdf    254:80   0 888.6M  1 disk 
INFO: Extracting tar archive from /dev/vdb
drwxr-xr-x _rad/_rad         0 2025-09-11 13:04 ./
-rw-r--r-- _rad/_rad       895 2025-09-11 13:04 ./plan.yaml
-rwxr-xr-x _rad/_rad   2994840 2025-09-11 13:04 ./run-ci
INFO: Extracted files:
  4587530      4 drwxr-xr-x   2 1000     1000         4096 Sep 11 13:04 .
  4587531      4 -rw-r--r--   1 1000     1000          895 Sep 11 13:04 ./plan.yaml
  4587532   2928 -rwxr-xr-x   1 1000     1000      2994840 Sep 11 13:04 ./run-ci
INFO: Running run-ci from /dev/vdb
================================ BEGIN ================================
[2025-09-11T13:04:40Z TRACE ambient_execute_plan] ambient-execute-plan starts
[2025-09-11T13:04:40Z DEBUG ambient_execute_plan] ambient-execute-plan starts
[2025-09-11T13:04:40Z INFO  ambient_execute_plan] ambient-execute-plan starts
[2025-09-11T13:04:40Z WARN  ambient_execute_plan] ambient-execute-plan starts
[2025-09-11T13:04:40Z ERROR ambient_execute_plan] ambient-execute-plan 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: 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


RUN: Action Mkdir {
    pathname: "/workspace",
}
[2025-09-11T13:04:40Z DEBUG ambient_ci::action] Plan::execute: Mkdir {
        pathname: "/workspace",
    }
RUN: Action finished OK
RUN: Action Mkdir {
    pathname: "/workspace/artifacts",
}
[2025-09-11T13:04:40Z DEBUG ambient_ci::action] Plan::execute: Mkdir {
        pathname: "/workspace/artifacts",
    }
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vdc",
    directory: "/workspace/src",
}
[2025-09-11T13:04:40Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
        archive: "/dev/vdc",
        directory: "/workspace/src",
    }
[2025-09-11T13:04:40Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
[2025-09-11T13:04:40Z TRACE ambient_ci::vdrive] extraction OK
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vdf",
    directory: "/workspace/deps",
}
[2025-09-11T13:04:40Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
        archive: "/dev/vdf",
        directory: "/workspace/deps",
    }
[2025-09-11T13:04:40Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
[2025-09-11T13:04:42Z TRACE ambient_ci::vdrive] extraction OK
RUN: Action finished OK
RUN: Action TarExtract {
    archive: "/dev/vde",
    directory: "/workspace/cache",
}
[2025-09-11T13:04:42Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
        archive: "/dev/vde",
        directory: "/workspace/cache",
    }
[2025-09-11T13:04:42Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
[2025-09-11T13:04:45Z TRACE ambient_ci::vdrive] extraction OK
RUN: Action finished OK
RUN: Action Spawn {
    argv: [
        "find",
        "/workspace",
        "-maxdepth",
        "2",
        "-ls",
    ],
}
[2025-09-11T13:04:45Z DEBUG ambient_ci::action] Plan::execute: Spawn {
        argv: [
            "find",
            "/workspace",
            "-maxdepth",
            "2",
            "-ls",
        ],
    }
SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
       cwd=/workspace/src (exists? true)
       extra_env=[]
  2621441      4 drwxr-xr-x   6 root     root         4096 Sep 11 13:04 /workspace
  2621768      4 drwxr-xr-x   3 root     root         4096 Sep 11 13:04 /workspace/deps
  2656591      0 -rw-r--r--   1 root     root            0 Sep 11 12:54 /workspace/deps/.package-cache-mutate
  2621769      4 drwxr-xr-x   5 root     root         4096 Sep 11 12:54 /workspace/deps/registry
  2656590    132 -rw-r--r--   1 root     root       135168 Sep 11 13:04 /workspace/deps/.global-cache
  2656592      0 -rw-r--r--   1 root     root            0 Sep 11 12:54 /workspace/deps/.package-cache
  2621443      4 drwxr-xr-x   7 root     root         4096 Sep 11 13:04 /workspace/src
  2621451      4 -rw-r--r--   1 root     root         1030 Sep 11 13:04 /workspace/src/Cargo.toml
  2621450      4 -rw-r--r--   1 root     root         3055 Sep 11 13:04 /workspace/src/INSTALL.md
  2621444      4 -rwxr-xr-x   1 root     root         1367 Sep 11 13:04 /workspace/src/check
  2621491     36 -rw-r--r--   1 root     root        34260 Sep 11 13:04 /workspace/src/COPYING.md
  2621494      4 drwxr-xr-x   8 root     root         4096 Sep 11 13:04 /workspace/src/.git
  2621456      4 drwxr-xr-x   3 root     root         4096 Sep 11 13:04 /workspace/src/src
  2621445      4 -rw-r--r--   1 root     root          220 Sep 11 13:04 /workspace/src/ambient-driver.yaml
  2621449      4 -rw-r--r--   1 root     root          828 Sep 11 13:04 /workspace/src/README.md
  2621492      4 drwxr-xr-x   2 root     root         4096 Sep 11 13:04 /workspace/src/.radicle
  2621481      4 drwxr-xr-x   3 root     root         4096 Sep 11 13:04 /workspace/src/debian
  2621447      4 -rw-r--r--   1 root     root         1225 Sep 11 13:04 /workspace/src/ambient-driver.py
  2621452     60 -rw-r--r--   1 root     root        59466 Sep 11 13:04 /workspace/src/Cargo.lock
  2621448     12 -rw-r--r--   1 root     root        10658 Sep 11 13:04 /workspace/src/ambient-driver.md
  2621455      4 -rw-r--r--   1 root     root           32 Sep 11 13:04 /workspace/src/.gitignore
  2621446      4 -rw-r--r--   1 root     root          252 Sep 11 13:04 /workspace/src/ambient-driver.subplot
  2621453      4 drwxr-xr-x   2 root     root         4096 Sep 11 13:04 /workspace/src/.woodpecker
  2621442      4 drwxr-xr-x   2 root     root         4096 Sep 11 13:04 /workspace/artifacts
  2656593      4 drwxr-xr-x   5 root     root         4096 Sep 11 12:56 /workspace/cache
  2659077      4 drwxr-xr-x   7 root     root         4096 Sep 11 12:56 /workspace/cache/debug
  2657446      4 -rw-r--r--   1 root     root         1904 Sep 11 12:57 /workspace/cache/.rustc_info.json
  2657447      4 drwxr-xr-x   7 root     root         4096 Sep 11 12:56 /workspace/cache/release
  2656594      4 drwxr-xr-x   3 root     root         4096 Sep 11 12:56 /workspace/cache/x86_64-unknown-linux-musl
RUN: Action finished OK
RUN: Action CargoFmt
[2025-09-11T13:04:45Z DEBUG ambient_ci::action] Plan::execute: CargoFmt
SPAWN: argv=["cargo", "fmt", "--check"]
       cwd=/workspace/src (exists? true)
       extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
RUN: Action finished OK
RUN: Action CargoClippy
[2025-09-11T13:04:46Z DEBUG ambient_ci::action] Plan::execute: CargoClippy
SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
       cwd=/workspace/src (exists? true)
       extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
   Compiling proc-macro2 v1.0.92
   Compiling unicode-ident v1.0.14
   Compiling memchr v2.7.4
   Compiling libc v0.2.169
   Compiling quote v1.0.38
   Compiling syn v2.0.95
   Compiling autocfg v1.4.0
   Compiling serde v1.0.217
   Compiling anyhow v1.0.95
   Compiling once_cell v1.20.2
   Compiling aho-corasick v1.1.3
   Compiling log v0.4.22
   Compiling thiserror v2.0.10
   Compiling cfg-if v1.0.0
   Compiling regex-syntax v0.8.5
   Compiling serde_derive v1.0.217
   Compiling itoa v1.0.14
   Compiling regex-automata v0.4.9
   Compiling zerocopy-derive v0.7.35
   Compiling thiserror-impl v2.0.10
   Compiling getrandom v0.2.15
   Compiling rustix v0.38.43
   Compiling byteorder v1.5.0
   Compiling ryu v1.0.18
   Compiling bitflags v2.6.0
   Compiling zerocopy v0.7.35
   Compiling serde_json v1.0.135
   Compiling time-core v0.1.2
   Compiling time-macros v0.2.19
   Compiling pest v2.7.15
   Compiling ppv-lite86 v0.2.20
   Compiling rand_core v0.6.4
   Compiling indexmap v1.9.3
   Compiling bstr v1.11.3
   Compiling libm v0.2.11
   Compiling anstyle-parse v0.2.6
   Compiling thiserror v1.0.69
   Compiling globset v0.4.15
   Compiling cc v1.2.7
   Compiling deranged v0.3.11
   Compiling pest_meta v2.7.15
   Compiling rand_chacha v0.3.1
   Compiling thiserror-impl v1.0.69
   Compiling colorchoice v1.0.3
   Compiling anstyle v1.0.10
   Compiling typenum v1.17.0
   Compiling linux-raw-sys v0.4.15
   Compiling anstyle-query v1.1.2
   Compiling clap_derive v4.5.24
   Compiling anstream v0.6.18
   Compiling pest_generator v2.7.15
   Compiling ignore v0.4.23
   Compiling rand v0.8.5
   Compiling pikchr v0.1.3
   Compiling time v0.3.37
   Compiling regex v1.11.1
   Compiling equivalent v1.0.1
   Compiling clap_lex v0.7.4
   Compiling deunicode v1.6.0
   Compiling hashbrown v0.15.2
   Compiling slug v0.1.6
   Compiling clap_builder v4.5.25
   Compiling indexmap v2.7.0
   Compiling tempfile v3.15.0
   Compiling git-testament-derive v0.2.1
   Compiling humansize v2.1.3
   Compiling globwalk v0.9.1
   Compiling pest_derive v2.7.15
   Compiling serde_yaml v0.8.26
   Compiling subplot v0.9.0
   Compiling getopts v0.2.21
   Compiling is-terminal v0.4.13
   Compiling percent-encoding v2.3.1
   Compiling humantime v2.1.0
   Compiling tera v1.20.0
   Compiling env_logger v0.10.2
   Compiling pulldown-cmark v0.9.6
   Compiling serde_yaml v0.9.34+deprecated
   Compiling roadmap v0.5.0
    Checking generic-array v0.14.7
   Compiling git-testament v0.2.6
   Compiling clap v4.5.25
   Compiling tempfile-fast v0.3.4
   Compiling syn v1.0.109
   Compiling serde-aux v4.5.0
   Compiling tracing-attributes v0.1.28
   Compiling tracing-core v0.1.33
   Compiling fehler-macros v1.0.0
   Compiling tracing v0.1.41
   Compiling num-traits v0.2.19
   Compiling subplot-build v0.9.0
    Checking nix v0.29.0
    Checking block-buffer v0.10.4
    Checking crypto-common v0.1.6
    Checking cvt v0.1.2
   Compiling glob v0.3.2
   Compiling rust_decimal v1.36.0
   Compiling subplotlib v0.9.0
    Checking fs_at v0.2.1
    Checking digest v0.10.7
   Compiling fehler v1.0.0
    Checking normpath v1.3.0
    Checking bytes v1.9.0
    Checking pin-project-lite v0.2.16
    Checking cpufeatures v0.2.16
    Checking env_filter v0.1.3
    Checking sha2 v0.10.8
    Checking tokio v1.43.0
    Checking dirs-sys v0.4.1
    Checking remove_dir_all v0.8.4
    Checking libyml v0.0.5
   Compiling subplotlib-derive v0.9.0
    Checking filetime v0.2.25
    Checking fs2 v0.4.3
   Compiling async-trait v0.1.85
    Checking state v0.5.3
    Checking base64 v0.21.7
    Checking unescape v0.1.0
    Checking byte-unit v5.1.6
    Checking sha256 v1.5.0
    Checking env_logger v0.11.6
    Checking serde_yml v0.0.12
    Checking directories v5.0.1
    Checking bytesize v1.3.0
    Checking ambient-driver v0.1.0 (/workspace/src)
error: the `Err`-variant returned from this function is very large
   --> src/action.rs:63:51
    |
63  |     pub fn execute(&self, plan: &RunnablePlan) -> Result<(), ActionError> {
    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    = note: `-D clippy::result-large-err` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::result_large_err)]`

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:147:19
    |
147 |     fn dummy() -> Result<(), ActionError> {
    |                   ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:152:33
    |
152 |     fn pwd(sourcedir: &Path) -> Result<(), ActionError> {
    |                                 ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:157:60
    |
157 |     fn rsync(artifactsdir: &Path, target: Option<&str>) -> Result<(), ActionError> {
    |                                                            ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:166:71
    |
166 |     fn dput_action(artifactsdir: &Path, dput_target: Option<&str>) -> Result<(), ActionError> {
    |                                                                       ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:176:67
    |
176 |     fn cargo_fetch(source_dir: &Path, dependencies_dir: &Path) -> Result<(), ActionError> {
    |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:190:34
    |
190 |     fn mkdir(pathname: &Path) -> Result<(), ActionError> {
    |                                  ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:197:54
    |
197 |     fn tar_create(archive: &Path, dirname: &Path) -> Result<(), ActionError> {
    |                                                      ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:206:55
    |
206 |     fn tar_extract(archive: &Path, dirname: &Path) -> Result<(), ActionError> {
    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:222:10
    |
222 |     ) -> Result<(), ActionError> {
    |          ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: variables can be used directly in the `format!` string
   --> src/action.rs:232:24
    |
232 |         let argv_str = format!("{:?}", argv);
    |                        ^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
    = note: `-D clippy::uninlined-format-args` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::uninlined_format_args)]`
help: change this to
    |
232 -         let argv_str = format!("{:?}", argv);
232 +         let argv_str = format!("{argv:?}");
    |

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:258:51
    |
258 |     fn spawn_str_in(argv: &[&str], cwd: &Path) -> Result<(), ActionError> {
    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:267:10
    |
267 |     ) -> Result<(), ActionError> {
    |          ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:278:53
    |
278 |     fn shell(plan: &RunnablePlan, snippet: &str) -> Result<(), ActionError> {
    |                                                     ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: variables can be used directly in the `format!` string
   --> src/action.rs:279:23
    |
279 |         let snippet = format!("set -xeuo pipefail\n{}\n", snippet);
    |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
help: change this to
    |
279 -         let snippet = format!("set -xeuo pipefail\n{}\n", snippet);
279 +         let snippet = format!("set -xeuo pipefail\n{snippet}\n");
    |

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:287:10
    |
287 |     ) -> Result<(), ActionError> {
    |          ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:300:10
    |
300 |     ) -> Result<Vec<(&'static str, String)>, ActionError> {
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:318:59
    |
318 |     fn spawn_cargo(plan: &RunnablePlan, args: &[&str]) -> Result<(), ActionError> {
    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:323:42
    |
323 |     fn cargo_fmt(plan: &RunnablePlan) -> Result<(), ActionError> {
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:327:45
    |
327 |     fn cargo_clippy(plan: &RunnablePlan) -> Result<(), ActionError> {
    |                                             ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:345:44
    |
345 |     fn cargo_build(plan: &RunnablePlan) -> Result<(), ActionError> {
    |                                            ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:360:43
    |
360 |     fn cargo_test(plan: &RunnablePlan) -> Result<(), ActionError> {
    |                                           ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:374:46
    |
374 |     fn cargo_install(plan: &RunnablePlan) -> Result<(), ActionError> {
    |                                              ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/action.rs:392:36
    |
392 |     fn deb(plan: &RunnablePlan) -> Result<(), ActionError> {
    |                                    ^^^^^^^^^^^^^^^^^^^^^^^
...
555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     -------------------------------------------------------- the largest variant contains at least 128 bytes
...
561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
    |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
    |
    = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: variables can be used directly in the `format!` string
  --> src/cloud_init.rs:48:12
   |
48 |         Ok(format!("#cloud-config\n{}", userdata))
   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
help: change this to
   |
48 -         Ok(format!("#cloud-config\n{}", userdata))
48 +         Ok(format!("#cloud-config\n{userdata}"))
   |

error: the `Err`-variant returned from this function is very large
   --> src/plan.rs:15:42
    |
15  |     pub fn from_file(filename: &Path) -> Result<Self, PlanError> {
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
...
202 |     Action(#[from] crate::action::ActionError),
    |     ------------------------------------------ the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/plan.rs:22:47
    |
22  |     pub fn to_file(&self, filename: &Path) -> Result<(), PlanError> {
    |                                               ^^^^^^^^^^^^^^^^^^^^^
...
202 |     Action(#[from] crate::action::ActionError),
    |     ------------------------------------------ the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/plan.rs:53:37
    |
53  |     pub fn parse_str(yaml: &str) -> Result<Self, PlanError> {
    |                                     ^^^^^^^^^^^^^^^^^^^^^^^
...
202 |     Action(#[from] crate::action::ActionError),
    |     ------------------------------------------ the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/plan.rs:57:42
    |
57  |     pub fn from_file(filename: &Path) -> Result<Self, PlanError> {
    |                                          ^^^^^^^^^^^^^^^^^^^^^^^
...
202 |     Action(#[from] crate::action::ActionError),
    |     ------------------------------------------ the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/plan.rs:71:32
    |
71  |     pub fn to_string(&self) -> Result<String, PlanError> {
    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^
...
202 |     Action(#[from] crate::action::ActionError),
    |     ------------------------------------------ the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/plan.rs:75:47
    |
75  |     pub fn to_file(&self, filename: &Path) -> Result<(), PlanError> {
    |                                               ^^^^^^^^^^^^^^^^^^^^^
...
202 |     Action(#[from] crate::action::ActionError),
    |     ------------------------------------------ the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/plan.rs:96:30
    |
96  |     pub fn execute(&self) -> Result<(), PlanError> {
    |                              ^^^^^^^^^^^^^^^^^^^^^
...
202 |     Action(#[from] crate::action::ActionError),
    |     ------------------------------------------ the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: variables can be used directly in the `format!` string
   --> src/qemu.rs:348:19
    |
348 |             .push(format!("format=qcow2,if=virtio,file={}", path));
    |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
help: change this to
    |
348 -             .push(format!("format=qcow2,if=virtio,file={}", path));
348 +             .push(format!("format=qcow2,if=virtio,file={path}"));
    |

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:32:6
    |
32  | ) -> Result<(), RunError> {
    |      ^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:132:35
    |
132 | pub fn create_cloud_init_iso() -> Result<LocalDataStore, RunError> {
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:158:66
    |
158 | pub fn create_source_vdrive(tmp: &TempDir, source_dir: &Path) -> Result<VirtualDrive, RunError> {
    |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:167:6
    |
167 | ) -> Result<VirtualDrive, RunError> {
    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:178:64
    |
178 | fn create_dependencies_vdrive(tmp: &TempDir, state: &State) -> Result<VirtualDrive, RunError> {
    |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:192:6
    |
192 | ) -> Result<VirtualDrive, RunError> {
    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:207:6
    |
207 | ) -> Result<VirtualDrive, RunError> {
    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:289:57
    |
289 | fn construct_runnable_plan(actions: &[UnsafeAction]) -> Result<RunnablePlan, RunError> {
    |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: the `Err`-variant returned from this function is very large
   --> src/run.rs:332:6
    |
332 | ) -> Result<(bool, State), RunError> {
    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
433 |     Plan(#[from] PlanError),
    |     ----------------------- the largest variant contains at least 136 bytes
    |
    = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err

error: variables can be used directly in the `format!` string
   --> src/run.rs:523:9
    |
523 |         println!("{}", msg);
    |         ^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
help: change this to
    |
523 -         println!("{}", msg);
523 +         println!("{msg}");
    |

error: variables can be used directly in the `format!` string
   --> src/tildepathbuf.rs:201:13
    |
201 |             assert_eq!(path.display().to_string(), format!("{}/foo", home));
    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
help: change this to
    |
201 -             assert_eq!(path.display().to_string(), format!("{}/foo", home));
201 +             assert_eq!(path.display().to_string(), format!("{home}/foo"));
    |

error: variables can be used directly in the `format!` string
   --> src/tildepathbuf.rs:220:40
    |
220 |             let wanted = PathBuf::from(format!("{}/foo", home));
    |                                        ^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
help: change this to
    |
220 -             let wanted = PathBuf::from(format!("{}/foo", home));
220 +             let wanted = PathBuf::from(format!("{home}/foo"));
    |

error: variables can be used directly in the `format!` string
  --> src/util.rs:73:18
   |
73 |     let target = format!("{}/.", target);
   |                  ^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
help: change this to
   |
73 -     let target = format!("{}/.", target);
73 +     let target = format!("{target}/.");
   |

error: could not compile `ambient-driver` (lib test) due to 46 previous errors
warning: build failed, waiting for other jobs to finish...
error: could not compile `ambient-driver` (lib) due to 43 previous errors
ERROR: Action failed: command failed: ["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
ERROR: command failed: ["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
EXIT CODE: 1
[2025-09-11T13:05:23Z INFO  ambient] ambient ends successfully

Trigger message

{
  "request": "trigger",
  "version": 1,
  "event_type": "patch",
  "repository": {
    "id": "rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh",
    "name": "ambient-ci",
    "description": "Ambient command line tool to run CI projects locally",
    "private": false,
    "default_branch": "main",
    "delegates": [
      "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV"
    ]
  },
  "action": "Created",
  "patch": {
    "id": "8854e55825fcdab3e0fd0086a63b5db799697f37",
    "author": {
      "id": "did:key:z6MkrnXJWPndzPBxpBUaE3L3BnMeWpaQdT1V1FvkoCPFSFS3",
      "alias": null
    },
    "title": "adds first pipeline",
    "state": {
      "status": "archived",
      "conflicts": []
    },
    "before": "c407b1b6f33327d85f4290eb16d7b666a46c218f",
    "after": "e24fec0c287bd34b6bdbe59b6e9c26b4a95873e5",
    "commits": [
      "e24fec0c287bd34b6bdbe59b6e9c26b4a95873e5",
      "fc16b84a8b2bd27cc8528e93fe74a9e47fdbac9d"
    ],
    "target": "b006b06a31704f9aec4361a948283057161cc410",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "8854e55825fcdab3e0fd0086a63b5db799697f37",
        "author": {
          "id": "did:key:z6MkrnXJWPndzPBxpBUaE3L3BnMeWpaQdT1V1FvkoCPFSFS3",
          "alias": null
        },
        "description": "Signed-off-by: Yorgos Saslis <yorgos.work@proton.me>",
        "base": "c407b1b6f33327d85f4290eb16d7b666a46c218f",
        "oid": "e24fec0c287bd34b6bdbe59b6e9c26b4a95873e5",
        "timestamp": 1741160782
      }
    ]
  }
}

Ambient stdout

[2025-09-11T13:04:35Z INFO  ambient] ambient starts
[2025-09-11T13:04:35Z DEBUG ambient] load default configuration file /home/_rad/.config/ambient/config.yaml if it exists
deprecated: the `cpus` field is replaced by `qemu.cpus`
deprecated: the `memory` field is replaced by `qemu.memory`
[2025-09-11T13:04:35Z DEBUG ambient] complete configuration: Config {
        tmpdir: "/home/_rad/tmp",
        image_store: "/home/_rad/ambient-images",
        projects: "/dev/null",
        state: "/home/_rad/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(
            1000000000,
        ),
        cache_max_size: Byte(
            30000000000,
        ),
        qemu: QemuConfig {
            cpus: 2,
            memory: Byte(
                12000000000,
            ),
            kvm_binary: "/usr/bin/kvm",
            ovmf_vars_file: "/usr/share/ovmf/OVMF.fd",
            ovmf_code_file: "/usr/share/ovmf/OVMF.fd",
        },
    }
[2025-09-11T13:04:35Z DEBUG ambient] configuration: Config {
        tmpdir: "/home/_rad/tmp",
        image_store: "/home/_rad/ambient-images",
        projects: "/dev/null",
        state: "/home/_rad/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(
            1000000000,
        ),
        cache_max_size: Byte(
            30000000000,
        ),
        qemu: QemuConfig {
            cpus: 2,
            memory: Byte(
                12000000000,
            ),
            kvm_binary: "/usr/bin/kvm",
            ovmf_vars_file: "/usr/share/ovmf/OVMF.fd",
            ovmf_code_file: "/usr/share/ovmf/OVMF.fd",
        },
    }
[2025-09-11T13:04:35Z DEBUG ambient_ci::project] load project state from /home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/meta.yaml
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] latest commit: "b006b06a31704f9aec4361a948283057161cc410"
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] is a git repository
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] git repository is clean
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] current (HEAD) commit: e24fec0c287bd34b6bdbe59b6e9c26b4a95873e5
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] no dry run requested
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] forced run requested
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] run? true
[2025-09-11T13:04:35Z INFO  ambient_ci::run] project rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh: running CI
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] Executing pre-plan steps
[2025-09-11T13:04:35Z DEBUG ambient_ci::action] Plan::execute: CargoFetch {
        sourcedir: "/tmp/.tmp30g04L/src",
        dependenciesdir: "/home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/dependencies",
    }
SPAWN: argv=["env", "CARGO_HOME=/home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/dependencies", "cargo", "fetch", "--locked"]
       cwd=/tmp/.tmp30g04L/src (exists? true)
       extra_env=[]
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] create virtual drive /home/_rad/tmp/.tmpCXc3Nk/src.tar
[2025-09-11T13:04:35Z DEBUG ambient_ci::run] create virtual drive /home/_rad/tmp/.tmpCXc3Nk/deps.tar
[2025-09-11T13:04:36Z DEBUG ambient_ci::run] create_executor_vdrive: executor="/usr/bin/ambient-execute-plan"
[2025-09-11T13:04:36Z DEBUG ambient_ci::run] create_executor_vdrive: plan=RunnablePlan {
        steps: [
            Mkdir {
                pathname: "/workspace",
            },
            Mkdir {
                pathname: "/workspace/artifacts",
            },
            TarExtract {
                archive: "/dev/vdc",
                directory: "/workspace/src",
            },
            TarExtract {
                archive: "/dev/vdf",
                directory: "/workspace/deps",
            },
            TarExtract {
                archive: "/dev/vde",
                directory: "/workspace/cache",
            },
            Spawn {
                argv: [
                    "find",
                    "/workspace",
                    "-maxdepth",
                    "2",
                    "-ls",
                ],
            },
            CargoFmt,
            CargoClippy,
            CargoBuild,
            CargoTest,
            Deb,
            TarCreate {
                archive: "/dev/vde",
                directory: "/workspace/cache",
            },
            TarCreate {
                archive: "/dev/vdd",
                directory: "/workspace/artifacts",
            },
        ],
        executor_drive: Some(
            "/dev/vdb",
        ),
        source_drive: Some(
            "/dev/vdc",
        ),
        artifact_drive: Some(
            "/dev/vdd",
        ),
        cache_drive: Some(
            "/dev/vde",
        ),
        deps_drive: Some(
            "/dev/vdf",
        ),
        workspace_dir: Some(
            "/workspace",
        ),
        source_dir: Some(
            "/workspace/src",
        ),
        deps_dir: Some(
            "/workspace/deps",
        ),
        cache_dir: Some(
            "/workspace/cache",
        ),
        artifacts_dir: Some(
            "/workspace/artifacts",
        ),
    }
[2025-09-11T13:04:36Z DEBUG ambient_ci::run] executor bin /usr/bin/ambient-execute-plan
[2025-09-11T13:04:36Z DEBUG ambient_ci::run] copying /usr/bin/ambient-execute-plan to /home/_rad/tmp/.tmpCXc3Nk/ambient-execute-plan/run-ci
[2025-09-11T13:04:36Z DEBUG ambient_ci::run] copy OK: true
[2025-09-11T13:04:36Z DEBUG ambient_ci::run] create virtual drive /home/_rad/tmp/.tmpCXc3Nk/executor.tar
[2025-09-11T13:04:37Z DEBUG ambient_ci::project] removing run log file /home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/run.log
[2025-09-11T13:04:37Z DEBUG ambient_ci::project] statedir is /home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh, exists? true
[2025-09-11T13:04:37Z DEBUG ambient_ci::project] creating run log file /home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/run.log
[2025-09-11T13:04:37Z DEBUG ambient_ci::project] created run log file /home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/run.log OK
[2025-09-11T13:04:37Z DEBUG ambient_ci::cloud_init] with_hostname called: "ambient"
[2025-09-11T13:04:37Z DEBUG ambient_ci::cloud_init] with_runcmd called: "echo xyzzy > /dev/ttyS1"
[2025-09-11T13:04:37Z DEBUG ambient_ci::cloud_init] with_runcmd called: "\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n        echo \"EXIT CODE: 0\"\nelse\n        echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n"
[2025-09-11T13:04:37Z DEBUG ambient_ci::cloud_init] with_runcmd called: "poweroff"
[2025-09-11T13:04:37Z DEBUG ambient_ci::cloud_init] LocalDataStoreBuilder: LocalDataStoreBuilder {
        hostname: Some(
            "ambient",
        ),
        network: false,
        bootcmd: [],
        runcmd: [
            "echo xyzzy > /dev/ttyS1",
            "\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n        echo \"EXIT CODE: 0\"\nelse\n        echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n",
            "poweroff",
        ],
    }
[2025-09-11T13:04:37Z DEBUG ambient_ci::qemu] run QEMU
[2025-09-11T13:04:37Z DEBUG ambient_ci::qemu] create copy-on-write image and UEFI vars file
[2025-09-11T13:04:37Z DEBUG ambient_ci::qemu_utils] qemu-img create /home/_rad/tmp/.tmpvE87Sw/.tmpcQyG1l/vm.qcow2 backing on /home/_rad/ambient.qcow2
[2025-09-11T13:04:37Z DEBUG ambient_ci::qemu] create cloud-init ISO file
[2025-09-11T13:04:37Z DEBUG ambient_ci::cloud_init] LocalDataStore: LocalDataStore {
        hostname: "ambient",
        network: false,
        bootcmd: [],
        runcmd: [
            "echo xyzzy > /dev/ttyS1",
            "\n(set -xeu\nenv\ndir=\"$(mktemp -d)\"\ncd \"$dir\"\ntar -xvf /dev/vdb\nfind -ls || true\nldd ./run-ci || true\necho ================================ BEGIN ================================\nexport RUST_BACKTRACE=1\nif ./run-ci; then\n        echo \"EXIT CODE: 0\"\nelse\n        echo \"EXIT CODE: $?\"\nfi) > /dev/ttyS1 2>&1\n",
            "poweroff",
        ],
    }
[2025-09-11T13:04:37Z DEBUG ambient_ci::cloud_init] write /tmp/.tmponZj0G/meta-data
[2025-09-11T13:04:37Z DEBUG ambient_ci::cloud_init] write /tmp/.tmponZj0G/user-data
[2025-09-11T13:04:37Z DEBUG ambient_ci::qemu] set console log file to /home/_rad/tmp/.tmpvE87Sw/.tmpcQyG1l/console.log
[2025-09-11T13:04:37Z DEBUG ambient_ci::util] create file /home/_rad/tmp/.tmpvE87Sw/.tmpcQyG1l/console.log
[2025-09-11T13:04:37Z DEBUG ambient_ci::qemu] set run file to /home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/run.log
[2025-09-11T13:04:37Z DEBUG ambient_ci::util] create file /home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/run.log
[2025-09-11T13:04:37Z DEBUG ambient_ci::qemu] run QEMU: QemuArgs {
        args: [
            "-m",
            "11444",
            "-smp",
            "cpus=2",
            "-cpu",
            "kvm64",
            "-machine",
            "type=q35,accel=kvm,usb=off",
            "-uuid",
            "a85c9de7-edc0-4e54-bead-112e5733582c",
            "-boot",
            "strict=on",
            "-name",
            "ambient-ci-vm",
            "-rtc",
            "base=utc,driftfix=slew",
            "-display",
            "none",
            "-device",
            "virtio-rng-pci",
            "-serial",
            "file:/home/_rad/tmp/.tmpvE87Sw/.tmpcQyG1l/console.log",
            "-serial",
            "file:/home/_rad/ambient-state/rad:zwPaQSTBX8hktn22F6tHAZSFH2Fh/run.log",
            "-drive",
            "if=pflash,format=raw,unit=0,file=/usr/share/ovmf/OVMF.fd,readonly=on",
            "-drive",
            "if=pflash,format=raw,unit=1,file=/home/_rad/tmp/.tmpvE87Sw/.tmpcQyG1l/vars.fd",
            "-drive",
            "format=qcow2,if=virtio,file=/home/_rad/tmp/.tmpvE87Sw/.tmpcQyG1l/vm.qcow2",
            "-drive",
            "format=raw,if=virtio,file=/home/_rad/tmp/.tmpCXc3Nk/executor.tar,readonly=on",
            "-cdrom",
            "/home/_rad/tmp/.tmpvE87Sw/.tmpcQyG1l/cloud_init.iso",
            "-drive",
            "format=raw,if=virtio,file=/home/_rad/tmp/.tmpCXc3Nk/src.tar,readonly=on",
            "-drive",
            "format=raw,if=virtio,file=/home/_rad/tmp/.tmpCXc3Nk/artifacts.tar",
            "-drive",
            "format=raw,if=virtio,file=/home/_rad/tmp/.tmpCXc3Nk/cache.tar",
            "-drive",
            "format=raw,if=virtio,file=/home/_rad/tmp/.tmpCXc3Nk/deps.tar,readonly=on",
            "-nodefaults",
            "-no-user-config",
        ],
    }
[2025-09-11T13:05:23Z DEBUG ambient_ci::qemu] QEMU finished OK
[2025-09-11T13:05:23Z DEBUG ambient_ci::qemu] run log:
    --------------------==========
    [2025-09-11T13:04:40Z TRACE ambient_execute_plan] ambient-execute-plan starts
    [2025-09-11T13:04:40Z DEBUG ambient_execute_plan] ambient-execute-plan starts
    [2025-09-11T13:04:40Z INFO  ambient_execute_plan] ambient-execute-plan starts
    [2025-09-11T13:04:40Z WARN  ambient_execute_plan] ambient-execute-plan starts
    [2025-09-11T13:04:40Z ERROR ambient_execute_plan] ambient-execute-plan 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: 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
    
    
    RUN: Action Mkdir {
        pathname: "/workspace",
    }
    [2025-09-11T13:04:40Z DEBUG ambient_ci::action] Plan::execute: Mkdir {
            pathname: "/workspace",
        }
    RUN: Action finished OK
    RUN: Action Mkdir {
        pathname: "/workspace/artifacts",
    }
    [2025-09-11T13:04:40Z DEBUG ambient_ci::action] Plan::execute: Mkdir {
            pathname: "/workspace/artifacts",
        }
    RUN: Action finished OK
    RUN: Action TarExtract {
        archive: "/dev/vdc",
        directory: "/workspace/src",
    }
    [2025-09-11T13:04:40Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
            archive: "/dev/vdc",
            directory: "/workspace/src",
        }
    [2025-09-11T13:04:40Z TRACE ambient_ci::vdrive] extracting /dev/vdc to /workspace/src
    [2025-09-11T13:04:40Z TRACE ambient_ci::vdrive] extraction OK
    RUN: Action finished OK
    RUN: Action TarExtract {
        archive: "/dev/vdf",
        directory: "/workspace/deps",
    }
    [2025-09-11T13:04:40Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
            archive: "/dev/vdf",
            directory: "/workspace/deps",
        }
    [2025-09-11T13:04:40Z TRACE ambient_ci::vdrive] extracting /dev/vdf to /workspace/deps
    [2025-09-11T13:04:42Z TRACE ambient_ci::vdrive] extraction OK
    RUN: Action finished OK
    RUN: Action TarExtract {
        archive: "/dev/vde",
        directory: "/workspace/cache",
    }
    [2025-09-11T13:04:42Z DEBUG ambient_ci::action] Plan::execute: TarExtract {
            archive: "/dev/vde",
            directory: "/workspace/cache",
        }
    [2025-09-11T13:04:42Z TRACE ambient_ci::vdrive] extracting /dev/vde to /workspace/cache
    [2025-09-11T13:04:45Z TRACE ambient_ci::vdrive] extraction OK
    RUN: Action finished OK
    RUN: Action Spawn {
        argv: [
            "find",
            "/workspace",
            "-maxdepth",
            "2",
            "-ls",
        ],
    }
    [2025-09-11T13:04:45Z DEBUG ambient_ci::action] Plan::execute: Spawn {
            argv: [
                "find",
                "/workspace",
                "-maxdepth",
                "2",
                "-ls",
            ],
        }
    SPAWN: argv=["find", "/workspace", "-maxdepth", "2", "-ls"]
           cwd=/workspace/src (exists? true)
           extra_env=[]
      2621441      4 drwxr-xr-x   6 root     root         4096 Sep 11 13:04 /workspace
      2621768      4 drwxr-xr-x   3 root     root         4096 Sep 11 13:04 /workspace/deps
      2656591      0 -rw-r--r--   1 root     root            0 Sep 11 12:54 /workspace/deps/.package-cache-mutate
      2621769      4 drwxr-xr-x   5 root     root         4096 Sep 11 12:54 /workspace/deps/registry
      2656590    132 -rw-r--r--   1 root     root       135168 Sep 11 13:04 /workspace/deps/.global-cache
      2656592      0 -rw-r--r--   1 root     root            0 Sep 11 12:54 /workspace/deps/.package-cache
      2621443      4 drwxr-xr-x   7 root     root         4096 Sep 11 13:04 /workspace/src
      2621451      4 -rw-r--r--   1 root     root         1030 Sep 11 13:04 /workspace/src/Cargo.toml
      2621450      4 -rw-r--r--   1 root     root         3055 Sep 11 13:04 /workspace/src/INSTALL.md
      2621444      4 -rwxr-xr-x   1 root     root         1367 Sep 11 13:04 /workspace/src/check
      2621491     36 -rw-r--r--   1 root     root        34260 Sep 11 13:04 /workspace/src/COPYING.md
      2621494      4 drwxr-xr-x   8 root     root         4096 Sep 11 13:04 /workspace/src/.git
      2621456      4 drwxr-xr-x   3 root     root         4096 Sep 11 13:04 /workspace/src/src
      2621445      4 -rw-r--r--   1 root     root          220 Sep 11 13:04 /workspace/src/ambient-driver.yaml
      2621449      4 -rw-r--r--   1 root     root          828 Sep 11 13:04 /workspace/src/README.md
      2621492      4 drwxr-xr-x   2 root     root         4096 Sep 11 13:04 /workspace/src/.radicle
      2621481      4 drwxr-xr-x   3 root     root         4096 Sep 11 13:04 /workspace/src/debian
      2621447      4 -rw-r--r--   1 root     root         1225 Sep 11 13:04 /workspace/src/ambient-driver.py
      2621452     60 -rw-r--r--   1 root     root        59466 Sep 11 13:04 /workspace/src/Cargo.lock
      2621448     12 -rw-r--r--   1 root     root        10658 Sep 11 13:04 /workspace/src/ambient-driver.md
      2621455      4 -rw-r--r--   1 root     root           32 Sep 11 13:04 /workspace/src/.gitignore
      2621446      4 -rw-r--r--   1 root     root          252 Sep 11 13:04 /workspace/src/ambient-driver.subplot
      2621453      4 drwxr-xr-x   2 root     root         4096 Sep 11 13:04 /workspace/src/.woodpecker
      2621442      4 drwxr-xr-x   2 root     root         4096 Sep 11 13:04 /workspace/artifacts
      2656593      4 drwxr-xr-x   5 root     root         4096 Sep 11 12:56 /workspace/cache
      2659077      4 drwxr-xr-x   7 root     root         4096 Sep 11 12:56 /workspace/cache/debug
      2657446      4 -rw-r--r--   1 root     root         1904 Sep 11 12:57 /workspace/cache/.rustc_info.json
      2657447      4 drwxr-xr-x   7 root     root         4096 Sep 11 12:56 /workspace/cache/release
      2656594      4 drwxr-xr-x   3 root     root         4096 Sep 11 12:56 /workspace/cache/x86_64-unknown-linux-musl
    RUN: Action finished OK
    RUN: Action CargoFmt
    [2025-09-11T13:04:45Z DEBUG ambient_ci::action] Plan::execute: CargoFmt
    SPAWN: argv=["cargo", "fmt", "--check"]
           cwd=/workspace/src (exists? true)
           extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
    RUN: Action finished OK
    RUN: Action CargoClippy
    [2025-09-11T13:04:46Z DEBUG ambient_ci::action] Plan::execute: CargoClippy
    SPAWN: argv=["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
           cwd=/workspace/src (exists? true)
           extra_env=[("CARGO_TARGET_DIR", "/workspace/cache"), ("CARGO_HOME", "/workspace/deps"), ("PATH", "/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")]
       Compiling proc-macro2 v1.0.92
       Compiling unicode-ident v1.0.14
       Compiling memchr v2.7.4
       Compiling libc v0.2.169
       Compiling quote v1.0.38
       Compiling syn v2.0.95
       Compiling autocfg v1.4.0
       Compiling serde v1.0.217
       Compiling anyhow v1.0.95
       Compiling once_cell v1.20.2
       Compiling aho-corasick v1.1.3
       Compiling log v0.4.22
       Compiling thiserror v2.0.10
       Compiling cfg-if v1.0.0
       Compiling regex-syntax v0.8.5
       Compiling serde_derive v1.0.217
       Compiling itoa v1.0.14
       Compiling regex-automata v0.4.9
       Compiling zerocopy-derive v0.7.35
       Compiling thiserror-impl v2.0.10
       Compiling getrandom v0.2.15
       Compiling rustix v0.38.43
       Compiling byteorder v1.5.0
       Compiling ryu v1.0.18
       Compiling bitflags v2.6.0
       Compiling zerocopy v0.7.35
       Compiling serde_json v1.0.135
       Compiling time-core v0.1.2
       Compiling time-macros v0.2.19
       Compiling pest v2.7.15
       Compiling ppv-lite86 v0.2.20
       Compiling rand_core v0.6.4
       Compiling indexmap v1.9.3
       Compiling bstr v1.11.3
       Compiling libm v0.2.11
       Compiling anstyle-parse v0.2.6
       Compiling thiserror v1.0.69
       Compiling globset v0.4.15
       Compiling cc v1.2.7
       Compiling deranged v0.3.11
       Compiling pest_meta v2.7.15
       Compiling rand_chacha v0.3.1
       Compiling thiserror-impl v1.0.69
       Compiling colorchoice v1.0.3
       Compiling anstyle v1.0.10
       Compiling typenum v1.17.0
       Compiling linux-raw-sys v0.4.15
       Compiling anstyle-query v1.1.2
       Compiling clap_derive v4.5.24
       Compiling anstream v0.6.18
       Compiling pest_generator v2.7.15
       Compiling ignore v0.4.23
       Compiling rand v0.8.5
       Compiling pikchr v0.1.3
       Compiling time v0.3.37
       Compiling regex v1.11.1
       Compiling equivalent v1.0.1
       Compiling clap_lex v0.7.4
       Compiling deunicode v1.6.0
       Compiling hashbrown v0.15.2
       Compiling slug v0.1.6
       Compiling clap_builder v4.5.25
       Compiling indexmap v2.7.0
       Compiling tempfile v3.15.0
       Compiling git-testament-derive v0.2.1
       Compiling humansize v2.1.3
       Compiling globwalk v0.9.1
       Compiling pest_derive v2.7.15
       Compiling serde_yaml v0.8.26
       Compiling subplot v0.9.0
       Compiling getopts v0.2.21
       Compiling is-terminal v0.4.13
       Compiling percent-encoding v2.3.1
       Compiling humantime v2.1.0
       Compiling tera v1.20.0
       Compiling env_logger v0.10.2
       Compiling pulldown-cmark v0.9.6
       Compiling serde_yaml v0.9.34+deprecated
       Compiling roadmap v0.5.0
        Checking generic-array v0.14.7
       Compiling git-testament v0.2.6
       Compiling clap v4.5.25
       Compiling tempfile-fast v0.3.4
       Compiling syn v1.0.109
       Compiling serde-aux v4.5.0
       Compiling tracing-attributes v0.1.28
       Compiling tracing-core v0.1.33
       Compiling fehler-macros v1.0.0
       Compiling tracing v0.1.41
       Compiling num-traits v0.2.19
       Compiling subplot-build v0.9.0
        Checking nix v0.29.0
        Checking block-buffer v0.10.4
        Checking crypto-common v0.1.6
        Checking cvt v0.1.2
       Compiling glob v0.3.2
       Compiling rust_decimal v1.36.0
       Compiling subplotlib v0.9.0
        Checking fs_at v0.2.1
        Checking digest v0.10.7
       Compiling fehler v1.0.0
        Checking normpath v1.3.0
        Checking bytes v1.9.0
        Checking pin-project-lite v0.2.16
        Checking cpufeatures v0.2.16
        Checking env_filter v0.1.3
        Checking sha2 v0.10.8
        Checking tokio v1.43.0
        Checking dirs-sys v0.4.1
        Checking remove_dir_all v0.8.4
        Checking libyml v0.0.5
       Compiling subplotlib-derive v0.9.0
        Checking filetime v0.2.25
        Checking fs2 v0.4.3
       Compiling async-trait v0.1.85
        Checking state v0.5.3
        Checking base64 v0.21.7
        Checking unescape v0.1.0
        Checking byte-unit v5.1.6
        Checking sha256 v1.5.0
        Checking env_logger v0.11.6
        Checking serde_yml v0.0.12
        Checking directories v5.0.1
        Checking bytesize v1.3.0
        Checking ambient-driver v0.1.0 (/workspace/src)
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:63:51
        |
    63  |     pub fn execute(&self, plan: &RunnablePlan) -> Result<(), ActionError> {
        |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
        = note: `-D clippy::result-large-err` implied by `-D warnings`
        = help: to override `-D warnings` add `#[allow(clippy::result_large_err)]`
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:147:19
        |
    147 |     fn dummy() -> Result<(), ActionError> {
        |                   ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:152:33
        |
    152 |     fn pwd(sourcedir: &Path) -> Result<(), ActionError> {
        |                                 ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:157:60
        |
    157 |     fn rsync(artifactsdir: &Path, target: Option<&str>) -> Result<(), ActionError> {
        |                                                            ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:166:71
        |
    166 |     fn dput_action(artifactsdir: &Path, dput_target: Option<&str>) -> Result<(), ActionError> {
        |                                                                       ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:176:67
        |
    176 |     fn cargo_fetch(source_dir: &Path, dependencies_dir: &Path) -> Result<(), ActionError> {
        |                                                                   ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:190:34
        |
    190 |     fn mkdir(pathname: &Path) -> Result<(), ActionError> {
        |                                  ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:197:54
        |
    197 |     fn tar_create(archive: &Path, dirname: &Path) -> Result<(), ActionError> {
        |                                                      ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:206:55
        |
    206 |     fn tar_extract(archive: &Path, dirname: &Path) -> Result<(), ActionError> {
        |                                                       ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:222:10
        |
    222 |     ) -> Result<(), ActionError> {
        |          ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: variables can be used directly in the `format!` string
       --> src/action.rs:232:24
        |
    232 |         let argv_str = format!("{:?}", argv);
        |                        ^^^^^^^^^^^^^^^^^^^^^
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
        = note: `-D clippy::uninlined-format-args` implied by `-D warnings`
        = help: to override `-D warnings` add `#[allow(clippy::uninlined_format_args)]`
    help: change this to
        |
    232 -         let argv_str = format!("{:?}", argv);
    232 +         let argv_str = format!("{argv:?}");
        |
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:258:51
        |
    258 |     fn spawn_str_in(argv: &[&str], cwd: &Path) -> Result<(), ActionError> {
        |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:267:10
        |
    267 |     ) -> Result<(), ActionError> {
        |          ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:278:53
        |
    278 |     fn shell(plan: &RunnablePlan, snippet: &str) -> Result<(), ActionError> {
        |                                                     ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: variables can be used directly in the `format!` string
       --> src/action.rs:279:23
        |
    279 |         let snippet = format!("set -xeuo pipefail\n{}\n", snippet);
        |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
    help: change this to
        |
    279 -         let snippet = format!("set -xeuo pipefail\n{}\n", snippet);
    279 +         let snippet = format!("set -xeuo pipefail\n{snippet}\n");
        |
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:287:10
        |
    287 |     ) -> Result<(), ActionError> {
        |          ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:300:10
        |
    300 |     ) -> Result<Vec<(&'static str, String)>, ActionError> {
        |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:318:59
        |
    318 |     fn spawn_cargo(plan: &RunnablePlan, args: &[&str]) -> Result<(), ActionError> {
        |                                                           ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:323:42
        |
    323 |     fn cargo_fmt(plan: &RunnablePlan) -> Result<(), ActionError> {
        |                                          ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:327:45
        |
    327 |     fn cargo_clippy(plan: &RunnablePlan) -> Result<(), ActionError> {
        |                                             ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:345:44
        |
    345 |     fn cargo_build(plan: &RunnablePlan) -> Result<(), ActionError> {
        |                                            ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:360:43
        |
    360 |     fn cargo_test(plan: &RunnablePlan) -> Result<(), ActionError> {
        |                                           ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:374:46
        |
    374 |     fn cargo_install(plan: &RunnablePlan) -> Result<(), ActionError> {
        |                                              ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/action.rs:392:36
        |
    392 |     fn deb(plan: &RunnablePlan) -> Result<(), ActionError> {
        |                                    ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    555 |     TarCreate(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     -------------------------------------------------------- the largest variant contains at least 128 bytes
    ...
    561 |     TarExtract(PathBuf, PathBuf, #[source] VirtualDriveError),
        |     --------------------------------------------------------- the variant `TarExtract` contains at least 128 bytes
        |
        = help: try reducing the size of `action::ActionError`, for example by boxing large elements or replacing it with `Box<action::ActionError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: variables can be used directly in the `format!` string
      --> src/cloud_init.rs:48:12
       |
    48 |         Ok(format!("#cloud-config\n{}", userdata))
       |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       |
       = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
    help: change this to
       |
    48 -         Ok(format!("#cloud-config\n{}", userdata))
    48 +         Ok(format!("#cloud-config\n{userdata}"))
       |
    
    error: the `Err`-variant returned from this function is very large
       --> src/plan.rs:15:42
        |
    15  |     pub fn from_file(filename: &Path) -> Result<Self, PlanError> {
        |                                          ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    202 |     Action(#[from] crate::action::ActionError),
        |     ------------------------------------------ the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/plan.rs:22:47
        |
    22  |     pub fn to_file(&self, filename: &Path) -> Result<(), PlanError> {
        |                                               ^^^^^^^^^^^^^^^^^^^^^
    ...
    202 |     Action(#[from] crate::action::ActionError),
        |     ------------------------------------------ the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/plan.rs:53:37
        |
    53  |     pub fn parse_str(yaml: &str) -> Result<Self, PlanError> {
        |                                     ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    202 |     Action(#[from] crate::action::ActionError),
        |     ------------------------------------------ the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/plan.rs:57:42
        |
    57  |     pub fn from_file(filename: &Path) -> Result<Self, PlanError> {
        |                                          ^^^^^^^^^^^^^^^^^^^^^^^
    ...
    202 |     Action(#[from] crate::action::ActionError),
        |     ------------------------------------------ the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/plan.rs:71:32
        |
    71  |     pub fn to_string(&self) -> Result<String, PlanError> {
        |                                ^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    202 |     Action(#[from] crate::action::ActionError),
        |     ------------------------------------------ the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/plan.rs:75:47
        |
    75  |     pub fn to_file(&self, filename: &Path) -> Result<(), PlanError> {
        |                                               ^^^^^^^^^^^^^^^^^^^^^
    ...
    202 |     Action(#[from] crate::action::ActionError),
        |     ------------------------------------------ the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/plan.rs:96:30
        |
    96  |     pub fn execute(&self) -> Result<(), PlanError> {
        |                              ^^^^^^^^^^^^^^^^^^^^^
    ...
    202 |     Action(#[from] crate::action::ActionError),
        |     ------------------------------------------ the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `plan::PlanError`, for example by boxing large elements or replacing it with `Box<plan::PlanError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: variables can be used directly in the `format!` string
       --> src/qemu.rs:348:19
        |
    348 |             .push(format!("format=qcow2,if=virtio,file={}", path));
        |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
    help: change this to
        |
    348 -             .push(format!("format=qcow2,if=virtio,file={}", path));
    348 +             .push(format!("format=qcow2,if=virtio,file={path}"));
        |
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:32:6
        |
    32  | ) -> Result<(), RunError> {
        |      ^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:132:35
        |
    132 | pub fn create_cloud_init_iso() -> Result<LocalDataStore, RunError> {
        |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:158:66
        |
    158 | pub fn create_source_vdrive(tmp: &TempDir, source_dir: &Path) -> Result<VirtualDrive, RunError> {
        |                                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:167:6
        |
    167 | ) -> Result<VirtualDrive, RunError> {
        |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:178:64
        |
    178 | fn create_dependencies_vdrive(tmp: &TempDir, state: &State) -> Result<VirtualDrive, RunError> {
        |                                                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:192:6
        |
    192 | ) -> Result<VirtualDrive, RunError> {
        |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:207:6
        |
    207 | ) -> Result<VirtualDrive, RunError> {
        |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:289:57
        |
    289 | fn construct_runnable_plan(actions: &[UnsafeAction]) -> Result<RunnablePlan, RunError> {
        |                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: the `Err`-variant returned from this function is very large
       --> src/run.rs:332:6
        |
    332 | ) -> Result<(bool, State), RunError> {
        |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...
    433 |     Plan(#[from] PlanError),
        |     ----------------------- the largest variant contains at least 136 bytes
        |
        = help: try reducing the size of `run::RunError`, for example by boxing large elements or replacing it with `Box<run::RunError>`
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#result_large_err
    
    error: variables can be used directly in the `format!` string
       --> src/run.rs:523:9
        |
    523 |         println!("{}", msg);
        |         ^^^^^^^^^^^^^^^^^^^
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
    help: change this to
        |
    523 -         println!("{}", msg);
    523 +         println!("{msg}");
        |
    
    error: variables can be used directly in the `format!` string
       --> src/tildepathbuf.rs:201:13
        |
    201 |             assert_eq!(path.display().to_string(), format!("{}/foo", home));
        |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
    help: change this to
        |
    201 -             assert_eq!(path.display().to_string(), format!("{}/foo", home));
    201 +             assert_eq!(path.display().to_string(), format!("{home}/foo"));
        |
    
    error: variables can be used directly in the `format!` string
       --> src/tildepathbuf.rs:220:40
        |
    220 |             let wanted = PathBuf::from(format!("{}/foo", home));
        |                                        ^^^^^^^^^^^^^^^^^^^^^^^
        |
        = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
    help: change this to
        |
    220 -             let wanted = PathBuf::from(format!("{}/foo", home));
    220 +             let wanted = PathBuf::from(format!("{home}/foo"));
        |
    
    error: variables can be used directly in the `format!` string
      --> src/util.rs:73:18
       |
    73 |     let target = format!("{}/.", target);
       |                  ^^^^^^^^^^^^^^^^^^^^^^^
       |
       = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#uninlined_format_args
    help: change this to
       |
    73 -     let target = format!("{}/.", target);
    73 +     let target = format!("{target}/.");
       |
    
    error: could not compile `ambient-driver` (lib test) due to 46 previous errors
    warning: build failed, waiting for other jobs to finish...
    error: could not compile `ambient-driver` (lib) due to 43 previous errors
    ERROR: Action failed: command failed: ["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
    ERROR: command failed: ["cargo", "clippy", "--offline", "--locked", "--workspace", "--all-targets", "--no-deps", "--", "--deny", "warnings"]
    EXIT CODE: 1
    
    ====================
[2025-09-11T13:05:23Z DEBUG ambient_ci::qemu] QEMU exit code 1
ERROR: failed to run actions in QEMU

Ambient stderr

<empty log>