CI: FAILURE ambient-ci

Table of Contents

Run log

Plan, inside VM without network

plan: Executor starts
After 0.00 seconds at 2026-05-19 07:34:25ZProgram: ambient-execute-plan
Version: 0.14.0@c37ec71
plan: Runnable plan
After 0.00 seconds at 2026-05-19 07:34:25Z
steps:
- action: mkdir
  pathname: /ci
- action: mkdir
  pathname: /ci/artifacts
- action: tar_extract
  archive: /dev/vdc
  directory: /ci/src
- action: tar_extract
  archive: /dev/vdf
  directory: /ci/deps
- action: tar_extract
  archive: /dev/vde
  directory: /ci/cache
- action: shell
  shell: ln -sf /ci /workspace
- action: shell
  shell: git config --global user.name 'Ambient CI'
- action: shell
  shell: git config --global user.email ambient@example.com
- action: cargo_fmt
- action: cargo_clippy
- action: cargo_build
- action: cargo_test
- action: shell
  shell: |
    make doc
    cp ./*.html doc/*.html /workspace/artifacts
    git reset --hard
    git clean -fdx
- action: custom
  name: dch
  args:
    debemail: liw@liw.fi
    debfullname: Lars Wirzenius
- action: deb
  packages: .
- action: tar_create
  archive: /dev/vde
  directory: /ci/cache
- action: tar_create
  archive: /dev/vdd
  directory: /ci/artifacts
executor_drive: /dev/vdb
source_drive: /dev/vdc
artifact_drive: /dev/vdd
cache_drive: /dev/vde
deps_drive: /dev/vdf
workspace_dir: /ci
source_dir: /ci/src
deps_dir: /ci/deps
cache_dir: /ci/cache
artifacts_dir: /ci/artifacts
envs: {}
plan: Successful action mkdir: /ci
After 0.02 seconds at 2026-05-19 07:34:25Z
  • plan: Start action mkdir: /ci
    After 0.00 seconds at 2026-05-19 07:34:25Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
  • plan: Action succeeded mkdir: /ci
    After 0.00 seconds at 2026-05-19 07:34:25Z
    Mkdir(
        Mkdir {
            pathname: "/ci",
        },
    )
plan: Successful action mkdir: /ci/artifacts
After 0.03 seconds at 2026-05-19 07:34:25Z
  • plan: Start action mkdir: /ci/artifacts
    After 0.00 seconds at 2026-05-19 07:34:25Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
  • plan: Action succeeded mkdir: /ci/artifacts
    After 0.00 seconds at 2026-05-19 07:34:25Z
    Mkdir(
        Mkdir {
            pathname: "/ci/artifacts",
        },
    )
plan: Successful action tar_extract
After 0.04 seconds at 2026-05-19 07:34:25Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-05-19 07:34:25Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-05-19 07:34:25Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdc",
            directory: "/ci/src",
        },
    )
plan: Successful action tar_extract
After 0.07 seconds at 2026-05-19 07:34:25Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-05-19 07:34:25Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-05-19 07:34:26Z
    TarExtract(
        TarExtract {
            archive: "/dev/vdf",
            directory: "/ci/deps",
        },
    )
plan: Successful action tar_extract
After 1.16 seconds at 2026-05-19 07:34:26Z
  • plan: Start action tar_extract
    After 0.00 seconds at 2026-05-19 07:34:26Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
  • plan: Action succeeded tar_extract
    After 0.00 seconds at 2026-05-19 07:34:26Z
    TarExtract(
        TarExtract {
            archive: "/dev/vde",
            directory: "/ci/cache",
        },
    )
plan: Successful action shell: ln -sf /ci /workspace
After 1.17 seconds at 2026-05-19 07:34:26Z
  • plan: Start action shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-05-19 07:34:26Z
    • bash
    • -c
    • set -xeuo pipefail ln -sf /ci /workspace
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Exit code: 0
    Stderr:
    + ln -sf /ci /workspace
    
  • plan: Action succeeded shell: ln -sf /ci /workspace
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Shell(
        Shell {
            shell: "ln -sf /ci /workspace",
        },
    )
plan: Successful action shell: git config --global user.name 'Ambient CI'
After 1.18 seconds at 2026-05-19 07:34:26Z
  • plan: Start action shell: git config --global user.name 'Ambient CI'
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-05-19 07:34:26Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.name 'Ambient CI'
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Exit code: 0
    Stderr:
    + git config --global user.name 'Ambient CI'
    
  • plan: Action succeeded shell: git config --global user.name 'Ambient CI'
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Shell(
        Shell {
            shell: "git config --global user.name 'Ambient CI'",
        },
    )
plan: Successful action shell: git config --global user.email ambient@example.com
After 1.20 seconds at 2026-05-19 07:34:26Z
  • plan: Start action shell: git config --global user.email ambient@example.com
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
  • plan: Start program bash
    After 0.00 seconds at 2026-05-19 07:34:26Z
    • bash
    • -c
    • set -xeuo pipefail git config --global user.email ambient@example.com
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Exit code: 0
    Stderr:
    + git config --global user.email ambient@example.com
    
  • plan: Action succeeded shell: git config --global user.email ambient@example.com
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Shell(
        Shell {
            shell: "git config --global user.email ambient@example.com",
        },
    )
plan: Successful action cargo_fmt
After 1.22 seconds at 2026-05-19 07:34:26Z
  • plan: Start action cargo_fmt
    After 0.00 seconds at 2026-05-19 07:34:26Z
    CargoFmt(
        CargoFmt,
    )
  • plan: Start program cargo
    After 0.00 seconds at 2026-05-19 07:34:26Z
    • cargo
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Exit code: 0
    Stdout:
    cargo 1.95.0 (f2d3ce0bd 2026-03-21)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-05-19 07:34:26Z
    • cargo
    • clippy
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Exit code: 0
    Stdout:
    clippy 0.1.95 (59807616e1 2026-04-14)
    
  • plan: Start program rustc
    After 0.00 seconds at 2026-05-19 07:34:26Z
    • rustc
    • --version
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Exit code: 0
    Stdout:
    rustc 1.95.0 (59807616e 2026-04-14)
    
  • plan: Start program cargo
    After 0.00 seconds at 2026-05-19 07:34:26Z
    • cargo
    • fmt
    • --check
  • plan: Program succeeded
    After 0.00 seconds at 2026-05-19 07:34:26Z
    Exit code: 0
  • plan: Action succeeded cargo_fmt
    After 0.00 seconds at 2026-05-19 07:34:26Z
    CargoFmt(
        CargoFmt,
    )
plan: Start action cargo_clippy
After 1.43 seconds at 2026-05-19 07:34:26Z
CargoClippy(
    CargoClippy,
)
plan: Start program cargo
After 1.43 seconds at 2026-05-19 07:34:26Z
  • cargo
  • --version
plan: Program succeeded
After 1.45 seconds at 2026-05-19 07:34:26Z
Exit code: 0
Stdout:
cargo 1.95.0 (f2d3ce0bd 2026-03-21)
plan: Start program cargo
After 1.45 seconds at 2026-05-19 07:34:26Z
  • cargo
  • clippy
  • --version
plan: Program succeeded
After 1.48 seconds at 2026-05-19 07:34:26Z
Exit code: 0
Stdout:
clippy 0.1.95 (59807616e1 2026-04-14)
plan: Start program rustc
After 1.48 seconds at 2026-05-19 07:34:26Z
  • rustc
  • --version
plan: Program succeeded
After 1.50 seconds at 2026-05-19 07:34:26Z
Exit code: 0
Stdout:
rustc 1.95.0 (59807616e 2026-04-14)
plan: Start program cargo
After 1.50 seconds at 2026-05-19 07:34:26Z
  • cargo
  • clippy
  • --offline
  • --locked
  • --workspace
  • --all-targets
  • --no-deps
  • --
  • --deny
  • warnings
plan: ERROR: Program failed
After 26.82 seconds at 2026-05-19 07:34:51Z
Exit code: 101
Stderr:
   Compiling proc-macro2 v1.0.103
   Compiling quote v1.0.42
   Compiling unicode-ident v1.0.22
   Compiling libc v0.2.177
   Compiling syn v2.0.110
    Checking stable_deref_trait v1.2.1
    Checking itoa v1.0.15
    Checking memchr v2.7.6
    Checking bytes v1.11.0
    Checking pin-project-lite v0.2.16
   Compiling serde_core v1.0.228
    Checking once_cell v1.21.3
    Checking futures-core v0.3.31
    Checking cfg-if v1.0.4
   Compiling synstructure v0.13.2
    Checking mio v1.1.0
    Checking socket2 v0.6.1
   Compiling shlex v1.3.0
   Compiling find-msvc-tools v0.1.5
    Checking futures-sink v0.3.31
   Compiling cc v1.2.46
   Compiling zerofrom-derive v0.1.6
    Checking zerofrom v0.1.6
   Compiling yoke-derive v0.8.1
   Compiling zerovec-derive v0.11.2
    Checking yoke v0.8.1
   Compiling displaydoc v0.2.5
    Checking zerovec v0.11.5
    Checking tokio v1.48.0
    Checking fnv v1.0.7
    Checking http v1.3.1
    Checking tinystr v0.8.2
   Compiling ring v0.17.14
   Compiling serde v1.0.228
    Checking smallvec v1.15.1
    Checking hashbrown v0.16.0
    Checking writeable v0.6.2
    Checking equivalent v1.0.2
    Checking litemap v0.8.1
    Checking slab v0.4.11
    Checking icu_locale_core v2.1.1
    Checking indexmap v2.12.0
    Checking zerotrie v0.2.3
    Checking potential_utf v0.1.4
   Compiling serde_derive v1.0.228
   Compiling typenum v1.19.0
   Compiling version_check v0.9.5
    Checking pin-utils v0.1.0
    Checking zeroize v1.8.2
   Compiling icu_properties_data v2.1.1
   Compiling icu_normalizer_data v2.1.1
    Checking rustls-pki-types v1.13.0
   Compiling generic-array v0.14.7
    Checking icu_collections v2.1.1
    Checking icu_provider v2.1.1
    Checking http-body v1.0.1
    Checking getrandom v0.2.16
    Checking tracing-core v0.1.34
    Checking percent-encoding v2.3.2
    Checking futures-task v0.3.31
    Checking futures-io v0.3.31
    Checking untrusted v0.9.0
   Compiling httparse v1.10.1
    Checking futures-util v0.3.31
    Checking tracing v0.1.41
    Checking tokio-util v0.7.17
    Checking bitflags v2.10.0
    Checking tower-service v0.3.3
    Checking utf8parse v0.2.2
   Compiling autocfg v1.5.0
   Compiling rustls v0.23.35
    Checking ryu v1.0.20
    Checking try-lock v0.2.5
    Checking atomic-waker v1.1.2
    Checking h2 v0.4.12
   Compiling num-traits v0.2.19
    Checking want v0.3.1
    Checking anstyle-parse v0.2.7
    Checking icu_normalizer v2.1.1
    Checking icu_properties v2.1.1
    Checking rustls-webpki v0.103.8
    Checking futures-channel v0.3.31
    Checking aho-corasick v1.1.4
    Checking subtle v2.6.1
    Checking anstyle-query v1.1.5
   Compiling getrandom v0.3.4
    Checking colorchoice v1.0.4
    Checking is_terminal_polyfill v1.70.2
   Compiling rustix v1.1.2
    Checking anstyle v1.0.13
    Checking regex-syntax v0.8.8
    Checking anstream v0.6.21
    Checking regex-automata v0.4.13
    Checking hyper v1.8.1
    Checking idna_adapter v1.2.1
    Checking form_urlencoded v1.2.2
    Checking sync_wrapper v1.0.2
    Checking utf8_iter v1.0.4
    Checking ipnet v2.11.0
   Compiling rust_decimal v1.39.0
    Checking tower-layer v0.3.3
   Compiling thiserror v2.0.17
   Compiling portable-atomic v1.11.1
    Checking winnow v0.7.13
   Compiling serde_json v1.0.145
    Checking linux-raw-sys v0.11.0
    Checking log v0.4.28
    Checking base64 v0.22.1
    Checking hyper-util v0.1.18
    Checking toml_parser v1.0.4
    Checking tower v0.5.2
    Checking idna v1.1.0
    Checking tokio-rustls v0.26.4
    Checking regex v1.12.2
    Checking block-buffer v0.10.4
    Checking crypto-common v0.1.7
    Checking webpki-roots v1.0.4
   Compiling thiserror-impl v2.0.17
    Checking serde_spanned v1.0.3
    Checking toml_datetime v0.7.3
    Checking dirs-sys-next v0.1.2
   Compiling time-core v0.1.6
    Checking option-ext v0.2.0
   Compiling anyhow v1.0.100
    Checking fastrand v2.3.0
   Compiling num-conv v0.1.0
    Checking clap_lex v0.7.6
    Checking strsim v0.11.1
   Compiling heck v0.5.0
    Checking powerfmt v0.2.0
    Checking toml_writer v1.0.4
    Checking iri-string v0.7.9
    Checking unsafe-libyaml-norway v0.2.15
    Checking arrayvec v0.7.6
    Checking unicode-width v0.2.2
    Checking console v0.16.1
    Checking tower-http v0.6.6
    Checking serde_norway v0.9.42
    Checking toml v0.9.8
    Checking deranged v0.5.5
   Compiling clap_derive v4.5.49
    Checking clap_builder v4.5.52
   Compiling time-macros v0.2.24
    Checking tempfile v3.23.0
    Checking dirs-sys v0.5.0
    Checking directories-next v2.0.0
    Checking hyper-rustls v0.27.7
    Checking env_filter v0.1.4
    Checking digest v0.10.7
    Checking url v2.5.7
    Checking serde_urlencoded v0.7.1
    Checking http-body-util v0.1.3
    Checking unit-prefix v0.5.2
    Checking utf8-width v0.1.7
    Checking jiff v0.2.16
    Checking unicode-segmentation v1.12.0
    Checking same-file v1.0.6
   Compiling ambient-ci v0.11.0 (/ci/src)
    Checking cpufeatures v0.2.17
    Checking sha2 v0.10.9
    Checking walkdir v2.5.0
    Checking indicatif v0.18.3
    Checking time v0.3.44
    Checking clingwrap v0.4.0
    Checking byte-unit v5.1.6
    Checking reqwest v0.12.24
    Checking env_logger v0.11.8
    Checking directories v6.0.0
    Checking clap v4.5.52
    Checking bytesize v2.2.0
    Checking hex v0.4.3
error: consider using `sort_by_key`
   --> src/run.rs:300:5
    |
300 |     projects.sort_by(|(a_name, _), (b_name, _)| a_name.cmp(b_name));
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.95.0/index.html#unnecessary_sort_by
    = note: `-D clippy::unnecessary-sort-by` implied by `-D warnings`
    = help: to override `-D warnings` add `#[allow(clippy::unnecessary_sort_by)]`
help: try
    |
300 -     projects.sort_by(|(a_name, _), (b_name, _)| a_name.cmp(b_name));
300 +     projects.sort_by_key(|(a_name, _)| *a_name);
    |

error: could not compile `ambient-ci` (lib) due to 1 previous error
warning: build failed, waiting for other jobs to finish...
error: could not compile `ambient-ci` (lib test) due to 1 previous error
plan: Action failed: cargo_clippy
After 26.88 seconds at 2026-05-19 07:34:51Z
CargoClippy(
    CargoClippy,
)

Raw log messages for Ambient troubleshooting

Raw log messages

These raw log messages are meant to help Ambient developers figure out problems. You can ignore them.

  1. {
      "type": "executor_starts",
      "name": "ambient-execute-plan",
      "version": "0.14.0@c37ec71",
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 32260560
      },
      "log_source": "Plan"
    }
  2. {
      "type": "runnable_plan",
      "steps": [
        {
          "action": "mkdir",
          "pathname": "/ci"
        },
        {
          "action": "mkdir",
          "pathname": "/ci/artifacts"
        },
        {
          "action": "tar_extract",
          "archive": "/dev/vdc",
          "directory": "/ci/src"
        },
        {
          "action": "tar_extract",
          "archive": "/dev/vdf",
          "directory": "/ci/deps"
        },
        {
          "action": "tar_extract",
          "archive": "/dev/vde",
          "directory": "/ci/cache"
        },
        {
          "action": "shell",
          "shell": "ln -sf /ci /workspace"
        },
        {
          "action": "shell",
          "shell": "git config --global user.name 'Ambient CI'"
        },
        {
          "action": "shell",
          "shell": "git config --global user.email ambient@example.com"
        },
        {
          "action": "cargo_fmt"
        },
        {
          "action": "cargo_clippy"
        },
        {
          "action": "cargo_build"
        },
        {
          "action": "cargo_test"
        },
        {
          "action": "shell",
          "shell": "make doc\ncp ./*.html doc/*.html /workspace/artifacts\ngit reset --hard\ngit clean -fdx\n"
        },
        {
          "action": "custom",
          "name": "dch",
          "args": {
            "debemail": "liw@liw.fi",
            "debfullname": "Lars Wirzenius"
          }
        },
        {
          "action": "deb",
          "packages": "."
        },
        {
          "action": "tar_create",
          "archive": "/dev/vde",
          "directory": "/ci/cache"
        },
        {
          "action": "tar_create",
          "archive": "/dev/vdd",
          "directory": "/ci/artifacts"
        }
      ],
      "executor_drive": "/dev/vdb",
      "source_drive": "/dev/vdc",
      "artifact_drive": "/dev/vdd",
      "cache_drive": "/dev/vde",
      "deps_drive": "/dev/vdf",
      "workspace_dir": "/ci",
      "source_dir": "/ci/src",
      "deps_dir": "/ci/deps",
      "cache_dir": "/ci/cache",
      "artifacts_dir": "/ci/artifacts",
      "envs": {},
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 35178235
      },
      "log_source": "Plan"
    }
  3. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 55323078
      },
      "log_source": "Plan"
    }
  4. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci",
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 59898385
      },
      "log_source": "Plan"
    }
  5. {
      "type": "execute_action",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 62239555
      },
      "log_source": "Plan"
    }
  6. {
      "type": "action_succeeded",
      "action": "mkdir",
      "pathname": "/ci/artifacts",
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 66032872
      },
      "log_source": "Plan"
    }
  7. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 68879158
      },
      "log_source": "Plan"
    }
  8. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdc",
      "directory": "/ci/src",
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 99735162
      },
      "log_source": "Plan"
    }
  9. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1779176065,
        "nanos_since_epoch": 99770114
      },
      "log_source": "Plan"
    }
  10. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vdf",
      "directory": "/ci/deps",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 193030271
      },
      "log_source": "Plan"
    }
  11. {
      "type": "execute_action",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 193071121
      },
      "log_source": "Plan"
    }
  12. {
      "type": "action_succeeded",
      "action": "tar_extract",
      "archive": "/dev/vde",
      "directory": "/ci/cache",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 199766339
      },
      "log_source": "Plan"
    }
  13. {
      "type": "execute_action",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 199789899
      },
      "log_source": "Plan"
    }
  14. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            108,
            110,
            32,
            45,
            115,
            102,
            32,
            47,
            99,
            105,
            32,
            47,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 199801131
      },
      "log_source": "Plan"
    }
  15. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ ln -sf /ci /workspace\n",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 211602076
      },
      "log_source": "Plan"
    }
  16. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "ln -sf /ci /workspace",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 214255079
      },
      "log_source": "Plan"
    }
  17. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 216700944
      },
      "log_source": "Plan"
    }
  18. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            103,
            105,
            116,
            32,
            99,
            111,
            110,
            102,
            105,
            103,
            32,
            45,
            45,
            103,
            108,
            111,
            98,
            97,
            108,
            32,
            117,
            115,
            101,
            114,
            46,
            110,
            97,
            109,
            101,
            32,
            39,
            65,
            109,
            98,
            105,
            101,
            110,
            116,
            32,
            67,
            73,
            39,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 219397099
      },
      "log_source": "Plan"
    }
  19. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ git config --global user.name 'Ambient CI'\n",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 229600870
      },
      "log_source": "Plan"
    }
  20. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.name 'Ambient CI'",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 232579188
      },
      "log_source": "Plan"
    }
  21. {
      "type": "execute_action",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 235291571
      },
      "log_source": "Plan"
    }
  22. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            98,
            97,
            115,
            104
          ]
        },
        {
          "Unix": [
            45,
            99
          ]
        },
        {
          "Unix": [
            115,
            101,
            116,
            32,
            45,
            120,
            101,
            117,
            111,
            32,
            112,
            105,
            112,
            101,
            102,
            97,
            105,
            108,
            10,
            103,
            105,
            116,
            32,
            99,
            111,
            110,
            102,
            105,
            103,
            32,
            45,
            45,
            103,
            108,
            111,
            98,
            97,
            108,
            32,
            117,
            115,
            101,
            114,
            46,
            101,
            109,
            97,
            105,
            108,
            32,
            97,
            109,
            98,
            105,
            101,
            110,
            116,
            64,
            101,
            120,
            97,
            109,
            112,
            108,
            101,
            46,
            99,
            111,
            109,
            10
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 238100993
      },
      "log_source": "Plan"
    }
  23. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "+ git config --global user.email ambient@example.com\n",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 246219017
      },
      "log_source": "Plan"
    }
  24. {
      "type": "action_succeeded",
      "action": "shell",
      "shell": "git config --global user.email ambient@example.com",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 249385428
      },
      "log_source": "Plan"
    }
  25. {
      "type": "execute_action",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 252192595
      },
      "log_source": "Plan"
    }
  26. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 254235545
      },
      "log_source": "Plan"
    }
  27. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 281495768
      },
      "log_source": "Plan"
    }
  28. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            99,
            108,
            105,
            112,
            112,
            121
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 284325605
      },
      "log_source": "Plan"
    }
  29. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.95 (59807616e1 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 335706795
      },
      "log_source": "Plan"
    }
  30. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            114,
            117,
            115,
            116,
            99
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 335752197
      },
      "log_source": "Plan"
    }
  31. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.95.0 (59807616e 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 356004316
      },
      "log_source": "Plan"
    }
  32. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            102,
            109,
            116
          ]
        },
        {
          "Unix": [
            45,
            45,
            99,
            104,
            101,
            99,
            107
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 358831123
      },
      "log_source": "Plan"
    }
  33. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 466732889
      },
      "log_source": "Plan"
    }
  34. {
      "type": "action_succeeded",
      "action": "cargo_fmt",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 466771907
      },
      "log_source": "Plan"
    }
  35. {
      "type": "execute_action",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 466777900
      },
      "log_source": "Plan"
    }
  36. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 466787019
      },
      "log_source": "Plan"
    }
  37. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "cargo 1.95.0 (f2d3ce0bd 2026-03-21)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 483468385
      },
      "log_source": "Plan"
    }
  38. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            99,
            108,
            105,
            112,
            112,
            121
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 486230374
      },
      "log_source": "Plan"
    }
  39. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "clippy 0.1.95 (59807616e1 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 515482650
      },
      "log_source": "Plan"
    }
  40. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            114,
            117,
            115,
            116,
            99
          ]
        },
        {
          "Unix": [
            45,
            45,
            118,
            101,
            114,
            115,
            105,
            111,
            110
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 515524051
      },
      "log_source": "Plan"
    }
  41. {
      "type": "program_succeeded",
      "exit_code": 0,
      "stdout": "rustc 1.95.0 (59807616e 2026-04-14)\n",
      "stderr": "",
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 532968140
      },
      "log_source": "Plan"
    }
  42. {
      "type": "start_program",
      "argv": [
        {
          "Unix": [
            99,
            97,
            114,
            103,
            111
          ]
        },
        {
          "Unix": [
            99,
            108,
            105,
            112,
            112,
            121
          ]
        },
        {
          "Unix": [
            45,
            45,
            111,
            102,
            102,
            108,
            105,
            110,
            101
          ]
        },
        {
          "Unix": [
            45,
            45,
            108,
            111,
            99,
            107,
            101,
            100
          ]
        },
        {
          "Unix": [
            45,
            45,
            119,
            111,
            114,
            107,
            115,
            112,
            97,
            99,
            101
          ]
        },
        {
          "Unix": [
            45,
            45,
            97,
            108,
            108,
            45,
            116,
            97,
            114,
            103,
            101,
            116,
            115
          ]
        },
        {
          "Unix": [
            45,
            45,
            110,
            111,
            45,
            100,
            101,
            112,
            115
          ]
        },
        {
          "Unix": [
            45,
            45
          ]
        },
        {
          "Unix": [
            45,
            45,
            100,
            101,
            110,
            121
          ]
        },
        {
          "Unix": [
            119,
            97,
            114,
            110,
            105,
            110,
            103,
            115
          ]
        }
      ],
      "timestamp": {
        "secs_since_epoch": 1779176066,
        "nanos_since_epoch": 535791753
      },
      "log_source": "Plan"
    }
  43. {
      "type": "program_failed",
      "exit_code": 101,
      "stdout": "",
      "stderr": "   Compiling proc-macro2 v1.0.103\n   Compiling quote v1.0.42\n   Compiling unicode-ident v1.0.22\n   Compiling libc v0.2.177\n   Compiling syn v2.0.110\n    Checking stable_deref_trait v1.2.1\n    Checking itoa v1.0.15\n    Checking memchr v2.7.6\n    Checking bytes v1.11.0\n    Checking pin-project-lite v0.2.16\n   Compiling serde_core v1.0.228\n    Checking once_cell v1.21.3\n    Checking futures-core v0.3.31\n    Checking cfg-if v1.0.4\n   Compiling synstructure v0.13.2\n    Checking mio v1.1.0\n    Checking socket2 v0.6.1\n   Compiling shlex v1.3.0\n   Compiling find-msvc-tools v0.1.5\n    Checking futures-sink v0.3.31\n   Compiling cc v1.2.46\n   Compiling zerofrom-derive v0.1.6\n    Checking zerofrom v0.1.6\n   Compiling yoke-derive v0.8.1\n   Compiling zerovec-derive v0.11.2\n    Checking yoke v0.8.1\n   Compiling displaydoc v0.2.5\n    Checking zerovec v0.11.5\n    Checking tokio v1.48.0\n    Checking fnv v1.0.7\n    Checking http v1.3.1\n    Checking tinystr v0.8.2\n   Compiling ring v0.17.14\n   Compiling serde v1.0.228\n    Checking smallvec v1.15.1\n    Checking hashbrown v0.16.0\n    Checking writeable v0.6.2\n    Checking equivalent v1.0.2\n    Checking litemap v0.8.1\n    Checking slab v0.4.11\n    Checking icu_locale_core v2.1.1\n    Checking indexmap v2.12.0\n    Checking zerotrie v0.2.3\n    Checking potential_utf v0.1.4\n   Compiling serde_derive v1.0.228\n   Compiling typenum v1.19.0\n   Compiling version_check v0.9.5\n    Checking pin-utils v0.1.0\n    Checking zeroize v1.8.2\n   Compiling icu_properties_data v2.1.1\n   Compiling icu_normalizer_data v2.1.1\n    Checking rustls-pki-types v1.13.0\n   Compiling generic-array v0.14.7\n    Checking icu_collections v2.1.1\n    Checking icu_provider v2.1.1\n    Checking http-body v1.0.1\n    Checking getrandom v0.2.16\n    Checking tracing-core v0.1.34\n    Checking percent-encoding v2.3.2\n    Checking futures-task v0.3.31\n    Checking futures-io v0.3.31\n    Checking untrusted v0.9.0\n   Compiling httparse v1.10.1\n    Checking futures-util v0.3.31\n    Checking tracing v0.1.41\n    Checking tokio-util v0.7.17\n    Checking bitflags v2.10.0\n    Checking tower-service v0.3.3\n    Checking utf8parse v0.2.2\n   Compiling autocfg v1.5.0\n   Compiling rustls v0.23.35\n    Checking ryu v1.0.20\n    Checking try-lock v0.2.5\n    Checking atomic-waker v1.1.2\n    Checking h2 v0.4.12\n   Compiling num-traits v0.2.19\n    Checking want v0.3.1\n    Checking anstyle-parse v0.2.7\n    Checking icu_normalizer v2.1.1\n    Checking icu_properties v2.1.1\n    Checking rustls-webpki v0.103.8\n    Checking futures-channel v0.3.31\n    Checking aho-corasick v1.1.4\n    Checking subtle v2.6.1\n    Checking anstyle-query v1.1.5\n   Compiling getrandom v0.3.4\n    Checking colorchoice v1.0.4\n    Checking is_terminal_polyfill v1.70.2\n   Compiling rustix v1.1.2\n    Checking anstyle v1.0.13\n    Checking regex-syntax v0.8.8\n    Checking anstream v0.6.21\n    Checking regex-automata v0.4.13\n    Checking hyper v1.8.1\n    Checking idna_adapter v1.2.1\n    Checking form_urlencoded v1.2.2\n    Checking sync_wrapper v1.0.2\n    Checking utf8_iter v1.0.4\n    Checking ipnet v2.11.0\n   Compiling rust_decimal v1.39.0\n    Checking tower-layer v0.3.3\n   Compiling thiserror v2.0.17\n   Compiling portable-atomic v1.11.1\n    Checking winnow v0.7.13\n   Compiling serde_json v1.0.145\n    Checking linux-raw-sys v0.11.0\n    Checking log v0.4.28\n    Checking base64 v0.22.1\n    Checking hyper-util v0.1.18\n    Checking toml_parser v1.0.4\n    Checking tower v0.5.2\n    Checking idna v1.1.0\n    Checking tokio-rustls v0.26.4\n    Checking regex v1.12.2\n    Checking block-buffer v0.10.4\n    Checking crypto-common v0.1.7\n    Checking webpki-roots v1.0.4\n   Compiling thiserror-impl v2.0.17\n    Checking serde_spanned v1.0.3\n    Checking toml_datetime v0.7.3\n    Checking dirs-sys-next v0.1.2\n   Compiling time-core v0.1.6\n    Checking option-ext v0.2.0\n   Compiling anyhow v1.0.100\n    Checking fastrand v2.3.0\n   Compiling num-conv v0.1.0\n    Checking clap_lex v0.7.6\n    Checking strsim v0.11.1\n   Compiling heck v0.5.0\n    Checking powerfmt v0.2.0\n    Checking toml_writer v1.0.4\n    Checking iri-string v0.7.9\n    Checking unsafe-libyaml-norway v0.2.15\n    Checking arrayvec v0.7.6\n    Checking unicode-width v0.2.2\n    Checking console v0.16.1\n    Checking tower-http v0.6.6\n    Checking serde_norway v0.9.42\n    Checking toml v0.9.8\n    Checking deranged v0.5.5\n   Compiling clap_derive v4.5.49\n    Checking clap_builder v4.5.52\n   Compiling time-macros v0.2.24\n    Checking tempfile v3.23.0\n    Checking dirs-sys v0.5.0\n    Checking directories-next v2.0.0\n    Checking hyper-rustls v0.27.7\n    Checking env_filter v0.1.4\n    Checking digest v0.10.7\n    Checking url v2.5.7\n    Checking serde_urlencoded v0.7.1\n    Checking http-body-util v0.1.3\n    Checking unit-prefix v0.5.2\n    Checking utf8-width v0.1.7\n    Checking jiff v0.2.16\n    Checking unicode-segmentation v1.12.0\n    Checking same-file v1.0.6\n   Compiling ambient-ci v0.11.0 (/ci/src)\n    Checking cpufeatures v0.2.17\n    Checking sha2 v0.10.9\n    Checking walkdir v2.5.0\n    Checking indicatif v0.18.3\n    Checking time v0.3.44\n    Checking clingwrap v0.4.0\n    Checking byte-unit v5.1.6\n    Checking reqwest v0.12.24\n    Checking env_logger v0.11.8\n    Checking directories v6.0.0\n    Checking clap v4.5.52\n    Checking bytesize v2.2.0\n    Checking hex v0.4.3\nerror: consider using `sort_by_key`\n   --> src/run.rs:300:5\n    |\n300 |     projects.sort_by(|(a_name, _), (b_name, _)| a_name.cmp(b_name));\n    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n    |\n    = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.95.0/index.html#unnecessary_sort_by\n    = note: `-D clippy::unnecessary-sort-by` implied by `-D warnings`\n    = help: to override `-D warnings` add `#[allow(clippy::unnecessary_sort_by)]`\nhelp: try\n    |\n300 -     projects.sort_by(|(a_name, _), (b_name, _)| a_name.cmp(b_name));\n300 +     projects.sort_by_key(|(a_name, _)| *a_name);\n    |\n\nerror: could not compile `ambient-ci` (lib) due to 1 previous error\nwarning: build failed, waiting for other jobs to finish...\nerror: could not compile `ambient-ci` (lib test) due to 1 previous error\n",
      "timestamp": {
        "secs_since_epoch": 1779176091,
        "nanos_since_epoch": 856360527
      },
      "log_source": "Plan"
    }
  44. {
      "type": "action_failed",
      "action": "cargo_clippy",
      "timestamp": {
        "secs_since_epoch": 1779176091,
        "nanos_since_epoch": 907565939
      },
      "log_source": "Plan"
    }
  45. {
      "type": "executor_ends_in_failure",
      "exit_code": 1,
      "timestamp": {
        "secs_since_epoch": 1779176091,
        "nanos_since_epoch": 908393024
      },
      "log_source": "Plan"
    }

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": "b0ef97468ed97288171f7ea9fea23a85ca4dc3c5",
    "author": {
      "id": "did:key:z6MkkMqyfkMdn8p1LF7LbjjEPJmZGksr3cdpsvFdxKWUVfNZ",
      "alias": "kinnison-lassitude"
    },
    "title": "Add a `rustup_toolchain` pre-action",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "52cef3b23125786d6b8f2198279a4b5e0025c8ab",
    "after": "7e2e5194ac833f5d245b6f21a801baaf7edd54f3",
    "commits": [
      "7e2e5194ac833f5d245b6f21a801baaf7edd54f3",
      "9b8e8fd9b505e15ed3113a1ec061438ae95a4b62"
    ],
    "target": "0ec13482e13734be9906b33dd106ea8edb5399f5",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "b0ef97468ed97288171f7ea9fea23a85ca4dc3c5",
        "author": {
          "id": "did:key:z6MkkMqyfkMdn8p1LF7LbjjEPJmZGksr3cdpsvFdxKWUVfNZ",
          "alias": "kinnison-lassitude"
        },
        "description": "This adds a pre-action which looks for `rust-toolchain{,.toml}` files and runs `rustup show` in any directory which contains one.\n\nWhat this should do is therefore make it possible for the actions to honour `rust-toolchain{,.toml}` files, including all relevant components and targets which may be needed to successfully build.",
        "base": "52cef3b23125786d6b8f2198279a4b5e0025c8ab",
        "oid": "7e2e5194ac833f5d245b6f21a801baaf7edd54f3",
        "timestamp": 1779176049
      }
    ]
  }
}

Ambient stdout

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

Ambient stderr

<empty log>