These raw log messages are meant to help Ambient developers figure out problems. You can ignore them.
{
"type": "executor_starts",
"name": "ambient-execute-plan",
"version": "0.14.0@c37ec71",
"timestamp": {
"secs_since_epoch": 1777545547,
"nanos_since_epoch": 469276259
},
"log_source": "Plan"
}{
"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_test"
},
{
"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": 1777545547,
"nanos_since_epoch": 472367649
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "mkdir",
"pathname": "/ci",
"timestamp": {
"secs_since_epoch": 1777545547,
"nanos_since_epoch": 489025925
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "mkdir",
"pathname": "/ci",
"timestamp": {
"secs_since_epoch": 1777545547,
"nanos_since_epoch": 491253036
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "mkdir",
"pathname": "/ci/artifacts",
"timestamp": {
"secs_since_epoch": 1777545547,
"nanos_since_epoch": 493431654
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "mkdir",
"pathname": "/ci/artifacts",
"timestamp": {
"secs_since_epoch": 1777545547,
"nanos_since_epoch": 495760225
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "tar_extract",
"archive": "/dev/vdc",
"directory": "/ci/src",
"timestamp": {
"secs_since_epoch": 1777545547,
"nanos_since_epoch": 498073079
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "tar_extract",
"archive": "/dev/vdc",
"directory": "/ci/src",
"timestamp": {
"secs_since_epoch": 1777545547,
"nanos_since_epoch": 518785116
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "tar_extract",
"archive": "/dev/vdf",
"directory": "/ci/deps",
"timestamp": {
"secs_since_epoch": 1777545547,
"nanos_since_epoch": 521408681
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "tar_extract",
"archive": "/dev/vdf",
"directory": "/ci/deps",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 201355420
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "tar_extract",
"archive": "/dev/vde",
"directory": "/ci/cache",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 201392677
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "tar_extract",
"archive": "/dev/vde",
"directory": "/ci/cache",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 209557835
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "shell",
"shell": "ln -sf /ci /workspace",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 213098347
},
"log_source": "Plan"
}{
"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": 1777545550,
"nanos_since_epoch": 215612535
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "",
"stderr": "+ ln -sf /ci /workspace\n",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 246142872
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "shell",
"shell": "ln -sf /ci /workspace",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 249438674
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "shell",
"shell": "git config --global user.name 'Ambient CI'",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 251969084
},
"log_source": "Plan"
}{
"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": 1777545550,
"nanos_since_epoch": 254734049
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "",
"stderr": "+ git config --global user.name 'Ambient CI'\n",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 280328413
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "shell",
"shell": "git config --global user.name 'Ambient CI'",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 283575429
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "shell",
"shell": "git config --global user.email ambient@example.com",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 286670839
},
"log_source": "Plan"
}{
"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": 1777545550,
"nanos_since_epoch": 289923110
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "",
"stderr": "+ git config --global user.email ambient@example.com\n",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 300349182
},
"log_source": "Plan"
}{
"type": "action_succeeded",
"action": "shell",
"shell": "git config --global user.email ambient@example.com",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 305254402
},
"log_source": "Plan"
}{
"type": "execute_action",
"action": "cargo_fmt",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 309986588
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
99,
97,
114,
103,
111
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 312964314
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "cargo 1.94.0 (85eff7c80 2026-01-15)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 369515247
},
"log_source": "Plan"
}{
"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": 1777545550,
"nanos_since_epoch": 372297998
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "clippy 0.1.94 (4a4ef493e3 2026-03-02)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 479323655
},
"log_source": "Plan"
}{
"type": "start_program",
"argv": [
{
"Unix": [
114,
117,
115,
116,
99
]
},
{
"Unix": [
45,
45,
118,
101,
114,
115,
105,
111,
110
]
}
],
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 482065147
},
"log_source": "Plan"
}{
"type": "program_succeeded",
"exit_code": 0,
"stdout": "rustc 1.94.0 (4a4ef493e 2026-03-02)\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 526136449
},
"log_source": "Plan"
}{
"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": 1777545550,
"nanos_since_epoch": 526191885
},
"log_source": "Plan"
}{
"type": "program_failed",
"exit_code": 1,
"stdout": "Diff in /ci/src/src/bin/rad-artifact.rs:186:\n if requires_local_node(&args.command) {\n return Err(error::Mode::seed_unsupported(&args.command).into());\n }\n- let rid = args\n- .repository\n- .ok_or(error::Mode::SeedNeedsRepository)?;\n- let repo =\n- radicle_artifact::remote::open(seed, rid).map_err(error::Remote::from)?;\n+ let rid = args.repository.ok_or(error::Mode::SeedNeedsRepository)?;\n+ let repo = radicle_artifact::remote::open(seed, rid).map_err(error::Remote::from)?;\n let releases = open_releases(&repo)?;\n return run_read_only(args.command, args.no_input, &releases, &repo, None);\n }\nDiff in /ci/src/src/bin/rad-artifact.rs:211:\n let signer = profile.signer().map_err(error::Signer)?;\n match loc.command {\n LocationCommand::Add(cmd) => {\n- location_add(\n- cmd,\n- args.no_input,\n- &mut releases,\n- &repo,\n- &profile,\n- &signer,\n- )?;\n+ location_add(cmd, args.no_input, &mut releases, &repo, &profile, &signer)?;\n }\n LocationCommand::Remove(cmd) => {\n- location_remove(\n- cmd,\n- args.no_input,\n- &mut releases,\n- &repo,\n- &profile,\n- &signer,\n- )?;\n+ location_remove(cmd, args.no_input, &mut releases, &repo, &profile, &signer)?;\n }\n }\n if !args.no_sync {\nDiff in /ci/src/src/bin/rad-artifact.rs:237:\n }\n Command::Attest(cmd) => {\n let signer = profile.signer().map_err(error::Signer)?;\n- attest_artifact(\n- cmd,\n- args.no_input,\n- &mut releases,\n- &repo,\n- &profile,\n- &signer,\n- )?;\n+ attest_artifact(cmd, args.no_input, &mut releases, &repo, &profile, &signer)?;\n if !args.no_sync {\n announce(&profile, repo.id)?;\n }\nDiff in /ci/src/src/bin/rad-artifact.rs:251:\n }\n Command::Redact(cmd) => {\n let signer = profile.signer().map_err(error::Signer)?;\n- redact_artifact(\n- cmd,\n- args.no_input,\n- &mut releases,\n- &repo,\n- &profile,\n- &signer,\n- )?;\n+ redact_artifact(cmd, args.no_input, &mut releases, &repo, &profile, &signer)?;\n if !args.no_sync {\n announce(&profile, repo.id)?;\n }\nDiff in /ci/src/src/bin/rad-artifact.rs:265:\n }\n Command::Show(_) | Command::List(_) | Command::Fetch(_) => {\n- run_read_only(args.command, args.no_input, &releases, &repo, Some(&profile))?;\n+ run_read_only(\n+ args.command,\n+ args.no_input,\n+ &releases,\n+ &repo,\n+ Some(&profile),\n+ )?;\n }\n Command::Serve(cmd) => run_serve(cmd, args.no_input, &profile, &mut releases)?,\n }\nDiff in /ci/src/src/bin/rad-artifact.rs:532:\n let (id, cid) = match (release, revision, cid) {\n (Some(_), _, Some(cid)) | (_, Some(_), Some(cid)) => {\n let id = resolve_target_release(\n- release,\n- revision,\n- releases,\n- repo,\n- &delegates,\n- no_input,\n- aliases,\n+ release, revision, releases, repo, &delegates, no_input, aliases,\n )?;\n (id, cid)\n }\nDiff in /ci/src/src/bin/rad-artifact.rs:584:\n let (id, cid) = match (release, revision, cid) {\n (Some(_), _, Some(cid)) | (_, Some(_), Some(cid)) => {\n let id = resolve_target_release(\n- release,\n- revision,\n- releases,\n- repo,\n- &delegates,\n- no_input,\n- aliases,\n+ release, revision, releases, repo, &delegates, no_input, aliases,\n )?;\n (id, cid)\n }\nDiff in /ci/src/src/bin/rad-artifact.rs:748:\n let id = parse_release_id(s, repo)?;\n let r = releases\n .get(&id)\n- .map_err(|err| error::Find::LookupId { release_id: id, err })?\n+ .map_err(|err| error::Find::LookupId {\n+ release_id: id,\n+ err,\n+ })?\n .ok_or(error::Find::NoReleaseId(id))?;\n vec![(id, r)]\n }\nDiff in /ci/src/src/bin/rad-artifact.rs:773:\n all_authors,\n local,\n };\n- let shown =\n- display::Releases::new(candidates.into_iter(), aliases, filters, true, repo, repo);\n+ let shown = display::Releases::new(candidates.into_iter(), aliases, filters, true, repo, repo);\n if use_pretty(pretty, json) {\n print!(\"{}\", shown.pretty_detailed(pretty_style(verbose)));\n } else {\nDiff in /ci/src/src/bin/rad-artifact.rs:1153:\n repo: &Repository,\n aliases: &impl AliasStore,\n ) -> Result<ReleaseId, String> {\n- select_release(candidates, None, repo, aliases)?\n- .ok_or_else(|| \"no release selected\".into())\n+ select_release(candidates, None, repo, aliases)?.ok_or_else(|| \"no release selected\".into())\n }\n \n /// Show a multi-release picker. Returns `Some(id)` when the user\nDiff in /ci/src/src/bin/rad-artifact.rs:1325:\n pub fn pick_location(no_input: bool, urls: Vec<Url>) -> Result<Url, String> {\n if no_input || !std::io::stdin().is_terminal() {\n return Err(\n- \"interactive mode requires a terminal; pass <URL>, or use --no-input to disable\".into(),\n+ \"interactive mode requires a terminal; pass <URL>, or use --no-input to disable\"\n+ .into(),\n );\n }\n if urls.is_empty() {\nDiff in /ci/src/src/bin/rad-artifact.rs:1462:\n name, commit_oid, ..\n } => {\n let short = &commit_oid.to_string()[..7];\n- let title =\n- display::CommitTitle::title(repo, commit_oid).unwrap_or_default();\n+ let title = display::CommitTitle::title(repo, commit_oid).unwrap_or_default();\n format!(\"{name} -> {short} {title}\")\n }\n Entry::Commit { oid } => {\nDiff in /ci/src/src/bin/rad-artifact.rs:1589:\n match releases.get(&id) {\n Ok(Some(_)) => Ok(id),\n Ok(None) => Err(error::Find::NoReleaseId(id).into()),\n- Err(err) => Err(error::Find::LookupId { release_id: id, err }.into()),\n+ Err(err) => Err(error::Find::LookupId {\n+ release_id: id,\n+ err,\n+ }\n+ .into()),\n }\n }\n (None, Some(rev)) => {\nDiff in /ci/src/src/bin/rad-artifact.rs:1617:\n /// `git revparse_single` accepts short OIDs, full OIDs, and any other\n /// ref name that points at the COB.\n fn parse_release_id(s: &str, repo: &Repository) -> Result<ReleaseId, error::Resolve> {\n- let object = repo.raw().revparse_single(s).map_err(|err| error::Resolve {\n- revision: s.to_owned(),\n- err,\n- })?;\n+ let object = repo\n+ .raw()\n+ .revparse_single(s)\n+ .map_err(|err| error::Resolve {\n+ revision: s.to_owned(),\n+ err,\n+ })?;\n Ok(cob::ObjectId::from(object.id()).into())\n }\n \nDiff in /ci/src/src/bin/rad-artifact.rs:1634:\n })?;\n if object.kind() == Some(ObjectType::Tag) {\n let tag_oid: Oid = object.id().into();\n- let peeled = object.peel(ObjectType::Commit).map_err(|err| error::Resolve {\n- revision: rev.to_owned(),\n- err,\n- })?;\n+ let peeled = object\n+ .peel(ObjectType::Commit)\n+ .map_err(|err| error::Resolve {\n+ revision: rev.to_owned(),\n+ err,\n+ })?;\n Ok(ResolvedRef {\n commit: peeled.id().into(),\n tag: Some(tag_oid),\nDiff in /ci/src/src/display.rs:646:\n \n if style.verbose {\n let label = |k: &str| pad_right(&style.dim(k), 14);\n- push_line(\n- &mut s,\n- format!(\" {}{}\", label(\"release\"), self.release_id),\n- );\n+ push_line(&mut s, format!(\" {}{}\", label(\"release\"), self.release_id));\n push_line(&mut s, format!(\" {}{}\", label(\"commit\"), self.oid));\n if let Some(tag_oid) = self.tag {\n push_line(&mut s, format!(\" {}{}\", label(\"tag\"), tag_oid));\nDiff in /ci/src/src/lib.rs:713:\n store: self,\n })\n }\n-\n }\n \n /// A `ReleaseMut` is a [`Release`] where the underlying `Release` can be\nDiff in /ci/src/src/lib.rs:973:\n \n /// Collect the delegate set for a Radicle storage repository for use\n /// with `find_unique_by_commit`.\n- fn delegates(\n- repo: &radicle::storage::git::Repository,\n- ) -> std::collections::BTreeSet<Did> {\n+ fn delegates(repo: &radicle::storage::git::Repository) -> std::collections::BTreeSet<Did> {\n use radicle::prelude::ReadRepository;\n repo.delegates().unwrap().into_iter().collect()\n }\nDiff in /ci/src/src/lib.rs:2003:\n node: _alice, repo, ..\n } = test::setup::NodeWithRepo::default();\n let test::setup::NodeWithRepo { node: bob, .. } = test::setup::NodeWithRepo::default();\n- let test::setup::NodeWithRepo { node: carol, .. } =\n- test::setup::NodeWithRepo::default();\n+ let test::setup::NodeWithRepo { node: carol, .. } = test::setup::NodeWithRepo::default();\n let oid = commit(&repo.backend, \"Test Commit\");\n let delegates = delegates(&repo);\n let mut releases = Releases::open(&*repo).unwrap();\n",
"stderr": "",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 748653645
},
"log_source": "Plan"
}{
"type": "action_failed",
"action": "cargo_fmt",
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 888565035
},
"log_source": "Plan"
}{
"type": "executor_ends_in_failure",
"exit_code": 1,
"timestamp": {
"secs_since_epoch": 1777545550,
"nanos_since_epoch": 892106670
},
"log_source": "Plan"
}{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z4VYyJ9KuwMNkXGQnmKuGPGKw3inv",
"name": "radicle-artifact",
"description": "A Radicle Collaborative Object (COB) for content-addressed release artifacts and their discovery locations",
"private": false,
"default_branch": "main",
"delegates": [
"did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm"
]
},
"action": "Updated",
"patch": {
"id": "4c6574b9663452395abbae0aba674eb70846634a",
"author": {
"id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
"alias": "2color"
},
"title": "feat: add --seed mode for nodeless reads",
"state": {
"status": "open",
"conflicts": []
},
"before": "858f8d9371f469d7d4a1e2d38eff65aa70cdb240",
"after": "27f33fd2bef0055adb7d65d67015eabfb4d1095a",
"commits": [
"27f33fd2bef0055adb7d65d67015eabfb4d1095a",
"624059cb69ce97ad0379ee6b2a43dca017de33e9"
],
"target": "858f8d9371f469d7d4a1e2d38eff65aa70cdb240",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "4c6574b9663452395abbae0aba674eb70846634a",
"author": {
"id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
"alias": "2color"
},
"description": "- add `--seed <URL>` flag to fetch from a radicle-httpd seed into a\n local cache, bypassing profile/node setup\n- restrict seed mode to read-only subcommands (list, show, fetch, cid);\n mutating commands need a running node to push refs\n- introduce `ProfileAliases` adapter so read-only dispatch works\n uniformly with or without a profile\n\nWhy: lets users inspect releases on machines without a configured\nRadicle node, lowering the barrier for consumers who only want to\nread artifact metadata.\n\nOpen question: is shelling out to `git` a sensible choice? \n\nOtherwise libgit2 needs to be compiled with HTTPS support. The git2 crate handles this via the https feature (default-on, pulls in openssl-sys or schannel). Shelling out side-steps this entirely — git brings its own TLS.",
"base": "858f8d9371f469d7d4a1e2d38eff65aa70cdb240",
"oid": "624059cb69ce97ad0379ee6b2a43dca017de33e9",
"timestamp": 1777494923
},
{
"id": "dbe67ce78d0d3290e14a149ccc31bc80ad3d7c12",
"author": {
"id": "did:key:z6MktwkohCx8aHZ1QCjVZUiLmX92oPZFxRiFZkbq32Tk5Tkm",
"alias": "2color"
},
"description": "refactor(remote): fetch via libgit2 instead of git CLI\n\n- drop the `git fetch` subprocess in favor of `git2::Remote`\n- removes the implicit dependency on a `git` binary on PATH\n- vendor libgit2 but link `https` against the system OpenSSL\n to avoid bundling a TLS stack",
"base": "858f8d9371f469d7d4a1e2d38eff65aa70cdb240",
"oid": "27f33fd2bef0055adb7d65d67015eabfb4d1095a",
"timestamp": 1777545527
}
]
}
}executor from config: /usr/bin/ambient-execute-plan executor from PATH: /usr/bin/ambient-execute-plan run CI for rad:z4VYyJ9KuwMNkXGQnmKuGPGKw3inv ERROR: CI run failed inside QEMU
<empty log>