CI run log: rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5

Radicle info

Trigger message
{
  "request": "trigger",
  "version": 1,
  "event_type": "patch",
  "repository": {
    "id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
    "name": "heartwood",
    "description": "Radicle Heartwood Protocol & Stack",
    "private": false,
    "default_branch": "master",
    "delegates": [
      "did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
      "did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
      "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
    ]
  },
  "action": "Updated",
  "patch": {
    "id": "35de0506bf37acacd082fe029186a5db2b43c8dc",
    "author": {
      "id": "did:key:z6MktBiMxUQ8SP1cRWhnTVxVwM8ijac6M9P1T3BDxaeVnqjh",
      "alias": "fred-surface-win"
    },
    "title": "cli: keep node running after terminal closes on windows",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "6ba619f9a636fecfe5f30b36ebb6b8c06774d5cb",
    "after": "a40472d45140a54a7b336a11d1b227acae66f371",
    "commits": [
      "a40472d45140a54a7b336a11d1b227acae66f371",
      "41e908e59c1b7f05b9b0fd67e894f8d6f989502f"
    ],
    "target": "6ba619f9a636fecfe5f30b36ebb6b8c06774d5cb",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "35de0506bf37acacd082fe029186a5db2b43c8dc",
        "author": {
          "id": "did:key:z6MktBiMxUQ8SP1cRWhnTVxVwM8ijac6M9P1T3BDxaeVnqjh",
          "alias": "fred-surface-win"
        },
        "description": "This change adds support for keeping the node running as a true\nbackground process. By default, detached processes like that would\ncreate a temporary console when they themselves fork a command like\ngit.",
        "base": "90aaec1c9eee77a0beebece48f460c1424c1c8bd",
        "oid": "d234e7d24cc62ae06a6c802c596260ebb995ceb1",
        "timestamp": 1784381453
      },
      {
        "id": "b907eede3fb1562219d4692526016f7b8979ed51",
        "author": {
          "id": "did:key:z6MktBiMxUQ8SP1cRWhnTVxVwM8ijac6M9P1T3BDxaeVnqjh",
          "alias": "fred-surface-win"
        },
        "description": "radicle/node/config: Document RateLimit fields\n\nThe documentation for `RateLimit::fill_rate` and `RateLimit::capacity`\nwere missing.\n\nAdd the documentation to help users decided on values based on how the\nrate limiting works.\n\n\nworkspace: Update snapbox to 1.2\n\n\ncli-test: Disable normalizing paths\n\nThe normalization of paths was converting valid `\\n` characters to `/n`.\nThis had not been noticed until codespell suggest the change of\n`/ndefined` to be `/undefined`.\n\nUse `Assert::normalize_paths(false)` to disable this behaviour.\n\n\nradicle-node: Prevent infinite connection loop on instant dial failure\n\nWhen a connection drops and the node attempts to reconnect within the\nsame second, the `last_attempt` timestamp written to the database is\nidentitcal to the `last_success` timestamp due to the Unix time (seconds)\nprecision loss.\n\nThe `maintain_connections` logic filters eligible peers using the\ncondition `last_success >= last_attempt`. Because the truncated\ntimestamps are equal, this evaluates to true, causing the node to\nbypass the `CONNECTION_RETRY_DELTA` backoff.\n\nIf the OS instantly rejects the dial attempt (e.g. `EHOSTUNREACH`),\nthe node synchronously queues another connection attempt. This traps\nthe reactor in an infinite `while` loop.\n\nChanging the condition to `last_success > last_attempt` ensures that a\nfailed attempt in the same second correctly evaluates to false, forcing\nthe node to respect the backoff timer and breaking the loop.\n\n\nradicle-node: Replace WAN routeable testing IPs with 198.18.0.0/15 private subnet\n\n\nradicle: Replace WAN routeable testing IPs with 198.18.0.0/15 private subnet\n\n\nradicle-cli: Add labels column to patch list\n\n\nradicle-cli: Fix broken test 'rad-cob-update'\n\nThe `rad_cob_update` test accidentally use the `rad-cob-log` file\ninstead of `rad-cob-log`.\n\nThis change fixes that, and updates the `rad-cob-update` example file\nto the latest patch show format.\n\n\ncob: Replace 'git2::Oid' -> 'git::raw::Oid'\n\n\nradicle/cob/patch: Extend MergeTarget\n\nExtend `enum MergeTarget` to include a new variant, `Branch`.\nThe intended use of this new variant is to allow a `Patch` to have a\ntarget branch other than the default branch.\n\nThe `Branch` variant holds a `TargetBranch` which, in turn, is ensured\nto be a `Qualified` reference that begins with `refs/heads`, i.e. a\nGit branch.\n\n\nremote-helper: Add 'patch.target' push option\n\nThe remote helper now supports the push option `patch.target`. This\nallows users to explicitly specify a target canonical reference when\nopening or updating a patch. For example, to open a patch that targets\nthe branch \"backport\", use:\n```\ngit push -o patch.target=refs/heads/backport\n```\n\nFurthermore, strict merge and revert isolation is now enforced:\npatches are only marked as merged or reverted if the commits are\npushed to the target branch of the patch explicitly.\n\n\nremote-helper: Introduce magic push ref 'refs/for/'\n\nIntroduces support for Gerrit-style magic push references via\n`refs/for/<branch>`. Pushing to this ref automatically extracts the\ntarget branch and opens a patch against it, bypassing the need for the\npush option `patch.target`. Example:\n\n```\n$ git push rad HEAD:refs/for/accepted\n```\n\nWill open a patch with its `patch.target` set to `refs/heads/accepted`.\n\n\nradicle-cli/terminal: Add patch target ref to rad patch show\n\n\ncli/examples: Introduce a suite of merge and revert tests for patch.target\n\n\nterm: Remove typing indication for passwords\n\n`inquire::PasswordDisplayMode::Masked` causes inquire to\nrender characters of the password text input marked as\ndifferent characters (asterisks).\n\nUsers reported that they would prefer password text input to not be\nrendered at all, i.e., have no indication of input. This is inquire's\ndefault, so remove the lines that set the display mode.\n\n\nradicle/cob: Include command name on spawn fail\n\nTo improve the ability to work out what went wrong, should an external\ncob helper not be found, report the command name if the spawn fails.\n\nSigned-off-by: Daniel Silverstone <dsilvers@digital-scurf.org>\nCo-authored-by: Lorenz Leutgeb <lorenz.leutgeb@radicle.dev>\n\n\ncli/examples: fix jj-init-colocate test\n\nThis hint was removed in jj 0.41.0 with commit\nf2eea823d6919ed88fa4e7778d9e0e302af851c1\n\n\nradicle-cli: Remove fullstop from RID on rad init\n\nPrevents fullstop from being selected on double click the RID.\n\n\nnode/wire: Always report fetch results to the service\n\nA fetch result was discarded whenever the peer was no longer `Connected`\nby the time the worker reported, and queued fetches were dropped silently\nwhen the peer disconnected before the `Io::Fetch` was processed. In both\ncases the fetcher's `active` entry for the repo was never cleared. Since\nthat entry is keyed by repo, it blocked the repository from being fetched\nfrom any node until the process restarted.\n\n- Report the result in `worker_result` even when the peer is no longer\n  connected, instead of returning early\n- Report a failed fetch when an `Io::Fetch` is dropped for a disconnected\n  peer, so the active entry is cleared\n- Flip the wire regression test to assert the entry is now cleared on\n  disconnect\n\n\nfetcher: Guard fetched against stale node results\n\n- Clear active[rid] only when the result's node matches the node that\n  started the fetch; mismatched results now report NotFound\n- Prevent a late completion from a disconnected peer clearing a newer\n  fetch for the same repo started by a different node\n- Add test covering the stale-from mismatch path\n\n\nfetcher/state: Extend test for same RID, different nodes\n\nThe extension of the test shows that Node B's fetch cannot be dequeued because\nthe RID is in the active fetch set.\n\nIt can then be dequeued once Node A has been fetched from.\n\n\nfetcher: Test removing active fetch from another node\n\nAdd test coverage to show that an active fetch is only removed when the `NodeId`\nof the `from` field matches the `NodeId` of the active fetch.\n\n\nnode/test: Reproduce orphaned fetch at service layer\n\n- Drive the real cancel-skip path: a connection conflict makes\n  `disconnected` early-return on a link mismatch, leaving the fetch\n  uncancelled\n- Combined with an undelivered fetch result, the `active[rid]` entry is\n  orphaned and the repo can no longer be fetched from any node\n- Confirm delivering the missing result clears the entry and unblocks\n  the queued fetch, showing what the fix must guarantee\n\n\nnode/wire: Test disconnected node remove active fetch\n\n- Drive `worker_result` through the real wire layer with the peer in\n  `Disconnecting` state, mirroring a fetch that ends mid-disconnect\n- Assert `active[rid]` survives, proving the result is discarded without\n  calling `service.fetched`, which is what orphans the entry\n- Add helpers to wrap a service with an active fetch in a `Wire`\n\n\nnode/wire: Test connected node removes active fetch\n\n- Assert that with the peer still `Connected`, `worker_result` clears\n  `active[rid]` as expected\n- Confirm the disconnect test is exercising the discard path rather than\n  passing vacuously\n\n\nradicle-cli: fix tests for git ddiff on Windows.\n\nI took the easy way of changing the tests to compare the lines\nindependently, as I suspect diffs should remain platform-specific.\n\n\nFix NO_COLOR to only suppress colors, not all ANSI styles\n\nThe NO_COLOR convention (https://no-color.org) only calls for\nsuppressing ANSI *color* codes. It does not demand the removal of\nother attributes such as bold, italic, underline or reverse.\n\nPreviously, Paint::is_enabled() bundled anstyle_query::no_color()\ninto the single boolean that decides whether to emit any formatting.\nBecause Paint relies on that boolean alone, NO_COLOR ended up\nstripping bold, italic, reverse, etc. alongside the color codes.\nThat conflates two concerns: terminal styling support and color\nsuppression. It is also contrary to the intent of the standard.\n\nInstead, treat the general style decision separately from the\ncolor decision.  Remove the no_color() check from is_enabled()\nand add Paint::is_styling_enabled() for the coarse terminal gate.\nStyle::fmt_prefix and fmt_suffix now query NO_COLOR directly and\nconditionally drop foreground and background codes while preserving\nnon-colour properties.  This way bold, italic, underline and the\nlike continue to work when NO_COLOR is set, while colors alone are\nsuppressed.\n\nCloses: rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/cob/xyz.radicle.issue/f922d90\nAssisted-by: Pi:deepinfra/moonshotai/Kimi-K2.6\nSigned-off-by: Richard Levitte <richard@levitte.org>\n\n\nradicle/cob/identity: Strengthen test assumptions\n\nNot only assert that the revision is active, but\nalso its parent.\n\n\nradicle/cob/identity: Use verdicts to count votes\n\nEvaluation of this COB is implemented under the assumption that\ndelegates accept at most one revision.\n\nThis can lead to issues, if some delegates create new revisions eagerly,\nwithout waiting for the others to vote on earlier revisions. As the\neager delegates start accepting newer and newer revisions, this shadows\ntheir acceptance of earlier revisions, which leads to failure to\nrecognize that these earlier revisions were actually accepted by a\nmajority.\n\nTo avoid such situations, remove `heads`, and always count the number of\n\"accept\" verdicts explicitly.\n\n\nradicle/cob/identity: Rewrite Evaluation\n\nThe evaluation of the reposioty identity is rewritten to better handle cases\nwhere there are child and sibling revisions that are active at the same time.\n\nIn particular, `fn Identity::action` is now free of any references to\n`self.current`.\n\nThis is achieved through two main improvements. The first is that the `State`\nof revisions changes to improve clarity:\n 1. `Active` and `Accepted` remain, and their meanings also remain the same.\n 2. `Stale` is removed entirely.\n 3. `Rejected` is improved to also contain `RejectedBy`, to keep track of the\n    reason for rejection.\n 4. `Redacted` is promoted to a state. Similarly, the reason for\n    redaction is tracked by `RedactedBy`.\n\nThe transition of a revision from `Active` to one of the other states now\ninfluences siblings and children.\n\nIf a revision transitions to `Accepted`, then the sibling revisions can no\nlonger transition to `Accepted`. They are considered `Rejected` where the reason\nis `Sibling`. This cascades: Children of siblings are `Rejected`\nrecursively, tracking `RejectedBy::Parent`.\nAny children of the `Accepted` revision are also evaluated to see if they can be\nsimilarly transitioned to the `Accepted` state; since they may have already been\nvoted on.\n\nIf a revision was rejected by a majority, then the it transitions to `Rejected`\nwith `RejectedBy::Vote`. Dually to acceptance, the children of this revision\nare also rejected with the reason of `Ancestor`.\n\nFinally, when the author of a revision redacts a revision, it transitions\nto `Redacted`, tracking `RedactedBy::Author`, and its children are redacted\ntracking `RedactedBy::Parent`.\n\nThe test is adjusted to `remove_delegate_concurrent` reflect that concurrently\nproposed revisions are retained in the timeline and explicitly marked as rejected,\nrather than being dropped entirely (as before).\n\n\nradicle/cob/identity: Test rejected sibling\n\nAdd a test case to show that when Bob creates two sibling changes `b1` and `b2`,\nthat the acceptance of one means the other gets rejected.\n\n\nradicle/cob/identity: Add concurrent terminal state test\n\nThe new identity evaluation logic was updated to ignore `Accept` or `Reject`\nactions if the revision has already reached a terminal state (`Accepted` or\n`Rejected`), however this handling was not explicitly covered by the test suite.\n\nThis test ensures that the state machine correctly short-circuits the\nlate-arriving vote, proving that the new logic succesfully ensures\nterminal states remain immutable under concurrent network conditions.\n\n\nradicle/cob/identity: Test terminal states\n\nThe identity evaluation rewrite changed how revision redactions are\nhandled. Instead of removing the revision entirely, it explicitly\ntransitions the revision to `State::Redacted`.\n\nAdd a test to cover two redaction scenarios:\n - Attempting to redact a revision that has already been `Accepted`.\n - Attempting to redact a revision that has already been `Rejected`.\n\n\nradicle/cob/identity: Test cascading rejection\n\nWhen a revision reaches qourum and is adopted, the state all competing sibling\nrevisions as `Rejected`.\n\nHowever, the test suite lacked coverage for deeper proposal branches,\nspecifically testing that this rejection correctly cascades to the\nchildren of those rejected siblings.\n\nIntroduces a test to simulate the scenario where a delegate eagerly\nproposes a chain of revisions (a child branching off a sibling) while\nothers concurrently accept a competing branch.\n\n\nradicle/cob/identity: Test cascading of redaction\n\nAdd a test case to show that when a revision is redacted that its children also\nbecome redacted, tracking `RedactedBy::Parent`.\n\n\nradicle/cob/identity: Test evaluating children of accepted revision\n\nAdd a test case to show that when a revision becomes accepted that its children,\nwhich reach a majority vote, are also marked as accepted.\n\n\nradicle/cob/identity: Fix comments in test `reject_concurrent`\n\nThis incorrectly listed the number of votes and delegates.\n\n\nradicle/test/arbitrary: Make BoundedVec shared\n\nA `BoundedVec` that implements `Arbitrary` is useful for all property testing.\nMove it from the `sigrefs` module so that it can be reused by other components.\n\n\nradicle/cob/identity: Add Property Tests\n\nIntroduce a property testing harness for asserting a set of properties expected\nof the repository identity.\n\nThe harness uses the `Network` fixture for providing four nodes that can\ninteract with the repository identity. The state of the harness is advanced by\nproviding an actor and operation on the identity document. Invariants are then\nasserted about the identity.\n\nThe current invariants are:\n- The `current` revision is the one and only `Accepted` revision.\n- The chain of revisions is valid. That is, `Active` revisions only have a\n  parent that is `Accepted`, and not `Rejected` or `Redacted`.\n- `Active` revisions do not contain a majority approval.\n- `Accepted` revisions contain a majority approval.\n- `Rejected` revisions do not contain a majority approval.\n- For each revision, at most one child is `Accepted`.\n- For each revision, if any of its children is `Accepted`, all other\n  children are `Rejected`.\n- A revision which is `Rejected(RejectedBy::Parent)` has a parent that\n  is `Rejected`.\n- A revision which is `Redacted(RedactedBy::Parent)` has a parent that\n  is `Redacted`.\n- For each revision that is `Rejected` or `Redacted`, none of its\n  children is `Active`.\n- A sibling or ancestor revision's rejected state applies to its sibling or\n  descendant.\n- The repository identity documents converge when all nodes have applied all\n  operations.\n\n\nradicle/cob/identity: Test queued children with delegate change\n\nEnsure that adopting queued children takes into account that the delegate set\ncan change.\n\n\nradicle/cob/identity: Test `authorization_based_on_parent_not_current`\n\nTo reflect that autorization is governed by the causal parent of a\nrevision, not the currently accepted revision.\n\n\nradicle/cob/identity: Test redacting accepted revisions\n\nAdd a test to ensure that a previously accepted revision cannot be redacted.\n\n\nradicle/cob/identity: Deprecate `Identity::id`\n\nIn the heartwood workspace, there is just a single use of this function.\nAlso, the repository ID can be computed on demand, saving memory.\n\n\nradicle/cob/identity: Fix cascading_rejections test to test actual cascading\n\nThe test previously had B2 as a sibling of B1 (both children of A1),\nbecause update() always uses self.current as parent. This meant\nthe test was testing multi-sibling rejection, not cascading.\n\nNow B2 is a child of B1 via a manual transaction, so when B1 is\nrejected (sibling E1 accepted), B2 is rejected via RejectedBy::Parent\n(cascade), which is what the test name promises.\n\n\nradicle/cob/identity: Test concurrent redact-vs-accept convergence\n\nVerifies that when Alice redacts a revision and Bob concurrently\naccepts it, both nodes converge after sync. The CRDT evaluation\norder (timestamp-based) determines which operation takes effect.\n\n\nradicle/cob/identity: Test accept-before-redact convergence\n\nCompanion to the redact-vs-accept test, with reversed timestamp ordering so\naccept wins.\n\n\nradicle/cob/identity: Add has_active_sibling_accept helper\n\nAdd a helper method to check if a delegate has already voted on a sibling\nrevision.\n\n\nradicle/cob/identity: Enforce sibling-accept invariant for `RevisionAccept` in `action`\n\nOn `Action::RevisionAccept` use `has_active_sibling_accept` to check for a sibling accept.\nIf one is found, the `RevisionAccept` is logged and skipped.\n\nThis preserves the invariant of a single accept per delegate on active, sibling\nrevisions without throwing an error on existing histories.\n\n\nradicle/cob/identity: Strip implicit author accept for sibling revisions in `action`\n\nWhen a delegate creates a new `Revision`, their signature is implicitly added to the revision.\nPrevent the delegate from an accept verdict on two active, sibling revisions by:\n1. Checking that the `state` is `Active`, and then checking `has_active_sibling_accept`\n2. If there is an existing verdict, then it the verdict from the new revision is stripped.\n\nThe creation of the `Revision` must still happen, as opposed to throwing an\nerror, in case of existing histories.\n\n\nradicle/cob/identity: Add SiblingAccepted error variant\n\nAdd an `ApplyError` for variant, `SiblingAccepted`, to use to enforce the new\ninvariant: delegates must not accept active, sibling revisions.\n\n\nradicle/cob/identity: Guard `IdentityMut::accept` against sibling accepts\n\nEnsure that the `IdentityMut::accept` API returns an error when it encounters an\nactive, sibling revision by the same delegate.\n\n\nradicle/cob/identity: Guard `IdentityMut::update` against sibling proposals\n\nEnsure that the `IdentityMut::update` API returns an error when it encounters an\nactive, sibling revision by the same delegate.\n\n\nradicle/cob/identity: Add sibling-accept invariant to property tests\n\n\nCHANGELOG: Describe the changes to repository identity evaluation\n\n\ncargo: Bump zlib-rs to 0.6.5\n\nFetching a large repository looped with\n\n    Failed to consume the pack sent by the remote\n\neven though the pack appears valid (Git indexes it in full).\n\nThe cause appears to be a bug in zlib-rs 0.6.3 according to\n<https://github.com/trifectatechfoundation/zlib-rs/pull/504>.\n\n\nradicle/identity: Tidy up\n\nSmall improvements:\n - Remove confusing comments in test\n - Rename `has_active_sibling_accept`\n     to   `has_accepted_active_sibling`\n - Small refactoring to avoid `… } else { None }`\n\n\nnode/reactor: Remove unnecessary functions/types\n\nThe functions\n - `Session::run_handshake`\n - `Session::stream`\n - `Session::disconnect`\nare unused.\n\nThe associated type `Session::Inner` is unused.\n\nThe function `Session::display` is of limited use with little benefit.\n\n`Transport::link_direction` is only used in implementations of\n`Debug` and `Display`, but is not helpful otherwise.\n\n\nnode/reactor/session: `Protocol::{state → machine}`\n\nEven though for the existing implementations all state machines are\nsomehow named \"state\", it is less confusing to call the struct member\n\"machine\".\n\n\nnode/reactor: Simplify Transport\n\n 1. Properly drain readiness\n 2. Remove `WriteAtomic`\n 3. Introduce `BufWrite`\n 4. Remove flushing\n\n\nnode: Refactor Tests\n\nThe tests in `crates/radicle-node/src/tests/.rs` repeat code quite a\nbit, for example, construction of IP addresses. Also, `Peer` is\nunnecessarily complex (too many struct members, state indicated via a\nboolean, type parameter that is always instantiated for the same type).\n\nClean up `Peer` by removing multiple struct members, remove the\nunnecessary type parameter, and provide convenience functions that make\nstatement of the actual tests a little less repetitive and more concise.\n\nFor test networks, five standard nodes (Amy, Bob, Cid, Dan, Eve) are all\neasy to construct. Tests are refactored to make use of these nodes in\nlexicgraphic oreder. The order of initialization may differ.\nModification of configuration is done by passing `FnMut`.\n\nIn the future, using the builder pattern could be explored.\n\n\nflake.nix: Add cargo-shear\n\nThe [cargo-shear] tool can be used to detect unused dependencies.\n\n[cargo-shear]: https://crates.io/crates/cargo-shear\n\n\ncli: Remove unused dependencies\n\n`tree-sitter` and `pretty-assertions` are no longer used.\n\n\nfetch: Remove gix-refpsec dependency\n\n\nlog: Remove unused dependencies\n\n`radicle-term` and `regex` are not required.\n\n\nschemars: Remove unused serde dependency\n\n\nterm: Remove unused tempfile dependency\n\n\nnode: Remove unused qcheck-macros dependency\n\n\ncli-test: Remove unused radicle dependency\n\n\nprotocol: Remove unused radicle-crypto dev-dependency\n\n\ngit2: 0.20 → 0.21\n\nUpdate `git2` due to\n - https://rustsec.org/advisories/RUSTSEC-2026-0008.html\n - https://rustsec.org/advisories/RUSTSEC-2026-0183.html\n - https://rustsec.org/advisories/RUSTSEC-2026-0184.html\n\n\nradicle: Remove dependency `amplify`\n\nThe `amplify` crate is only used in a handful places to derive `impl`s\nthat are not very complex.\n\nProvide the required `impl`s directly, and remove the dependency.\n\n\nprotocol: Remove duplicate `enum AddressType`\n\nWe already have `radicle::node::address::AddressType` for the same\npurpose.\n\n\nradicle: Mark `AddressType` as `non_exhaustive`\n\n\nrust: 1.95 → 1.97.1\n\nThe update to `flake.lock` is a simple\n\n    nix flake update rust-overlay\n\nto be able to reach 1.97.1.\n\nThe changes to `**/*.rs` files are improvements suggested by Clippy.\n\n\ntreewide: Use channels from `std`, not Crossbeam\n\nFor most use-cases, i.e., except some in `radicle-node`, the channels\nin `std::sync::mpsc` suffice, allowing us to get rid of the dependency\n`crossbeam-channel`.\n\nCrossbeam is sometimes mentioned to offer higher performance compared\nto `std::sync::mpsc`.\nFor usage in `radicle-signals` (and the counterparts in `radicle-node`\nand `radicle-term`) performance is irrelevant, as these channels are\nused to send a singular message (to the effect of shutting down the\nnode or stopping the spinner). These could potentially use\n`std::sync::oneshot` in the future, which is nightly-only as of\n2026-06-17, see <https://github.com/rust-lang/rust/issues/143674>.\nUsage in `radicle-protocol` and `radicle`, is a heavier duty.\nThe channels pass commands to the service (arriving e.g. via the\ncontrol socket in `radicle-node`), events from the service to other\nlisteners (e.g. the control socket), and fetch results from workers to\nthe service. For user interaction, performance is irrelevant, since\nthe messages are in the tens or hundreds per second. Even for delivering\nevents and programmatic usage of commands, thousands to hundreds of\nthousands of messages per second are plenty.\n\nNote that these channel implementations are benchmarked in the millions\nof operations per second, see e.g.:\n - <https://github.com/crossbeam-rs/crossbeam/tree/b23b7e8eca2efdad9bdc1ceb1aee1207a852c03b/crossbeam-channel/benchmarks#results>\n - <https://github.com/fereidani/rust-channel-benchmarks/blob/b4c979a94482e5012734657c2ee153b528bc56d6/README.md>\n\nAlso, `crossbeam-channel` was merged into `std` in 2022-11, and we do\nnot believe that performance of the implementations has siginifcantly\ndrifted since then, see <https://github.com/rust-lang/rust/pull/93563>.\n\nOne minor downside is that the channels in the standard library do not\nexpose the number of pending messages.\n\n\nflake.nix: Remove darwin.apple_sdk.frameworks as it is deprecated\n\nMore information can be found at <https://nixos.org/manual/nixpkgs/stable/#sec-darwin-legacy-frameworks>.\n\n\nnode/worker/garbage: Clean up\n\nClippy reports dead code on all variants except `Hours` on `Expiry`,\nsince the type is defined in a binary crate.\n\nAllow dead code here, just in case we want to use the other variants in\nthe future. They are not a maintenance burden, as the implementation is\nsimple and does not see much change.\n\nSlightly refactor:\n - `impl std::fmt::Display for Expiry` to look cleaner.\n - `fn collect` to borrow `RepoId`, since it only needs\n   a borrow, and a a borrow of `Expiry` to spare a copy\n   at the only call site.\n - The constant for the default value of `Expiry` to be\n   associated with the type `Expiry`.\n\nRemove a remark about the default value of `Expiry` from `FetchConfig`,\nas the default value is not a concern there, but rather wherever\n`Expiry` is initialized.\n\n\ntreewide: Add configurable per-stream fetch timeout\n\nThis introduces a `fetch_timeout` setting to the node configuration,\nreplacing the hardcoded constant. It defines the duration a fetch stream\nis allowed to stall before being aborted. The default remains 30s, but\nusers on anonymizing transports like Tor can now increase it to avoid\nspurious timeouts during network congestion.\n\n\ncrypto/test: Diffie-Hellman Fixture\n\nBefore rewriting `radicle-crypto`, add a fixture to have some assurance\non compatibility.\n\n\nradicle, cli/auth: Let binary crate generate seed\n\nIn preparation of a rewrite of `radicle-crypto`, move the\nresponsibility for generating a cryptographically secure\nseed from `radicle` (transitively via dependency on\n`radicle-crypto` and `ec25519`) to the dependent of `radicle`.\n\nApplications should decide how to obtain randomness, not `radicle` via\nsome far-removed dependency.\n\nWithin the workspace, the only dependent using `Profile::seed` is\n`radicle-cli`, in particular for the `rad auth` subcommand. To obtain\nrandom bytes, `radicle-cli` depends on `getrandom` and uses\n`getrandom::fill`.\n\n\ncrypto: Rewrite\n\nReasons for the rewrite:\n - Migrate away from `ec25519` as our implementation of Ed25519,\n   because that crate is unmaintained.\n   Instead of `ec25519` we use `ed25519-dalek` which is the most popular\n   implementation of Ed25519 in Rust.\n - Migrate away from `amplify`, because we make very little use of its\n   features. Here, we only use `amplify::Bytes32`, which is just a thin\n   wrapper of `[u8; 32]`.\n   Instead of `amplify::Bytes32` we use `type PublicKeyBytes = [u8; 32]`.\n\nThe realization that `ExtendedSignature` is not really tied to SSH, but\nis merely a representation of a key together with a signature, allows to\nrelax the bounds on traits in `radicle-cob`.\n\nSeparating out uses of \"public key\" (a rather simple model of a key,\njust 32 bytes) and \"verifying key\" (an actual point on the Edwards\ncurve, ready to verify signatures, using more memory than just 32 bytes)\nallows a more sensible definition of `crypto::Signer`, which propagates\nto `radicle-cob`, `radicle`, `radicle-cli`, `radicle-node` and\nsimplifies trait bounds.\n\nIn `radicle-node`, make the fact clearer that actually the secret key\nitself is required (for our implementation of Diffie-Hellman) not\n\"just\" signing. This results in removal of the generic argument\n(usually called `G`) of multiple types.\n\nConcretizing the types in `radicle-node` this way, i.e. by (morally)\nsetting `G = radicle_crypto::SigningKey`, leads to removal of\n`MemorySigner` and `MockSigner`, as they really just wrap a signing\nkey.\n\nRe-exporting `ed25519::Signature` (via re-export in `ed25519-dalek`)\nis hopefully more future-proof than using our own type for signatures.\nHowever, the fact that `ed25519::Signature` is not serializable and\ndoes not implement `std::hash::Hash` means that we have to resort to\nad-hoc solutions in `radicle`:\n 1. The Identity COB requires serialization of signatures. These are\n    generally questionable, since the security of the Identity COB\n    should rely on the security of Signed References. In the medium\n    term we might even want to consider ignoring signatures in actions.\n 2. When reading Signed References, detection of Replay Attacks uses\n    a `HashMap` keyed by signatures. This detection only exists for\n    backwards compatibility.\nThese two use cases are exotic enough to warrant ad-hoc implementations.\nBy not wrapping `ed25519::Signature`, we encourage writing more widely\ncompatible code in the future.\n\nCo-authored-by: Fintan Halpenny <fintan.halpenny@gmail.com>\n\n\ncargo/dev: Optimize compute-heavy dependencies\n\n\nnode: Remove re-export `…::node::PROTOCOL_VERSION`\n\nIt appears that `radicle_node::PROTOCOL_VERSION` (which is a re-export\nof `radicle::node::PROTOCOL_VERSION` is the only symbol exported from\n`radicle-node` that is used in `radicle-cli` (except tests).\n\nSince `radicle-cli` depends on `radicle` anyway, it is questionable how\nmuch sense that re-export and use from a binary crate (!) makes.\n\nRemove the re-export.\n\n\nnode: Clean up `use`s\n\nThe re-exports from other crates got quite confusing.\n\nRemove all `pub use` from `radicle-node`, and rewrite all `use`s\naccordingly.\n\nThe result is a slight increase in the number of `use` lines, but with\nimproved clarity on which type is actually imported.\n\n\nnode/test: Clean up\n\nAdjusting visibility and conditional compilation for the modules in\n`radicle_node::test` allows some dead code elimination.\n\n\nprotocol/handle: `Responder` in `Command::Block`\n\nOther variants of `Command` use `Responder` respond with data.\n`Command::Block` does not.\n\nChange `Command::Block` to be in line with other variants.\n\n\nbuild/Dockerfile: Omit default `RUST_VERSION`\n\nThe Rust version used for development is tracked in\n`/rust-toolchain.toml`, and the value specified there is used to set\n`RUST_VERSION` in the `build/build` script. Thus, when using\n`build/build`, the default value is unimportant.\n\nHowever, ensuring that the default value remains consistent with\n`/rust-toolchain.toml` is a maintenance burden.\n\nRemove the default value. This increases friction of building without\n`build/build`, but makes maintenance easier.\n\n\nbuild/Dockerfile/alpine: 3.24 → 3.24\n\n\nbuild/Dockerfile: Re-use `$ALPINE_VERSION`\n\nUse the same version of Alpine Linux for building and packaging.\n\n\nbuild/Dockerfile: Specify Registry docker.io\n\nMake explicit that Docker Hub is used.\n\n\nbuild/Dockerfile/zig: 0.13.0 → 0.16.0\n\n\nbuild/Dockerfile: Install Zig via `apk`\n\n\nterm: Fix features for zeroize\n\nIn `df6524e7e21027c4eb128dd2eaab0a6d70a6d76d`, default features for\n`zeroize` were disabled for the workspace in `/Cargo.toml`, accidentally\naffecting `radicle-term`, since `radicle-term` depends on\n`impl Zeroize for String` which is available on feature \"alloc\" only.\n\n\ncrypto: Add conditions for `PublicKey::to_bytes`\n\n\nflake/nixpkgs: 25.11 → 26.05\n\nRunning `cargo semver-checks` errors with\n\n    error: unsupported rustdoc format v57 for file:\n    …/heartwood/target/semver-checks/local-radicle-…/target/doc/radicle.json\n    (supported formats are v53, v55, v56)\n\nSupport for rustdoc format v57 is part of cargo-semver-checks 0.46,\nwhich is not part of NixOS 25.11, which has reached EOL.\n\nRe-point the \"nixpkgs-stable\" input to NixOS 26.05 to reach a newer\ncargo-semver-checks and a NixOS version that is supported.\n\nUpdate the flake.\n\n\ncargo/workspace: Bump crate versions\n\nIn topological order:\n\n - radicle-crypto         0.17.0 → 0.18.0\n - radicle-oid             0.2.0 →  0.2.1\n - radicle-cob            0.20.0 → 0.21.0\n - radicle-core            0.3.0 →  0.4.0\n - radicle                0.24.0 → 0.25.0\n - radicle-signals        0.11.0 → 0.12.0\n - radicle-fetch          0.20.0 → 0.21.0\n - radicle-log             0.1.0 →  0.2.0\n - radicle-term           0.18.0 → 0.19.0\n - radicle-protocol        0.8.0 →  0.9.0\n - radicle-cli-test       0.13.0 → 0.14.0\n - radicle-node           0.20.0 → 0.21.0\n - radicle-cli            0.21.0 → 0.22.0\n - radicle-schemars        0.8.0 →  0.9.0\n - radicle-remote-helper  0.17.0 → 0.18.0\n\n\nsignals: Fix Windows\n\nCommit `41d776be4120df9f84633f1d54c1a1de27624c4e` accidentally broke\n`radicle-signals` by a simple confusion of\n`std::sync::mpsc::{,Sync}Sender`.\n\n\ncli: Tighten visibility and minimize `pub use`\n\nIn `radicle-cli`, which is a binary crate (!) a few `pub use`s can be\nremoved. This forces `radicle-remote-helper` to depend on the library\ncrate `radicle-term` to access some of the types that were re-exported\nfrom `radicle-cli`, making the dependency more obvious, and minimizing\nthe public symbols on `radicle-cli`.\n\nThe dependency on `radicle-cli` cannot be removed from\n`radicle-remote-helper` easily, so is kept.\n\n\ncargo/workspace: Remove `package.authors` metadata\n\nThis field is deprecated, see\n<https://doc.rust-lang.org/cargo/reference/manifest.html#the-authors-field>.\n\n\ncargo/workspace: Reorder package metadata\n\nIn all `/crates/*/Cargo.toml`, split package metadata into two or three\nblocks:\n\n 1. name, version, and description (in this order)\n 2. Further metadata defined per crate.\n 3. References to the workspace.\n\nLines in blocks (2.) and (3.) are sorted lexicographically, and blocks\nare separated by empty lines.\n\n\ncargo/workspace: Remove homepage\n\nIn `/Cargo.toml` and all `/crates/*/Cargo.toml`, remove homepage package\nmetadata. This field is inteded to carry the *homepage of the crate*. In\nour case, no crate has an actual homepage on its own.\n\n\ncargo/workspace: Add repository metadata\n\nSome `/crates/*/Cargo.toml` were missing to inherit repository package\nmetadata from `/Cargo.toml`.\n\n\ncargo/workspace: Remove workspace version\n\nNo crate actually inherits this version number, remove it.\n\n\ncargo/workspace: Add \"no-std\" category\n\nAdd the \"no-std\" category package metadata to all crates that are\n`no_std`.\n\n\nprotocol: Calm `typos`\n\nThe `typos` spell-checker complains about \"[T]ype\" and \"[I]nitiator\".\n\nReformulate the comment to work around the issue.\n\n\nscripts/just/check-ellipses: Replace less\n\nReplacing all \"...\" with \"…\" is too aggressive.\n\n\nsurf: Copy over from radicle-git\n\nThis is the result of a simple\n\n    cp -r ../radicle-git/radicle-surf/ crates\n    rm -r crates/radicle-surf/{data,scripts,build.rs}\n\nwith the radicle-git workspace at commit\n8c5df5ecbd3f2507d323608b52e1fbf7b177d864.\n\n\nsurf: Move test files into place\n\nIn the radicle-git workspace, crates brought their own testing crates\nalong with them, usually in a subdirectory named \"t\". In the heartwood\nworkspace we use tests within the same crate.\n\nThis commit only moves files, so that it is easier to follow changes to\nthem in the upcoming commit.\n\n\nsurf: Refactor\n\nRefactor the `radicle-surf` crate to use OIDs from `radicle-oid` instead\nof `radicle-git-ext`, and `radicle-git-ref-format` instead of re-exports\nfrom `radicle-git-ext`. Also remove the dependency `radicle-std-ext`.\n\nThis requires changing `use`s, and an ad-hoc reimplementation of\n`ResultExt::or_matches`.\n\nThe remaining changes (excl. tests) are automatic via `rustfmt` and\n`cargo clippy`.\n\nFor testing, implement reconstruction of\n\n    https://github.com/radicle-dev/git-platinum\n\nin particular of the commits\n - a0dd9122d33dff2a35f564d564db127152c88e02\n - 27acd68c7504755aa11023300890bb85bbd69d45\n - e972683fe8136bf8a5cb2378cf50303554008049\nand some tags.\n\n`…/src/test/roundtrip.rs` was copied from the `test-helpers` crate in\nthe radicle-git workspace.\n\n`…/src/test/{repository.rs,gen*}` was copied from the `radicle-git-ext`\ncrate in the radicle-git workspace.\n\n\nsurf: Switch to crate in workspace\n\nNow that `radicle-surf` lives in this workspace, use it.\n\n\ngit-ref-format: Copy over from radicle-git\n\nThis is the result of\n\n    cp -r \\\n      ../radicle-git/radicle-git-ext/git-ref-format/core/src/{{cbor,check,deriv,lit,name,refspec,serde}.rs,{name,refspec}} \\\n      crates/radicle-git-ref-format/src/\n\nwith the radicle-git workspace at commit\n8c5df5ecbd3f2507d323608b52e1fbf7b177d864.\n\n\ngit-ref-format: Integrate with workspace\n\nInstead of depending on `git-ref-format-core`, the\n`radicle-git-ref-format` crate succeeds it.\n\n\ncargo/workspace: Bump crate versions\n\nIn topological order:\n\n - radicle-git-metadata     0.2.0 →  0.2.1\n - radicle-git-ref-format   0.1.0 →  0.2.0\n - radicle-oid              0.2.1 →  0.2.2\n - radicle-crypto          0.18.0 → 0.19.0\n - radicle-surf            0.28.0 → 0.29.0\n - radicle-cob             0.21.0 → 0.21.1\n - radicle-core             0.4.0 →  0.4.1\n - radicle                 0.25.0 → 0.25.1\n - radicle-signals         0.12.0 → 0.12.1\n - radicle-fetch           0.21.0 → 0.21.1\n - radicle-term            0.19.0 → 0.19.1\n - radicle-protocol         0.9.0 →  0.9.1\n - radicle-cli-test        0.14.0 → 0.14.1\n - radicle-node            0.21.0 → 0.21.1\n - radicle-cli             0.22.0 → 0.23.0\n - radicle-schemars         0.9.0 →  0.9.1\n - radicle-remote-helper   0.18.0 → 0.18.1\n\n\ncli/id: Incorporate reason for rejection\n\n\ncli/id: Add verbose output to show and list\n\n\ncli/id: Introduce `rad id cache`\n\nSimilar to `rad [issue|patch] cache`, this will re-compute cached state\nabout the identity document. The identity COB does not cache to SQLite,\nbut there is `refs/rad/id`, which can become stale.\n\n\nsurf: Ignore Rust and JSON examples\n\nThe examples do not import everything necessary to compile, so the doctests will\nfail using `no_run`.\n\nInstead, use `ignore` instead so that it does not attempt to compile the examples.\n\n\nsurf: Fix flakey test with sorted vector\n\n\nRelease 1.10.0\n\n\nbuild/config: Link `-dead_strip_dylibs` on macOS\n\n\nMove windows Command helpers to radicle-windows\n\nThe approach still feels a bit weird as we explicitly call windows\nhelpers in random places, rather than having platform-agnostic helpers,\nbut at least we don't import windows as a dependency in the other\nmodules.",
        "base": "6ba619f9a636fecfe5f30b36ebb6b8c06774d5cb",
        "oid": "41e908e59c1b7f05b9b0fd67e894f8d6f989502f",
        "timestamp": 1786300238
      },
      {
        "id": "0ed2af2c4c91010b7bcd33d5c820db726aa113ff",
        "author": {
          "id": "did:key:z6MktBiMxUQ8SP1cRWhnTVxVwM8ijac6M9P1T3BDxaeVnqjh",
          "alias": "fred-surface-win"
        },
        "description": "Fix compilation on non-windows hosts.\n\nForgot to import the only symbol in scope...",
        "base": "6ba619f9a636fecfe5f30b36ebb6b8c06774d5cb",
        "oid": "a40472d45140a54a7b336a11d1b227acae66f371",
        "timestamp": 1786302021
      }
    ]
  }
}
Ambient stdout
executor from config: /usr/bin/ambient-execute-plan
executor from PATH: /usr/bin/ambient-execute-plan
run CI for rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
CONSTRUCT: 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",
    },
    uefi: false,
    lint: false,
    secrets: None,
} Project {
    source: TildePathBuf {
        path: "src",
    },
    expanded_source: "/tmp/.tmpCR3BF1/src",
    image: TildePathBuf {
        path: "/home/_rad/ambient.qcow2",
    },
    expanded_image: "/home/_rad/ambient.qcow2",
    pre_plan: Some(
        [
            CargoFetch,
            Rustup {
                channel: Some(
                    "1.95.0",
                ),
                target: None,
                components: None,
                profile: None,
            },
            Rustup {
                channel: Some(
                    "1.95",
                ),
                target: None,
                components: None,
                profile: None,
            },
        ],
    ),
    plan: Some(
        [
            Shell {
                shell: "sed -i /components/d rust-toolchain.toml\n\n# Commit this to git so that the Debian package building doesn't\n# see changes outside the debian directory.\ngit config set user.name \"Ambient CI\"\ngit config set user.email \"ambient@example.com\"\ngit commit -m \"remove components from toolchain file\" rust-toolchain.toml\n",
            },
            CargoFmt,
            CargoClippy,
            CargoBuild,
            CargoTest,
            Shell {
                shell: "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\nexport RUSTDOCFLAGS='-D warnings'\n\ncargo doc --workspace --no-deps --all-features\n",
            },
            Shell {
                shell: "# Because of a (temporary) limitation in Ambient, we need to set\n# these variables manually. Once Ambient manages environment\n# variables better, these can be deleted.\nexport CARGO_TARGET_DIR=/workspace/cache\nexport CARGO_HOME=/workspace/deps\nexport HOME=/root\nexport PATH=\"/root/.cargo/bin:$PATH\"\n\n# These are based on debian/control.\nexport DEBEMAIL=liw@liw.fi\nexport DEBFULLNAME=\"Lars Wirzenius\"\n\n# Clean up after tests and documentation building. The Debian\n# package building tools do not want changes outside the\n# `debian` directory, compared to what is committed to Git, from\n# which the \"upstream tarball\" is created.\ngit reset --hard\ngit clean -fdx\ngit status --ignored\n\n# Update debian/changelog with a new version so that every run\n# creates a newer version. This avoids us having to update the\n# file manually for every CI run.\nV=\"$(dpkg-parsechangelog -SVersion | sed 's/-[^-]*$//')\"\nT=\"$(date -u \"+%Y%m%dT%H%M%S\")\"\nversion=\"$V.ci$T-1\"\ndch -v \"$version\" \"CI build under Ambient.\"\ndch -r ''\n",
            },
            Deb,
        ],
    ),
    post_plan: Some(
        [],
    ),
    artifact_max_size: None,
    cache_max_size: None,
    dependencies_max_size: None,
}
======================== run log:

====================== end of run log
ERROR: CI run failed inside QEMU
Ambient stderr
<empty log>

Pre-plan VM

Structured log: successful actions
  1. 0 ms: Executor starts
    • Name: ambient-execute-plan
    • Version: 0.16.0@da3268d
  2. 6 ms: Runnable plan
    steps:
    - action: mkdir
      pathname: /ci
    - action: mkdir
      pathname: /ci/artifacts
    - action: mkdir
      pathname: /ci/artifacts/debian
    - action: mkdir
      pathname: /ci/artifacts/rsync
    - action: mkdir
      pathname: /ci/secrets
    - action: mkdir
      pathname: /ci/deps
    - 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: tar_extract
      archive: /dev/vdd
      directory: /ci/artifacts
    - action: tar_extract
      archive: /dev/vdg
      directory: /ci/secrets
    - action: shell
      shell: ln -sf /ci /workspace
    - action: create_file
      filename: /root/.ssh/config
      content: "Host *\nStrictHostKeyChecking accept-new\nIdentityFile /ci/secrets/ssh_key\n                "
      overwrite: true
    - action: cargo_fetch
    - action: rustup
      channel: 1.95.0
      target: null
      components: null
      profile: null
    - action: rustup
      channel: '1.95'
      target: null
      components: null
      profile: null
    - action: tar_create
      archive: /dev/vde
      directory: /ci/cache
    - action: tar_create
      archive: /dev/vdd
      directory: /ci/artifacts
    - action: tar_create
      archive: /dev/vdf
      directory: /ci/deps
    executor_drive: /dev/vdb
    source_drive: /dev/vdc
    artifact_drive: /dev/vdd
    cache_drive: /dev/vde
    deps_drive: /dev/vdf
    secrets_drive: null
    workspace_dir: /ci
    source_dir: /ci/src
    deps_dir: /ci/deps
    cache_dir: /ci/cache
    artifacts_dir: /ci/artifacts
    secrets_dir: null
    envs: {}
    
  3. 45 ms: Execute action: mkdir: /ci
    - action: mkdir
      pathname: /ci
    
  4. 47 ms: Action succeeded: mkdir: /ci
    - action: mkdir
      pathname: /ci
    
  5. 47 ms: Execute action: mkdir: /ci/artifacts
    - action: mkdir
      pathname: /ci/artifacts
    
  6. 48 ms: Action succeeded: mkdir: /ci/artifacts
    - action: mkdir
      pathname: /ci/artifacts
    
  7. 48 ms: Execute action: mkdir: /ci/artifacts/debian
    - action: mkdir
      pathname: /ci/artifacts/debian
    
  8. 48 ms: Action succeeded: mkdir: /ci/artifacts/debian
    - action: mkdir
      pathname: /ci/artifacts/debian
    
  9. 48 ms: Execute action: mkdir: /ci/artifacts/rsync
    - action: mkdir
      pathname: /ci/artifacts/rsync
    
  10. 48 ms: Action succeeded: mkdir: /ci/artifacts/rsync
    - action: mkdir
      pathname: /ci/artifacts/rsync
    
  11. 48 ms: Execute action: mkdir: /ci/secrets
    - action: mkdir
      pathname: /ci/secrets
    
  12. 48 ms: Action succeeded: mkdir: /ci/secrets
    - action: mkdir
      pathname: /ci/secrets
    
  13. 49 ms: Execute action: mkdir: /ci/deps
    - action: mkdir
      pathname: /ci/deps
    
  14. 49 ms: Action succeeded: mkdir: /ci/deps
    - action: mkdir
      pathname: /ci/deps
    
  15. 49 ms: Execute action: tar_extract
    - action: tar_extract
      archive: /dev/vdc
      directory: /ci/src
    
  16. 202 ms: Action succeeded: tar_extract
    - action: tar_extract
      archive: /dev/vdc
      directory: /ci/src
    
  17. 203 ms: Execute action: tar_extract
    - action: tar_extract
      archive: /dev/vdf
      directory: /ci/deps
    
  18. 209 ms: Action succeeded: tar_extract
    - action: tar_extract
      archive: /dev/vdf
      directory: /ci/deps
    
  19. 209 ms: Execute action: tar_extract
    - action: tar_extract
      archive: /dev/vde
      directory: /ci/cache
    
  20. 215 ms: Action succeeded: tar_extract
    - action: tar_extract
      archive: /dev/vde
      directory: /ci/cache
    
  21. 216 ms: Execute action: tar_extract
    - action: tar_extract
      archive: /dev/vdd
      directory: /ci/artifacts
    
  22. 222 ms: Action succeeded: tar_extract
    - action: tar_extract
      archive: /dev/vdd
      directory: /ci/artifacts
    
  23. 222 ms: Execute action: tar_extract
    - action: tar_extract
      archive: /dev/vdg
      directory: /ci/secrets
    
  24. 228 ms: Action succeeded: tar_extract
    - action: tar_extract
      archive: /dev/vdg
      directory: /ci/secrets
    
  25. 228 ms: Execute action: shell: ln -sf /ci /workspace
    - action: shell
      shell: ln -sf /ci /workspace
    
  26. 228 ms: Start program: bash
    • bash
    • -c
    • set -xeuo pipefail ln -sf /ci /workspace
  27. 240 ms: Program succeeded
    • Exit code: 0
    • Stdout
    • Stderr
      + ln -sf /ci /workspace
      
  28. 240 ms: Action succeeded: shell: ln -sf /ci /workspace
    - action: shell
      shell: ln -sf /ci /workspace
    
  29. 240 ms: Execute action: create_file
    - action: create_file
      filename: /root/.ssh/config
      content: "Host *\nStrictHostKeyChecking accept-new\nIdentityFile /ci/secrets/ssh_key\n                "
      overwrite: true
    
  30. 241 ms: Action succeeded: create_file
    - action: create_file
      filename: /root/.ssh/config
      content: "Host *\nStrictHostKeyChecking accept-new\nIdentityFile /ci/secrets/ssh_key\n                "
      overwrite: true
    
  31. 241 ms: Execute action: cargo_fetch
    - action: cargo_fetch
    
  32. 241 ms: Start program: cargo
    • cargo
    • --version
  33. 13030 ms: Program succeeded
    • Exit code: 0
    • Stdout
      cargo 1.97.1 (c980f4866 2026-06-30)
      
    • Stderr
      info: syncing channel updates for 1.97.1-x86_64-unknown-linux-gnu
      info: latest update on 2026-07-16 for version 1.97.1 (8bab26f4f 2026-07-14)
      info: downloading 7 components
      
  34. 13059 ms: Start program: cargo
    • cargo
    • clippy
    • --version
  35. 13133 ms: Program succeeded
    • Exit code: 0
    • Stdout
      clippy 0.1.97 (8bab26f4f6 2026-07-14)
      
    • Stderr
  36. 13136 ms: Start program: rustc
    • rustc
    • --version
  37. 13166 ms: Program succeeded
    • Exit code: 0
    • Stdout
      rustc 1.97.1 (8bab26f4f 2026-07-14)
      
    • Stderr
  38. 13183 ms: Start program: cargo
    • cargo
    • fetch
    • --locked
  39. 19028 ms: Program succeeded
    • Exit code: 0
    • Stdout
    • Stderr
          Updating crates.io index
       Downloading crates ...
        Downloaded wasm-bindgen-shared v0.2.114
        Downloaded wasm-bindgen-macro v0.2.114
        Downloaded windows-implement v0.60.2
        Downloaded windows-collections v0.3.2
        Downloaded block-buffer v0.10.4
        Downloaded faster-hex v0.10.0
        Downloaded windows-strings v0.5.1
        Downloaded percent-encoding v2.3.2
        Downloaded qcheck-macros v1.0.0
        Downloaded rustversion v1.0.22
        Downloaded sha1 v0.10.6
        Downloaded gix-validate v0.11.1
        Downloaded hash32 v0.3.1
        Downloaded sval_serde v2.17.0
        Downloaded sval_dynamic v2.17.0
        Downloaded wasi v0.11.1+wasi-snapshot-preview1
        Downloaded ppv-lite86 v0.2.21
        Downloaded subtle v2.6.1
        Downloaded crypto-common v0.1.7
        Downloaded zeroize v1.9.0
        Downloaded version_check v0.9.5
        Downloaded same-file v1.0.6
        Downloaded redox_syscall v0.5.18
        Downloaded gix-utils v0.3.2
        Downloaded gix-trace v0.1.19
        Downloaded sval_ref v2.17.0
        Downloaded sval_json v2.17.0
        Downloaded winpipe v0.1.1
        Downloaded stable_deref_trait v1.2.1
        Downloaded wasm-bindgen v0.2.114
        Downloaded wasm-bindgen-macro-support v0.2.114
        Downloaded r-efi v5.3.0
        Downloaded siphasher v1.0.2
        Downloaded typeid v1.0.3
        Downloaded windows-numerics v0.3.1
        Downloaded windows-result v0.4.1
        Downloaded windows-threading v0.2.1
        Downloaded rand_chacha v0.3.1
        Downloaded generic-array v0.14.7
        Downloaded cpufeatures v0.2.17
        Downloaded winapi-util v0.1.11
        Downloaded parking_lot_core v0.9.12
        Downloaded lock_api v0.4.14
        Downloaded scopeguard v1.2.0
        Downloaded byteorder v1.5.0
        Downloaded value-bag-sval2 v1.12.0
        Downloaded sval_fmt v2.17.0
        Downloaded value-bag-serde1 v1.12.0
        Downloaded windows-targets v0.52.6
        Downloaded rand_core v0.9.5
        Downloaded bit-set v0.8.0
        Downloaded outref v0.5.2
        Downloaded wit-bindgen v0.51.0
        Downloaded js-sys v0.3.91
        Downloaded find-msvc-tools v0.1.9
        Downloaded serde-untagged v0.1.9
        Downloaded erased-serde v0.4.10
        Downloaded windows-core v0.62.2
        Downloaded windows-interface v0.59.3
        Downloaded windows-future v0.3.2
        Downloaded minicbor v0.13.2
        Downloaded qcheck v1.0.0
        Downloaded rand v0.8.5
        Downloaded rand_core v0.6.4
        Downloaded getrandom v0.2.17
        Downloaded gix-hash v0.25.0
        Downloaded digest v0.10.7
        Downloaded const-oid v0.9.6
        Downloaded gix-features v0.48.0
        Downloaded walkdir v2.5.0
        Downloaded parking_lot v0.12.5
        Downloaded smallvec v1.15.1
        Downloaded gix-path v0.12.0
        Downloaded crc32fast v1.5.0
        Downloaded log v0.4.29
        Downloaded value-bag v1.12.0
        Downloaded sval_nested v2.17.0
        Downloaded sval_buffer v2.17.0
        Downloaded ryu v1.0.23
        Downloaded serde_fmt v1.1.0
        Downloaded diff v0.1.13
        Downloaded uuid-simd v0.8.0
        Downloaded vsimd v0.8.0
        Downloaded num-rational v0.4.2
        Downloaded addr2line v0.25.1
        Downloaded crossbeam-utils v0.8.21
        Downloaded windows-numerics v0.2.0
        Downloaded clap_complete v4.6.0
        Downloaded clap_lex v1.1.0
        Downloaded anyhow v1.0.102
        Downloaded zmij v1.0.21
        Downloaded serde_derive_internals v0.29.1
        Downloaded dyn-clone v1.0.20
        Downloaded bumpalo v3.20.2
        Downloaded wasip2 v1.0.2+wasi-0.2.9
        Downloaded zerocopy-derive v0.8.42
        Downloaded heapless v0.8.0
        Downloaded sval v2.17.0
        Downloaded uuid v1.22.0
        Downloaded serde_core v1.0.228
        Downloaded uds_windows v1.2.1
        Downloaded typenum v1.20.1
        Downloaded prodash v31.0.0
        Downloaded referencing v0.30.0
        Downloaded num v0.4.3
        Downloaded unicode-segmentation v1.12.0
        Downloaded convert_case v0.10.0
        Downloaded colored v2.2.0
        Downloaded iana-time-zone-haiku v0.1.2
        Downloaded crossbeam-channel v0.5.15
        Downloaded schemars v1.2.1
        Downloaded schemars_derive v1.2.1
        Downloaded ref-cast v1.0.25
        Downloaded ref-cast-impl v1.0.25
        Downloaded tinyvec v1.11.0
        Downloaded tinyvec_macros v0.1.1
        Downloaded windows-link v0.2.1
        Downloaded tempfile v3.27.0
        Downloaded aho-corasick v1.1.4
        Downloaded zlib-rs v0.6.5
        Downloaded chacha20 v0.9.1
        Downloaded aead v0.5.2
        Downloaded base32 v0.4.0
        Downloaded borrow-or-share v0.2.4
        Downloaded zerofrom-derive v0.1.6
        Downloaded synstructure v0.13.2
        Downloaded yoke-derive v0.8.1
        Downloaded displaydoc v0.2.5
        Downloaded potential_utf v0.1.4
        Downloaded email_address v0.2.9
        Downloaded phf_shared v0.11.3
        Downloaded dunce v1.0.5
        Downloaded signal-hook-registry v1.4.8
        Downloaded document-features v0.2.12
        Downloaded anstyle-query v1.1.5
        Downloaded android_system_properties v0.1.5
        Downloaded streaming-iterator v0.1.9
        Downloaded form_urlencoded v1.2.2
        Downloaded serde_json v1.0.149
        Downloaded unicode-normalization v0.1.25
        Downloaded syn v1.0.109
        Downloaded vcpkg v0.2.15
        Downloaded cbc v0.1.2
        Downloaded ghash v0.5.1
        Downloaded polyval v0.6.2
        Downloaded signature v2.2.0
        Downloaded sec1 v0.7.3
        Downloaded pkcs8 v0.10.2
        Downloaded spki v0.7.3
        Downloaded base16ct v0.2.0
        Downloaded pkcs1 v0.7.5
        Downloaded num-integer v0.1.46
        Downloaded num-iter v0.1.45
        Downloaded signature v1.6.4
        Downloaded amplify v4.9.0
        Downloaded ascii v1.1.0
        Downloaded amplify_num v0.5.3
        Downloaded noise-framework v0.4.1
        Downloaded unarray v0.1.4
        Downloaded rusty-fork v0.3.1
        Downloaded wait-timeout v0.2.1
        Downloaded quick-error v1.2.3
        Downloaded rand_xorshift v0.4.0
        Downloaded nonempty v0.9.0
        Downloaded jsonschema v0.30.0
        Downloaded regex v1.12.3
        Downloaded num-cmp v0.1.0
        Downloaded utf8_iter v1.0.4
        Downloaded zerovec-derive v0.11.2
        Downloaded yoke v0.8.1
        Downloaded fast-glob v0.3.3
        Downloaded winsplit v0.1.0
        Downloaded unicode-display-width v0.3.0
        Downloaded signal-hook-mio v0.2.5
        Downloaded crossterm_winapi v0.9.1
        Downloaded tree-sitter-json v0.24.8
        Downloaded timeago v0.4.2
        Downloaded sysinfo v0.37.2
        Downloaded zerocopy v0.8.42
        Downloaded git2 v0.21.0
        Downloaded windows-result v0.2.0
        Downloaded sync-ptr v0.1.4
        Downloaded der v0.7.10
        Downloaded rsa v0.9.10
        Downloaded num-traits v0.2.19
        Downloaded amplify_derive v4.0.1
        Downloaded amplify_syn v2.0.1
        Downloaded chacha20poly1305 v0.10.1
        Downloaded fnv v1.0.7
        Downloaded rand_chacha v0.9.0
        Downloaded bit-vec v0.8.0
        Downloaded pretty_assertions v1.4.1
        Downloaded yansi v1.0.1
        Downloaded idna_adapter v1.2.1
        Downloaded zerofrom v0.1.6
        Downloaded bytesize v2.3.1
        Downloaded unit-prefix v0.5.2
        Downloaded tree-sitter-language v0.1.7
        Downloaded tree-sitter-toml-ng v0.6.0
        Downloaded thiserror-impl v1.0.69
        Downloaded tree-sitter-css v0.23.2
        Downloaded gimli v0.32.3
        Downloaded escargot v0.5.15
        Downloaded windows-link v0.1.3
        Downloaded windows-threading v0.1.0
        Downloaded bstr v1.12.1
        Downloaded regex-syntax v0.8.10
        Downloaded windows-core v0.58.0
        Downloaded windows-strings v0.1.0
        Downloaded windows-interface v0.58.0
        Downloaded windows-implement v0.58.0
        Downloaded defer-heavy v0.1.0
        Downloaded aes-gcm v0.10.3
        Downloaded aes v0.8.4
        Downloaded libm v0.2.16
        Downloaded num-bigint-dig v0.8.6
        Downloaded rustc_version v0.4.1
        Downloaded semver v1.0.27
        Downloaded curve25519-dalek-derive v0.1.1
        Downloaded match-lookup v0.1.2
        Downloaded base-x v0.2.11
        Downloaded socks5-client v0.4.3
        Downloaded keccak v0.1.6
        Downloaded rand v0.9.2
        Downloaded writeable v0.6.2
        Downloaded bytecount v0.6.9
        Downloaded web-time v1.1.0
        Downloaded tree-sitter-html v0.23.2
        Downloaded tree-sitter-highlight v0.24.7
        Downloaded thiserror v1.0.69
        Downloaded tree-sitter-go v0.23.4
        Downloaded url v2.5.8
        Downloaded hex-literal v1.1.0
        Downloaded adler2 v2.0.1
        Downloaded const-str v0.4.3
        Downloaded cypheraddr v0.4.1
        Downloaded cyphergraphy v0.3.1
        Downloaded ec25519 v0.1.0
        Downloaded ed25519 v1.5.3
        Downloaded proptest v1.10.0
        Downloaded ahash v0.8.12
        Downloaded num-complex v0.4.6
        Downloaded sem_safe v0.2.1
        Downloaded simd-adler32 v0.3.8
        Downloaded test-log v0.2.19
        Downloaded tracing-log v0.2.0
        Downloaded tracing-core v0.1.36
        Downloaded test-log-macros v0.2.19
        Downloaded colorchoice v1.0.5
        Downloaded itertools v0.14.0
        Downloaded equivalent v1.0.2
        Downloaded windows_x86_64_gnullvm v0.52.6
        Downloaded cyphernet v0.5.4
        Downloaded fluent-uri v0.3.2
        Downloaded tinystr v0.8.2
        Downloaded signals_receipts v0.2.5
        Downloaded console v0.16.3
        Downloaded iana-time-zone v0.1.65
        Downloaded tree-sitter-c v0.23.4
        Downloaded matchers v0.2.0
        Downloaded env_filter v1.0.0
        Downloaded utf8parse v0.2.2
        Downloaded is_terminal_polyfill v1.70.2
        Downloaded anstyle-wincon v3.0.11
        Downloaded once_cell_polyfill v1.70.2
        Downloaded serde_derive v1.0.228
        Downloaded itoa v1.0.17
        Downloaded errno v0.3.14
        Downloaded once_cell v1.21.4
        Downloaded cfg-if v1.0.4
        Downloaded fastrand v2.3.0
        Downloaded autocfg v1.5.0
        Downloaded sqlite v0.37.0
        Downloaded shlex v1.3.0
        Downloaded regex-automata v0.4.14
        Downloaded ssh-encoding v0.2.0
        Downloaded pem-rfc7468 v0.7.0
        Downloaded lazy_static v1.5.0
        Downloaded icu_locale_core v2.1.1
        Downloaded litemap v0.8.1
        Downloaded phf v0.11.3
        Downloaded normalize-line-endings v0.3.0
        Downloaded windows-collections v0.2.0
        Downloaded memchr v2.8.0
        Downloaded bitflags v2.11.0
        Downloaded getrandom v0.4.3
        Downloaded memoffset v0.9.1
        Downloaded thiserror v2.0.18
        Downloaded thiserror-impl v2.0.18
        Downloaded sqlite3-sys v0.18.0
        Downloaded pkg-config v0.3.32
        Downloaded jobserver v0.1.34
        Downloaded sha2 v0.10.9
        Downloaded ssh-cipher v0.2.0
        Downloaded universal-hash v0.5.1
        Downloaded opaque-debug v0.3.1
        Downloaded inout v0.1.4
        Downloaded block-padding v0.3.3
        Downloaded spin v0.9.8
        Downloaded ecdsa v0.16.9
        Downloaded rfc6979 v0.4.0
        Downloaded bcrypt-pbkdf v0.10.0
        Downloaded pbkdf2 v0.12.2
        Downloaded signal-hook v0.3.18
        Downloaded litrs v1.0.0
        Downloaded core-foundation-sys v0.8.7
        Downloaded pin-project-lite v0.2.17
        Downloaded structured-logger v1.0.5
        Downloaded bytes v1.11.1
        Downloaded snapbox v1.2.2
        Downloaded snapbox-macros v1.1.0
        Downloaded anstream v1.0.0
        Downloaded anstyle-parse v1.0.0
        Downloaded systemd-journal-logger v2.2.2
        Downloaded scrypt v0.11.0
        Downloaded salsa20 v0.10.2
        Downloaded gix-quote v0.7.1
        Downloaded humantime v2.3.0
        Downloaded human-panic v2.0.6
        Downloaded windows-core v0.61.2
        Downloaded indexmap v2.13.0
        Downloaded r-efi v6.0.0
        Downloaded getrandom v0.3.4
        Downloaded ff v0.13.1
        Downloaded ed25519 v2.2.3
        Downloaded blowfish v0.9.1
        Downloaded icu_provider v2.1.1
        Downloaded icu_normalizer v2.1.1
        Downloaded tracing-subscriber v0.3.23
        Downloaded thread_local v1.1.9
        Downloaded nu-ansi-term v0.50.3
        Downloaded anstream v0.6.21
        Downloaded anstyle-parse v0.2.7
        Downloaded socket2 v0.5.10
        Downloaded similar v3.1.1
        Downloaded gix-error v0.2.3
        Downloaded gix-packetline v0.21.3
        Downloaded gix-command v0.9.0
        Downloaded shell-words v1.1.1
        Downloaded nonempty v0.12.0
        Downloaded maybe-async v0.2.10
        Downloaded gix-shallow v0.12.0
        Downloaded gix-lock v23.0.0
        Downloaded jiff-tzdb-platform v0.1.3
        Downloaded hashbrown v0.16.1
        Downloaded cc v1.2.57
        Downloaded ssh-key v0.6.7
        Downloaded base64ct v1.8.3
        Downloaded poly1305 v0.8.0
        Downloaded ctr v0.9.2
        Downloaded primeorder v0.13.6
        Downloaded group v0.13.0
        Downloaded hmac v0.12.1
        Downloaded p256 v0.13.2
        Downloaded ssh-agent-lib v0.6.0
        Downloaded base64 v0.21.7
        Downloaded indicatif v0.18.4
        Downloaded tree-sitter-python v0.23.6
        Downloaded gix-url v0.36.0
        Downloaded gix-sec v0.14.0
        Downloaded gix-protocol v0.61.0
        Downloaded gix-hashtable v0.15.0
        Downloaded gix-actor v0.41.0
        Downloaded gix-commitgraph v0.37.0
        Downloaded memmap2 v0.9.10
        Downloaded gix-chunk v0.7.1
        Downloaded gix-glob v0.26.0
        Downloaded gix-negotiate v0.31.0
        Downloaded windows_aarch64_gnullvm v0.52.6
        Downloaded p521 v0.13.3
        Downloaded crypto-bigint v0.5.5
        Downloaded ed25519-dalek v2.2.0
        Downloaded secrecy v0.10.3
        Downloaded multibase v0.9.2
        Downloaded zerotrie v0.2.3
        Downloaded base64 v0.22.1
        Downloaded encode_unicode v1.0.0
        Downloaded tree-sitter-bash v0.23.3
        Downloaded valuable v0.1.1
        Downloaded env_logger v0.11.9
        Downloaded anstyle v1.0.14
        Downloaded portable-atomic-util v0.2.6
        Downloaded gix-prompt v0.15.0
        Downloaded gix-config-value v0.18.0
        Downloaded toml v0.9.12+spec-1.1.0
        Downloaded sha1-checked v0.10.0
        Downloaded windows_i686_gnullvm v0.52.6
        Downloaded fraction v0.15.3
        Downloaded derive_more v2.1.1
        Downloaded gix-fs v0.21.1
        Downloaded gix-revwalk v0.31.0
        Downloaded gix-date v0.15.3
        Downloaded jiff-tzdb v0.1.6
        Downloaded jiff-static v0.2.23
        Downloaded p384 v0.13.1
        Downloaded fiat-crypto v0.2.9
        Downloaded data-encoding-macro v0.1.19
        Downloaded data-encoding-macro-internal v0.1.17
        Downloaded base256emoji v1.0.2
        Downloaded icu_normalizer_data v2.1.1
        Downloaded fancy-regex v0.14.0
        Downloaded emojis v0.6.4
        Downloaded gix-tempfile v23.0.0
        Downloaded pastey v0.2.1
        Downloaded siphasher v0.3.11
        Downloaded windows_x86_64_msvc v0.52.6
        Downloaded cipher v0.4.4
        Downloaded data-encoding v2.10.0
        Downloaded icu_properties v2.1.2
        Downloaded miniz_oxide v0.8.9
        Downloaded gix-refspec v0.41.0
        Downloaded gix-revision v0.45.0
        Downloaded gix-credentials v0.38.0
        Downloaded thousands v0.2.0
        Downloaded rustc-hash v1.1.0
        Downloaded mintex v0.1.4
        Downloaded rustc-demangle v0.1.27
        Downloaded toml_writer v1.0.7+spec-1.1.0
        Downloaded serde_spanned v1.0.4
        Downloaded windows-result v0.3.4
        Downloaded toml_datetime v0.7.5+spec-1.1.0
        Downloaded inquire v0.9.4
        Downloaded either v1.15.0
        Downloaded libz-sys v1.1.25
        Downloaded curve25519-dalek v4.1.3
        Downloaded mio v1.1.1
        Downloaded gix-traverse v0.57.0
        Downloaded lexopt v0.3.2
        Downloaded dhat v0.3.3
        Downloaded backtrace v0.3.76
        Downloaded windows-strings v0.4.2
        Downloaded heck v0.5.0
        Downloaded strsim v0.11.1
        Downloaded num-bigint v0.4.6
        Downloaded sharded-slab v0.1.7
        Downloaded windows-future v0.2.1
        Downloaded clap_derive v4.6.0
        Downloaded unicode-ident v1.0.24
        Downloaded quote v1.0.45
        Downloaded icu_collections v2.1.1
        Downloaded derive_more-impl v2.1.1
        Downloaded gix-object v0.60.0
        Downloaded clap v4.6.0
        Downloaded proc-macro2 v1.0.106
        Downloaded serde v1.0.228
        Downloaded rustix v1.1.4
        Downloaded windows_i686_msvc v0.52.6
        Downloaded flate2 v1.1.9
        Downloaded elliptic-curve v0.13.8
        Downloaded ntapi v0.4.3
        Downloaded syn v2.0.117
        Downloaded gix-odb v0.80.0
        Downloaded clap_builder v4.6.0
        Downloaded gix-ref v0.63.0
        Downloaded objc2-core-foundation v0.3.2
        Downloaded windows_aarch64_msvc v0.52.6
        Downloaded zerovec v0.11.5
        Downloaded gix-diff v0.63.0
        Downloaded gix-transport v0.57.0
        Downloaded windows_i686_gnu v0.52.6
        Downloaded crossterm v0.29.0
        Downloaded object v0.37.3
        Downloaded arc-swap v1.9.1
        Downloaded sha3 v0.10.8
        Downloaded idna v1.1.0
        Downloaded icu_properties_data v2.1.2
        Downloaded libc v0.2.183
        Downloaded tree-sitter v0.24.7
        Downloaded portable-atomic v1.13.1
        Downloaded jiff v0.2.23
        Downloaded gix-pack v0.70.0
        Downloaded chrono v0.4.44
        Downloaded libgit2-sys v0.18.4+1.9.3
        Downloaded unicode-width v0.2.2
        Downloaded tree-sitter-md v0.3.2
        Downloaded objc2-io-kit v0.3.2
        Downloaded tree-sitter-rust v0.23.3
        Downloaded windows-sys v0.61.2
        Downloaded bloomy v1.2.0
        Downloaded windows-sys v0.52.0
        Downloaded sqlite3-src v0.7.0
        Downloaded linux-raw-sys v0.12.1
        Downloaded tracing v0.1.44
        Downloaded tree-sitter-ruby v0.23.1
        Downloaded windows_x86_64_gnu v0.52.6
        Downloaded tree-sitter-typescript v0.23.2
        Downloaded tokio v1.50.0
        Downloaded winapi v0.3.9
        Downloaded windows v0.62.2
        Downloaded windows v0.61.3
        Downloaded windows v0.58.0
        Downloaded windows-sys v0.59.0
        Downloaded winapi-i686-pc-windows-gnu v0.4.0
        Downloaded winapi-x86_64-pc-windows-gnu v0.4.0
      
  40. 19243 ms: Action succeeded: cargo_fetch
    - action: cargo_fetch
    
  41. 19245 ms: Execute action: rustup
    - action: rustup
      channel: 1.95.0
      target: null
      components: null
      profile: null
    
  42. 19247 ms: Debug
    'rustup Rustup { channel: "1.95.0", target: None, components: None, profile: None }'
    
  43. 19250 ms: Start program: rustup
    • rustup
    • install
    • 1.95.0
FAILURE
  1. 19254 ms: Program failed
    • Exit code: killed by signal
    • Stdout
    • Stderr
      command does not exist: "rustup"
  2. 19256 ms: Action failed: rustup
    - action: rustup
      channel: 1.95.0
      target: null
      components: null
      profile: null
    
  3. 19261 ms: Executor ends in failure
    • Exit code: 1
Console log
BdsDxe: 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(0x3,0x0)
BdsDxe: starting Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x3,0x0)
  Booting `Debian GNU/Linux'

Loading Linux 6.12.86+deb13-amd64 ...
Loading initial ramdisk ...
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
Loading, please wait...
Starting systemd-udevd version 257.13-1~deb13u1
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... done.
Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done.
Begin: Running /scripts/local-premount ... done.
Begin: Will now check root file system ... fsck from util-linux 2.41
fsck: error 2 (No such file or directory) while executing fsck.ext4 for /dev/vda2
fsck exited with status code 8
done.
Warning: File system check failed but did not detect errors
done.
Begin: Running /scripts/local-bottom ... done.
Begin: Running /scripts/init-bottom ... done.

Welcome to Debian GNU/Linux 13 (trixie)!

[  OK  ] Created slice system-getty.slice - Slice /system/getty.
[  OK  ] Created slice system-modprobe.slice - Slice /system/modprobe.
[  OK  ] Created slice system-serial\x2dget…slice - Slice /system/serial-getty.
[  OK  ] Created slice user.slice - User and Session Slice.
[  OK  ] Started systemd-ask-password-conso…equests to Console Directory Watch.
[  OK  ] Started systemd-ask-password-wall.…d Requests to Wall Directory Watch.
[  OK  ] Set up automount proc-sys-fs-binfm…ormats File System Automount Point.
         Expecting device dev-ttyS0.device - /dev/ttyS0...
[  OK  ] Reached target paths.target - Path Units.
[  OK  ] Reached target remote-fs.target - Remote File Systems.
[  OK  ] Reached target slices.target - Slice Units.
[  OK  ] Reached target swap.target - Swaps.
[  OK  ] Listening on systemd-creds.socket - Credential Encryption/Decryption.
[  OK  ] Listening on systemd-initctl.socke…- initctl Compatibility Named Pipe.
[  OK  ] Listening on systemd-journald-dev-…socket - Journal Socket (/dev/log).
[  OK  ] Listening on systemd-journald.socket - Journal Sockets.
[  OK  ] Listening on systemd-networkd.socket - Network Service Netlink Socket.
[  OK  ] Listening on systemd-udevd-control.socket - udev Control Socket.
[  OK  ] Listening on systemd-udevd-kernel.socket - udev Kernel Socket.
         Mounting dev-hugepages.mount - Huge Pages File System...
         Mounting dev-mqueue.mount - POSIX Message Queue File System...
         Mounting run-lock.mount - Legacy Locks Directory /run/lock...
         Mounting sys-kernel-debug.mount - Kernel Debug File System...
         Mounting sys-kernel-tracing.mount - Kernel Trace File System...
         Mounting tmp.mount - Temporary Directory /tmp...
         Starting kmod-static-nodes.service…eate List of Static Device Nodes...
         Starting modprobe@configfs.service - Load Kernel Module configfs...
         Starting modprobe@drm.service - Load Kernel Module drm...
         Starting modprobe@efi_pstore.servi… - Load Kernel Module efi_pstore...
         Starting modprobe@fuse.service - Load Kernel Module fuse...
         Starting systemd-journald.service - Journal Service...
         Starting systemd-modules-load.service - Load Kernel Modules...
         Starting systemd-network-generator…k Units from Kernel Command Line...
         Starting systemd-remount-fs.servic…unt Root and Kernel File Systems...
         Starting systemd-udev-load-credent…Load udev Rules from Credentials...
         Starting systemd-udev-trigger.service - Coldplug All udev Devices...
[  OK  ] Mounted dev-hugepages.mount - Huge Pages File System.
[  OK  ] Mounted dev-mqueue.mount - POSIX Message Queue File System.
[  OK  ] Mounted run-lock.mount - Legacy Locks Directory /run/lock.
[  OK  ] Mounted sys-kernel-debug.mount - Kernel Debug File System.
[  OK  ] Mounted sys-kernel-tracing.mount - Kernel Trace File System.
[  OK  ] Mounted tmp.mount - Temporary Directory /tmp.
[  OK  ] Finished kmod-static-nodes.service…Create List of Static Device Nodes.
[  OK  ] Finished modprobe@configfs.service - Load Kernel Module configfs.
[  OK  ] Finished modprobe@drm.service - Load Kernel Module drm.
[  OK  ] Finished modprobe@efi_pstore.service - Load Kernel Module efi_pstore.
[  OK  ] Finished modprobe@fuse.service - Load Kernel Module fuse.
[  OK  ] Finished systemd-modules-load.service - Load Kernel Modules.
[  OK  ] Finished systemd-network-generator…ork Units from Kernel Command Line.
[  OK  ] Finished systemd-remount-fs.servic…mount Root and Kernel File Systems.
[  OK  ] Finished systemd-udev-load-credent…- Load udev Rules from Credentials.
[  OK  ] Reached target network-pre.target - Preparation for Network.
         Mounting sys-fs-fuse-connections.mount - FUSE Control File System...
         Mounting sys-kernel-config.mount - Kernel Configuration File System...
         Starting systemd-random-seed.service - Load/Save OS Random Seed...
         Starting systemd-sysctl.service - Apply Kernel Variables...
         Starting systemd-tmpfiles-setup-de… Device Nodes in /dev gracefully...
[  OK  ] Started systemd-journald.service - Journal Service.
[  OK  ] Mounted sys-fs-fuse-connections.mount - FUSE Control File System.
[  OK  ] Mounted sys-kernel-config.mount - Kernel Configuration File System.
         Starting systemd-journal-flush.ser…sh Journal to Persistent Storage...
[  OK  ] Finished systemd-udev-trigger.service - Coldplug All udev Devices.
[  OK  ] Finished systemd-sysctl.service - Apply Kernel Variables.
[  OK  ] Finished systemd-tmpfiles-setup-de…ic Device Nodes in /dev gracefully.
         Starting systemd-sysusers.service - Create System Users...
[  OK  ] Finished systemd-random-seed.service - Load/Save OS Random Seed.
[  OK  ] Finished systemd-sysusers.service - Create System Users.
         Starting systemd-resolved.service - Network Name Resolution...
         Starting systemd-tmpfiles-setup-de…eate Static Device Nodes in /dev...
[  OK  ] Finished systemd-journal-flush.ser…lush Journal to Persistent Storage.
[  OK  ] Finished systemd-tmpfiles-setup-de…Create Static Device Nodes in /dev.
[  OK  ] Reached target local-fs-pre.target…Preparation for Local File Systems.
[  OK  ] Set up automount efi.automount - EFI System Partition Automount.
[  OK  ] Reached target local-fs.target - Local File Systems.
[  OK  ] Listening on systemd-sysext.socket… System Extension Image Management.
         Starting systemd-binfmt.service - Set Up Additional Binary Formats...
         Starting systemd-tmpfiles-setup.se…ate System Files and Directories...
         Starting systemd-udevd.service - R…ager for Device Events and Files...
[  OK  ] Started systemd-resolved.service - Network Name Resolution.
[  OK  ] Reached target nss-lookup.target - Host and Network Name Lookups.
[  OK  ] Finished systemd-tmpfiles-setup.se…reate System Files and Directories.
         Starting ldconfig.service - Rebuild Dynamic Linker Cache...
         Starting systemd-journal-catalog-u…ervice - Rebuild Journal Catalog...
[  OK  ] Started systemd-udevd.service - Ru…anager for Device Events and Files.
         Starting systemd-networkd.service - Network Configuration...
[  OK  ] Finished systemd-journal-catalog-u….service - Rebuild Journal Catalog.
[  OK  ] Found device dev-ttyS0.device - /dev/ttyS0.
[  OK  ] Finished ldconfig.service - Rebuild Dynamic Linker Cache.
         Starting systemd-update-done.service - Update is Completed...
[  OK  ] Finished systemd-update-done.service - Update is Completed.
         Mounting proc-sys-fs-binfmt_misc.m…cutable File Formats File System...
[  OK  ] Mounted proc-sys-fs-binfmt_misc.mo…xecutable File Formats File System.
[  OK  ] Finished systemd-binfmt.service - Set Up Additional Binary Formats.
[  OK  ] Reached target sysinit.target - System Initialization.
[  OK  ] Started apt-daily.timer - Daily apt download activities.
[  OK  ] Started apt-daily-upgrade.timer - …y apt upgrade and clean activities.
[  OK  ] Started dpkg-db-backup.timer - Daily dpkg database backup timer.
[  OK  ] Started fstrim.timer - Discard unused filesystem blocks once a week.
[  OK  ] Started man-db.timer - Daily man-db regeneration.
[  OK  ] Started systemd-tmpfiles-clean.tim…y Cleanup of Temporary Directories.
[  OK  ] Reached target timers.target - Timer Units.
[  OK  ] Listening on dbus.socket - D-Bus System Message Bus Socket.
[  OK  ] Listening on sshd-unix-local.socke…temd-ssh-generator, AF_UNIX Local).
[  OK  ] Listening on systemd-hostnamed.socket - Hostname Service Socket.
[  OK  ] Reached target sockets.target - Socket Units.
[  OK  ] Reached target basic.target - Basic System.
         Starting ambient.service - Run build job for Ambient CI...
         Starting dbus.service - D-Bus System Message Bus...
         Starting grub-common.service - Record successful boot for GRUB...
         Starting systemd-logind.service - User Login Management...
[  OK  ] Started dbus.service - D-Bus System Message Bus.
[  OK  ] Listening on systemd-rfkill.socket…ll Switch Status /dev/rfkill Watch.
[  OK  ] Started systemd-networkd.service - Network Configuration.
[  OK  ] Reached target network.target - Network.
         Starting ssh.service - OpenBSD Secure Shell server...
         Starting systemd-networkd-persiste…tent Storage in systemd-networkd...
         Starting systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Started systemd-logind.service - User Login Management.
[  OK  ] Finished grub-common.service - Record successful boot for GRUB.
[  OK  ] Finished systemd-networkd-persiste…istent Storage in systemd-networkd.
[  OK  ] Finished systemd-user-sessions.service - Permit User Sessions.
[  OK  ] Started getty@tty1.service - Getty on tty1.
[  OK  ] Started serial-getty@ttyS0.service - Serial Getty on ttyS0.
[  OK  ] Reached target getty.target - Login Prompts.
[  OK  ] Started ssh.service - OpenBSD Secure Shell server.

Debian GNU/Linux 13 ambient-dev ttyS0

ambient-dev login: [  OK  ] Stopped ambient.service - Run build job for Ambient CI.
[  OK  ] Removed slice system-modprobe.slice - Slice /system/modprobe.
[  OK  ] Stopped target getty.target - Login Prompts.
[  OK  ] Stopped target nss-lookup.target - Host and Network Name Lookups.
[  OK  ] Stopped target timers.target - Timer Units.
[  OK  ] Stopped apt-daily-upgrade.timer - …y apt upgrade and clean activities.         Stopping systemd-logind.service - User Login Management...
         Stopping systemd-networkd-persiste…tent Storage in systemd-networkd...
         Stopping systemd-random-seed.service - Load/Save OS Random Seed...
[  OK  ] Stopped systemd-udev-load-credenti…- Load udev Rules from Credentials.
[  OK  ] Stopped getty@tty1.service - Getty on tty1.
[  OK  ] Stopped dbus.service - D-Bus System Message Bus.
[  OK  ] Stopped systemd-logind.service - User Login Management.
[  OK  ] Stopped serial-getty@ttyS0.service - Serial Getty on ttyS0.
[  OK  ] Stopped ssh.service - OpenBSD Secure Shell server.
[  OK  ] Stopped systemd-networkd-persisten…istent Storage in systemd-networkd.
[  OK  ] Stopped systemd-random-seed.service - Load/Save OS Random Seed.
[  OK  ] Removed slice system-getty.slice - Slice /system/getty.
[  OK  ] Removed slice system-serial\x2dget…slice - Slice /system/serial-getty.
         Stopping systemd-user-sessions.service - Permit User Sessions...
[  OK  ] Stopped systemd-user-sessions.service - Permit User Sessions.
[  OK  ] Stopped target basic.target - Basic System.
[  OK  ] Stopped target network.target - Network.
[  OK  ] Stopped target paths.target - Path Units.
[  OK  ] Stopped systemd-ask-password-conso…equests to Console Directory Watch.
[  OK  ] Stopped systemd-ask-password-wall.…d Requests to Wall Directory Watch.
[  OK  ] Stopped target remote-fs.target - Remote File Systems.
[  OK  ] Stopped target slices.target - Slice Units.
[  OK  ] Removed slice user.slice - User and Session Slice.
[  OK  ] Stopped target sockets.target - Socket Units.
[  OK  ] Closed dbus.socket - D-Bus System Message Bus Socket.
[  OK  ] Closed sshd-unix-local.socket - Op…temd-ssh-generator, AF_UNIX Local).
[  OK  ] Closed systemd-hostnamed.socket - Hostname Service Socket.
[  OK  ] Stopped target sysinit.target - System Initialization.
         Stopping systemd-binfmt.service - Set Up Additional Binary Formats...
         Stopping systemd-networkd.service - Network Configuration...
         Stopping systemd-resolved.service - Network Name Resolution...
[  OK  ] Stopped systemd-update-done.service - Update is Completed.
[  OK  ] Stopped ldconfig.service - Rebuild Dynamic Linker Cache.
[  OK  ] Stopped systemd-journal-catalog-up….service - Rebuild Journal Catalog.
[  OK  ] Stopped systemd-tmpfiles-setup.ser…reate System Files and Directories.
[  OK  ] Stopped systemd-resolved.service - Network Name Resolution.
[  OK  ] Stopped systemd-binfmt.service - Set Up Additional Binary Formats.
[  OK  ] Unset automount proc-sys-fs-binfmt…ormats File System Automount Point.
[  OK  ] Stopped target local-fs.target - Local File Systems.
[  OK  ] Unset automount efi.automount - EFI System Partition Automount.
[  OK  ] Stopped target local-fs-pre.target…Preparation for Local File Systems.
         Unmounting run-lock.mount - Legacy Locks Directory /run/lock...
         Unmounting tmp.mount - Temporary Directory /tmp...
[  OK  ] Stopped systemd-tmpfiles-setup-dev…Create Static Device Nodes in /dev.
[  OK  ] Stopped systemd-networkd.service - Network Configuration.
[  OK  ] Stopped target network-pre.target - Preparation for Network.
[  OK  ] Closed systemd-networkd.socket - Network Service Netlink Socket.
[  OK  ] Stopped systemd-network-generator.…ork Units from Kernel Command Line.
[  OK  ] Stopped systemd-sysctl.service - Apply Kernel Variables.
[  OK  ] Stopped systemd-modules-load.service - Load Kernel Modules.
[  OK  ] Stopped systemd-sysusers.service - Create System Users.
[  OK  ] Stopped systemd-remount-fs.service…mount Root and Kernel File Systems.
[  OK  ] Stopped systemd-tmpfiles-setup-dev…ic Device Nodes in /dev gracefully.
[  OK  ] Unmounted tmp.mount - Temporary Directory /tmp.
[  OK  ] Unmounted run-lock.mount - Legacy Locks Directory /run/lock.
[  OK  ] Stopped target swap.target - Swaps.
[  OK  ] Reached target shutdown.target - System Shutdown.
[  OK  ] Reached target umount.target - Unmount All Filesystems.
[  OK  ] Reached target final.target - Late Shutdown Services.
[  OK  ] Finished systemd-poweroff.service - System Power Off.
[  OK  ] Reached target poweroff.target - System Power Off.
[   28.239642] reboot: Power down
Raw run log
BdsDxe: 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(0x3,0x0)
BdsDxe: starting Boot0002 "UEFI Misc Device" from PciRoot(0x0)/Pci(0x3,0x0)
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
INFO: Block devices
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sr0     11:0    1   372K  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   5.3M  1 disk 
vdc    254:32   0    62M  1 disk 
vdd    254:48   0 953.7M  0 disk 
vde    254:64   0  27.9G  0 disk 
vdf    254:80   0   100G  0 disk 
vdg    254:96   0    10K  1 disk 
INFO: Extracting tar archive from /dev/vdb
drwxr-xr-x _rad/_rad         0 2026-08-09 19:00 ./
-rw-r--r-- _rad/_rad      1464 2026-08-09 19:00 ./plan.yaml
-rwxr-xr-x _rad/_rad   5525824 2026-08-09 19:00 ./run-ci
INFO: Extracted files:
        8      0 drwxr-xr-x   2 1000     1000           80 Aug  9 19:00 .
       10   5400 -rwxr-xr-x   1 1000     1000      5525824 Aug  9 19:00 ./run-ci
        9      4 -rw-r--r--   1 1000     1000         1464 Aug  9 19:00 ./plan.yaml
INFO: Running run-ci from /dev/vdb
================================ BEGIN ================================
{"type":"executor_starts","name":"ambient-execute-plan","version":"0.16.0@da3268d","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":728059325},"log_source":"Plan"}
{"type":"runnable_plan","steps":[{"action":"mkdir","pathname":"/ci"},{"action":"mkdir","pathname":"/ci/artifacts"},{"action":"mkdir","pathname":"/ci/artifacts/debian"},{"action":"mkdir","pathname":"/ci/artifacts/rsync"},{"action":"mkdir","pathname":"/ci/secrets"},{"action":"mkdir","pathname":"/ci/deps"},{"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":"tar_extract","archive":"/dev/vdd","directory":"/ci/artifacts"},{"action":"tar_extract","archive":"/dev/vdg","directory":"/ci/secrets"},{"action":"shell","shell":"ln -sf /ci /workspace"},{"action":"create_file","filename":"/root/.ssh/config","content":"Host *\nStrictHostKeyChecking accept-new\nIdentityFile /ci/secrets/ssh_key\n                ","overwrite":true},{"action":"cargo_fetch"},{"action":"rustup","channel":"1.95.0","target":null,"components":null,"profile":null},{"action":"rustup","channel":"1.95","target":null,"components":null,"profile":null},{"action":"tar_create","archive":"/dev/vde","directory":"/ci/cache"},{"action":"tar_create","archive":"/dev/vdd","directory":"/ci/artifacts"},{"action":"tar_create","archive":"/dev/vdf","directory":"/ci/deps"}],"executor_drive":"/dev/vdb","source_drive":"/dev/vdc","artifact_drive":"/dev/vdd","cache_drive":"/dev/vde","deps_drive":"/dev/vdf","secrets_drive":null,"workspace_dir":"/ci","source_dir":"/ci/src","deps_dir":"/ci/deps","cache_dir":"/ci/cache","artifacts_dir":"/ci/artifacts","secrets_dir":null,"envs":{},"timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":734459560},"log_source":"Plan"}
{"type":"execute_action","action":"mkdir","pathname":"/ci","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":773065628},"log_source":"Plan"}
{"type":"action_succeeded","action":"mkdir","pathname":"/ci","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":775558397},"log_source":"Plan"}
{"type":"execute_action","action":"mkdir","pathname":"/ci/artifacts","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":776007074},"log_source":"Plan"}
{"type":"action_succeeded","action":"mkdir","pathname":"/ci/artifacts","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":776248196},"log_source":"Plan"}
{"type":"execute_action","action":"mkdir","pathname":"/ci/artifacts/debian","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":776429653},"log_source":"Plan"}
{"type":"action_succeeded","action":"mkdir","pathname":"/ci/artifacts/debian","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":776460376},"log_source":"Plan"}
{"type":"execute_action","action":"mkdir","pathname":"/ci/artifacts/rsync","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":776658791},"log_source":"Plan"}
{"type":"action_succeeded","action":"mkdir","pathname":"/ci/artifacts/rsync","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":776683803},"log_source":"Plan"}
{"type":"execute_action","action":"mkdir","pathname":"/ci/secrets","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":776871408},"log_source":"Plan"}
{"type":"action_succeeded","action":"mkdir","pathname":"/ci/secrets","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":776901577},"log_source":"Plan"}
{"type":"execute_action","action":"mkdir","pathname":"/ci/deps","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":777084468},"log_source":"Plan"}
{"type":"action_succeeded","action":"mkdir","pathname":"/ci/deps","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":777109011},"log_source":"Plan"}
{"type":"execute_action","action":"tar_extract","archive":"/dev/vdc","directory":"/ci/src","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":777297684},"log_source":"Plan"}
{"type":"action_succeeded","action":"tar_extract","archive":"/dev/vdc","directory":"/ci/src","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":930884885},"log_source":"Plan"}
{"type":"execute_action","action":"tar_extract","archive":"/dev/vdf","directory":"/ci/deps","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":931346612},"log_source":"Plan"}
{"type":"action_succeeded","action":"tar_extract","archive":"/dev/vdf","directory":"/ci/deps","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":937467734},"log_source":"Plan"}
{"type":"execute_action","action":"tar_extract","archive":"/dev/vde","directory":"/ci/cache","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":937924530},"log_source":"Plan"}
{"type":"action_succeeded","action":"tar_extract","archive":"/dev/vde","directory":"/ci/cache","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":943837749},"log_source":"Plan"}
{"type":"execute_action","action":"tar_extract","archive":"/dev/vdd","directory":"/ci/artifacts","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":944280433},"log_source":"Plan"}
{"type":"action_succeeded","action":"tar_extract","archive":"/dev/vdd","directory":"/ci/artifacts","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":950314642},"log_source":"Plan"}
{"type":"execute_action","action":"tar_extract","archive":"/dev/vdg","directory":"/ci/secrets","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":950755356},"log_source":"Plan"}
{"type":"action_succeeded","action":"tar_extract","archive":"/dev/vdg","directory":"/ci/secrets","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":956581613},"log_source":"Plan"}
{"type":"execute_action","action":"shell","shell":"ln -sf /ci /workspace","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":957019806},"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":1786302052,"nanos_since_epoch":957031267},"log_source":"Plan"}
{"type":"program_succeeded","exit_code":0,"stdout":"","stderr":"+ ln -sf /ci /workspace\n","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":968179589},"log_source":"Plan"}
{"type":"action_succeeded","action":"shell","shell":"ln -sf /ci /workspace","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":968630289},"log_source":"Plan"}
{"type":"execute_action","action":"create_file","filename":"/root/.ssh/config","content":"Host *\nStrictHostKeyChecking accept-new\nIdentityFile /ci/secrets/ssh_key\n                ","overwrite":true,"timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":968840719},"log_source":"Plan"}
{"type":"action_succeeded","action":"create_file","filename":"/root/.ssh/config","content":"Host *\nStrictHostKeyChecking accept-new\nIdentityFile /ci/secrets/ssh_key\n                ","overwrite":true,"timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":969261813},"log_source":"Plan"}
{"type":"execute_action","action":"cargo_fetch","timestamp":{"secs_since_epoch":1786302052,"nanos_since_epoch":969335596},"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":1786302052,"nanos_since_epoch":969343335},"log_source":"Plan"}
{"type":"program_succeeded","exit_code":0,"stdout":"cargo 1.97.1 (c980f4866 2026-06-30)\n","stderr":"info: syncing channel updates for 1.97.1-x86_64-unknown-linux-gnu\ninfo: latest update on 2026-07-16 for version 1.97.1 (8bab26f4f 2026-07-14)\ninfo: downloading 7 components\n","timestamp":{"secs_since_epoch":1786302065,"nanos_since_epoch":758912946},"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":1786302065,"nanos_since_epoch":787080415},"log_source":"Plan"}
{"type":"program_succeeded","exit_code":0,"stdout":"clippy 0.1.97 (8bab26f4f6 2026-07-14)\n","stderr":"","timestamp":{"secs_since_epoch":1786302065,"nanos_since_epoch":861515475},"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":1786302065,"nanos_since_epoch":864247764},"log_source":"Plan"}
{"type":"program_succeeded","exit_code":0,"stdout":"rustc 1.97.1 (8bab26f4f 2026-07-14)\n","stderr":"","timestamp":{"secs_since_epoch":1786302065,"nanos_since_epoch":894403442},"log_source":"Plan"}
copying relevant files to /tmp/.tmpwuPuvk
{"type":"start_program","argv":[{"Unix":[99,97,114,103,111]},{"Unix":[102,101,116,99,104]},{"Unix":[45,45,108,111,99,107,101,100]}],"timestamp":{"secs_since_epoch":1786302065,"nanos_since_epoch":911361550},"log_source":"Plan"}
{"type":"program_succeeded","exit_code":0,"stdout":"","stderr":"    Updating crates.io index\n Downloading crates ...\n  Downloaded wasm-bindgen-shared v0.2.114\n  Downloaded wasm-bindgen-macro v0.2.114\n  Downloaded windows-implement v0.60.2\n  Downloaded windows-collections v0.3.2\n  Downloaded block-buffer v0.10.4\n  Downloaded faster-hex v0.10.0\n  Downloaded windows-strings v0.5.1\n  Downloaded percent-encoding v2.3.2\n  Downloaded qcheck-macros v1.0.0\n  Downloaded rustversion v1.0.22\n  Downloaded sha1 v0.10.6\n  Downloaded gix-validate v0.11.1\n  Downloaded hash32 v0.3.1\n  Downloaded sval_serde v2.17.0\n  Downloaded sval_dynamic v2.17.0\n  Downloaded wasi v0.11.1+wasi-snapshot-preview1\n  Downloaded ppv-lite86 v0.2.21\n  Downloaded subtle v2.6.1\n  Downloaded crypto-common v0.1.7\n  Downloaded zeroize v1.9.0\n  Downloaded version_check v0.9.5\n  Downloaded same-file v1.0.6\n  Downloaded redox_syscall v0.5.18\n  Downloaded gix-utils v0.3.2\n  Downloaded gix-trace v0.1.19\n  Downloaded sval_ref v2.17.0\n  Downloaded sval_json v2.17.0\n  Downloaded winpipe v0.1.1\n  Downloaded stable_deref_trait v1.2.1\n  Downloaded wasm-bindgen v0.2.114\n  Downloaded wasm-bindgen-macro-support v0.2.114\n  Downloaded r-efi v5.3.0\n  Downloaded siphasher v1.0.2\n  Downloaded typeid v1.0.3\n  Downloaded windows-numerics v0.3.1\n  Downloaded windows-result v0.4.1\n  Downloaded windows-threading v0.2.1\n  Downloaded rand_chacha v0.3.1\n  Downloaded generic-array v0.14.7\n  Downloaded cpufeatures v0.2.17\n  Downloaded winapi-util v0.1.11\n  Downloaded parking_lot_core v0.9.12\n  Downloaded lock_api v0.4.14\n  Downloaded scopeguard v1.2.0\n  Downloaded byteorder v1.5.0\n  Downloaded value-bag-sval2 v1.12.0\n  Downloaded sval_fmt v2.17.0\n  Downloaded value-bag-serde1 v1.12.0\n  Downloaded windows-targets v0.52.6\n  Downloaded rand_core v0.9.5\n  Downloaded bit-set v0.8.0\n  Downloaded outref v0.5.2\n  Downloaded wit-bindgen v0.51.0\n  Downloaded js-sys v0.3.91\n  Downloaded find-msvc-tools v0.1.9\n  Downloaded serde-untagged v0.1.9\n  Downloaded erased-serde v0.4.10\n  Downloaded windows-core v0.62.2\n  Downloaded windows-interface v0.59.3\n  Downloaded windows-future v0.3.2\n  Downloaded minicbor v0.13.2\n  Downloaded qcheck v1.0.0\n  Downloaded rand v0.8.5\n  Downloaded rand_core v0.6.4\n  Downloaded getrandom v0.2.17\n  Downloaded gix-hash v0.25.0\n  Downloaded digest v0.10.7\n  Downloaded const-oid v0.9.6\n  Downloaded gix-features v0.48.0\n  Downloaded walkdir v2.5.0\n  Downloaded parking_lot v0.12.5\n  Downloaded smallvec v1.15.1\n  Downloaded gix-path v0.12.0\n  Downloaded crc32fast v1.5.0\n  Downloaded log v0.4.29\n  Downloaded value-bag v1.12.0\n  Downloaded sval_nested v2.17.0\n  Downloaded sval_buffer v2.17.0\n  Downloaded ryu v1.0.23\n  Downloaded serde_fmt v1.1.0\n  Downloaded diff v0.1.13\n  Downloaded uuid-simd v0.8.0\n  Downloaded vsimd v0.8.0\n  Downloaded num-rational v0.4.2\n  Downloaded addr2line v0.25.1\n  Downloaded crossbeam-utils v0.8.21\n  Downloaded windows-numerics v0.2.0\n  Downloaded clap_complete v4.6.0\n  Downloaded clap_lex v1.1.0\n  Downloaded anyhow v1.0.102\n  Downloaded zmij v1.0.21\n  Downloaded serde_derive_internals v0.29.1\n  Downloaded dyn-clone v1.0.20\n  Downloaded bumpalo v3.20.2\n  Downloaded wasip2 v1.0.2+wasi-0.2.9\n  Downloaded zerocopy-derive v0.8.42\n  Downloaded heapless v0.8.0\n  Downloaded sval v2.17.0\n  Downloaded uuid v1.22.0\n  Downloaded serde_core v1.0.228\n  Downloaded uds_windows v1.2.1\n  Downloaded typenum v1.20.1\n  Downloaded prodash v31.0.0\n  Downloaded referencing v0.30.0\n  Downloaded num v0.4.3\n  Downloaded unicode-segmentation v1.12.0\n  Downloaded convert_case v0.10.0\n  Downloaded colored v2.2.0\n  Downloaded iana-time-zone-haiku v0.1.2\n  Downloaded crossbeam-channel v0.5.15\n  Downloaded schemars v1.2.1\n  Downloaded schemars_derive v1.2.1\n  Downloaded ref-cast v1.0.25\n  Downloaded ref-cast-impl v1.0.25\n  Downloaded tinyvec v1.11.0\n  Downloaded tinyvec_macros v0.1.1\n  Downloaded windows-link v0.2.1\n  Downloaded tempfile v3.27.0\n  Downloaded aho-corasick v1.1.4\n  Downloaded zlib-rs v0.6.5\n  Downloaded chacha20 v0.9.1\n  Downloaded aead v0.5.2\n  Downloaded base32 v0.4.0\n  Downloaded borrow-or-share v0.2.4\n  Downloaded zerofrom-derive v0.1.6\n  Downloaded synstructure v0.13.2\n  Downloaded yoke-derive v0.8.1\n  Downloaded displaydoc v0.2.5\n  Downloaded potential_utf v0.1.4\n  Downloaded email_address v0.2.9\n  Downloaded phf_shared v0.11.3\n  Downloaded dunce v1.0.5\n  Downloaded signal-hook-registry v1.4.8\n  Downloaded document-features v0.2.12\n  Downloaded anstyle-query v1.1.5\n  Downloaded android_system_properties v0.1.5\n  Downloaded streaming-iterator v0.1.9\n  Downloaded form_urlencoded v1.2.2\n  Downloaded serde_json v1.0.149\n  Downloaded unicode-normalization v0.1.25\n  Downloaded syn v1.0.109\n  Downloaded vcpkg v0.2.15\n  Downloaded cbc v0.1.2\n  Downloaded ghash v0.5.1\n  Downloaded polyval v0.6.2\n  Downloaded signature v2.2.0\n  Downloaded sec1 v0.7.3\n  Downloaded pkcs8 v0.10.2\n  Downloaded spki v0.7.3\n  Downloaded base16ct v0.2.0\n  Downloaded pkcs1 v0.7.5\n  Downloaded num-integer v0.1.46\n  Downloaded num-iter v0.1.45\n  Downloaded signature v1.6.4\n  Downloaded amplify v4.9.0\n  Downloaded ascii v1.1.0\n  Downloaded amplify_num v0.5.3\n  Downloaded noise-framework v0.4.1\n  Downloaded unarray v0.1.4\n  Downloaded rusty-fork v0.3.1\n  Downloaded wait-timeout v0.2.1\n  Downloaded quick-error v1.2.3\n  Downloaded rand_xorshift v0.4.0\n  Downloaded nonempty v0.9.0\n  Downloaded jsonschema v0.30.0\n  Downloaded regex v1.12.3\n  Downloaded num-cmp v0.1.0\n  Downloaded utf8_iter v1.0.4\n  Downloaded zerovec-derive v0.11.2\n  Downloaded yoke v0.8.1\n  Downloaded fast-glob v0.3.3\n  Downloaded winsplit v0.1.0\n  Downloaded unicode-display-width v0.3.0\n  Downloaded signal-hook-mio v0.2.5\n  Downloaded crossterm_winapi v0.9.1\n  Downloaded tree-sitter-json v0.24.8\n  Downloaded timeago v0.4.2\n  Downloaded sysinfo v0.37.2\n  Downloaded zerocopy v0.8.42\n  Downloaded git2 v0.21.0\n  Downloaded windows-result v0.2.0\n  Downloaded sync-ptr v0.1.4\n  Downloaded der v0.7.10\n  Downloaded rsa v0.9.10\n  Downloaded num-traits v0.2.19\n  Downloaded amplify_derive v4.0.1\n  Downloaded amplify_syn v2.0.1\n  Downloaded chacha20poly1305 v0.10.1\n  Downloaded fnv v1.0.7\n  Downloaded rand_chacha v0.9.0\n  Downloaded bit-vec v0.8.0\n  Downloaded pretty_assertions v1.4.1\n  Downloaded yansi v1.0.1\n  Downloaded idna_adapter v1.2.1\n  Downloaded zerofrom v0.1.6\n  Downloaded bytesize v2.3.1\n  Downloaded unit-prefix v0.5.2\n  Downloaded tree-sitter-language v0.1.7\n  Downloaded tree-sitter-toml-ng v0.6.0\n  Downloaded thiserror-impl v1.0.69\n  Downloaded tree-sitter-css v0.23.2\n  Downloaded gimli v0.32.3\n  Downloaded escargot v0.5.15\n  Downloaded windows-link v0.1.3\n  Downloaded windows-threading v0.1.0\n  Downloaded bstr v1.12.1\n  Downloaded regex-syntax v0.8.10\n  Downloaded windows-core v0.58.0\n  Downloaded windows-strings v0.1.0\n  Downloaded windows-interface v0.58.0\n  Downloaded windows-implement v0.58.0\n  Downloaded defer-heavy v0.1.0\n  Downloaded aes-gcm v0.10.3\n  Downloaded aes v0.8.4\n  Downloaded libm v0.2.16\n  Downloaded num-bigint-dig v0.8.6\n  Downloaded rustc_version v0.4.1\n  Downloaded semver v1.0.27\n  Downloaded curve25519-dalek-derive v0.1.1\n  Downloaded match-lookup v0.1.2\n  Downloaded base-x v0.2.11\n  Downloaded socks5-client v0.4.3\n  Downloaded keccak v0.1.6\n  Downloaded rand v0.9.2\n  Downloaded writeable v0.6.2\n  Downloaded bytecount v0.6.9\n  Downloaded web-time v1.1.0\n  Downloaded tree-sitter-html v0.23.2\n  Downloaded tree-sitter-highlight v0.24.7\n  Downloaded thiserror v1.0.69\n  Downloaded tree-sitter-go v0.23.4\n  Downloaded url v2.5.8\n  Downloaded hex-literal v1.1.0\n  Downloaded adler2 v2.0.1\n  Downloaded const-str v0.4.3\n  Downloaded cypheraddr v0.4.1\n  Downloaded cyphergraphy v0.3.1\n  Downloaded ec25519 v0.1.0\n  Downloaded ed25519 v1.5.3\n  Downloaded proptest v1.10.0\n  Downloaded ahash v0.8.12\n  Downloaded num-complex v0.4.6\n  Downloaded sem_safe v0.2.1\n  Downloaded simd-adler32 v0.3.8\n  Downloaded test-log v0.2.19\n  Downloaded tracing-log v0.2.0\n  Downloaded tracing-core v0.1.36\n  Downloaded test-log-macros v0.2.19\n  Downloaded colorchoice v1.0.5\n  Downloaded itertools v0.14.0\n  Downloaded equivalent v1.0.2\n  Downloaded windows_x86_64_gnullvm v0.52.6\n  Downloaded cyphernet v0.5.4\n  Downloaded fluent-uri v0.3.2\n  Downloaded tinystr v0.8.2\n  Downloaded signals_receipts v0.2.5\n  Downloaded console v0.16.3\n  Downloaded iana-time-zone v0.1.65\n  Downloaded tree-sitter-c v0.23.4\n  Downloaded matchers v0.2.0\n  Downloaded env_filter v1.0.0\n  Downloaded utf8parse v0.2.2\n  Downloaded is_terminal_polyfill v1.70.2\n  Downloaded anstyle-wincon v3.0.11\n  Downloaded once_cell_polyfill v1.70.2\n  Downloaded serde_derive v1.0.228\n  Downloaded itoa v1.0.17\n  Downloaded errno v0.3.14\n  Downloaded once_cell v1.21.4\n  Downloaded cfg-if v1.0.4\n  Downloaded fastrand v2.3.0\n  Downloaded autocfg v1.5.0\n  Downloaded sqlite v0.37.0\n  Downloaded shlex v1.3.0\n  Downloaded regex-automata v0.4.14\n  Downloaded ssh-encoding v0.2.0\n  Downloaded pem-rfc7468 v0.7.0\n  Downloaded lazy_static v1.5.0\n  Downloaded icu_locale_core v2.1.1\n  Downloaded litemap v0.8.1\n  Downloaded phf v0.11.3\n  Downloaded normalize-line-endings v0.3.0\n  Downloaded windows-collections v0.2.0\n  Downloaded memchr v2.8.0\n  Downloaded bitflags v2.11.0\n  Downloaded getrandom v0.4.3\n  Downloaded memoffset v0.9.1\n  Downloaded thiserror v2.0.18\n  Downloaded thiserror-impl v2.0.18\n  Downloaded sqlite3-sys v0.18.0\n  Downloaded pkg-config v0.3.32\n  Downloaded jobserver v0.1.34\n  Downloaded sha2 v0.10.9\n  Downloaded ssh-cipher v0.2.0\n  Downloaded universal-hash v0.5.1\n  Downloaded opaque-debug v0.3.1\n  Downloaded inout v0.1.4\n  Downloaded block-padding v0.3.3\n  Downloaded spin v0.9.8\n  Downloaded ecdsa v0.16.9\n  Downloaded rfc6979 v0.4.0\n  Downloaded bcrypt-pbkdf v0.10.0\n  Downloaded pbkdf2 v0.12.2\n  Downloaded signal-hook v0.3.18\n  Downloaded litrs v1.0.0\n  Downloaded core-foundation-sys v0.8.7\n  Downloaded pin-project-lite v0.2.17\n  Downloaded structured-logger v1.0.5\n  Downloaded bytes v1.11.1\n  Downloaded snapbox v1.2.2\n  Downloaded snapbox-macros v1.1.0\n  Downloaded anstream v1.0.0\n  Downloaded anstyle-parse v1.0.0\n  Downloaded systemd-journal-logger v2.2.2\n  Downloaded scrypt v0.11.0\n  Downloaded salsa20 v0.10.2\n  Downloaded gix-quote v0.7.1\n  Downloaded humantime v2.3.0\n  Downloaded human-panic v2.0.6\n  Downloaded windows-core v0.61.2\n  Downloaded indexmap v2.13.0\n  Downloaded r-efi v6.0.0\n  Downloaded getrandom v0.3.4\n  Downloaded ff v0.13.1\n  Downloaded ed25519 v2.2.3\n  Downloaded blowfish v0.9.1\n  Downloaded icu_provider v2.1.1\n  Downloaded icu_normalizer v2.1.1\n  Downloaded tracing-subscriber v0.3.23\n  Downloaded thread_local v1.1.9\n  Downloaded nu-ansi-term v0.50.3\n  Downloaded anstream v0.6.21\n  Downloaded anstyle-parse v0.2.7\n  Downloaded socket2 v0.5.10\n  Downloaded similar v3.1.1\n  Downloaded gix-error v0.2.3\n  Downloaded gix-packetline v0.21.3\n  Downloaded gix-command v0.9.0\n  Downloaded shell-words v1.1.1\n  Downloaded nonempty v0.12.0\n  Downloaded maybe-async v0.2.10\n  Downloaded gix-shallow v0.12.0\n  Downloaded gix-lock v23.0.0\n  Downloaded jiff-tzdb-platform v0.1.3\n  Downloaded hashbrown v0.16.1\n  Downloaded cc v1.2.57\n  Downloaded ssh-key v0.6.7\n  Downloaded base64ct v1.8.3\n  Downloaded poly1305 v0.8.0\n  Downloaded ctr v0.9.2\n  Downloaded primeorder v0.13.6\n  Downloaded group v0.13.0\n  Downloaded hmac v0.12.1\n  Downloaded p256 v0.13.2\n  Downloaded ssh-agent-lib v0.6.0\n  Downloaded base64 v0.21.7\n  Downloaded indicatif v0.18.4\n  Downloaded tree-sitter-python v0.23.6\n  Downloaded gix-url v0.36.0\n  Downloaded gix-sec v0.14.0\n  Downloaded gix-protocol v0.61.0\n  Downloaded gix-hashtable v0.15.0\n  Downloaded gix-actor v0.41.0\n  Downloaded gix-commitgraph v0.37.0\n  Downloaded memmap2 v0.9.10\n  Downloaded gix-chunk v0.7.1\n  Downloaded gix-glob v0.26.0\n  Downloaded gix-negotiate v0.31.0\n  Downloaded windows_aarch64_gnullvm v0.52.6\n  Downloaded p521 v0.13.3\n  Downloaded crypto-bigint v0.5.5\n  Downloaded ed25519-dalek v2.2.0\n  Downloaded secrecy v0.10.3\n  Downloaded multibase v0.9.2\n  Downloaded zerotrie v0.2.3\n  Downloaded base64 v0.22.1\n  Downloaded encode_unicode v1.0.0\n  Downloaded tree-sitter-bash v0.23.3\n  Downloaded valuable v0.1.1\n  Downloaded env_logger v0.11.9\n  Downloaded anstyle v1.0.14\n  Downloaded portable-atomic-util v0.2.6\n  Downloaded gix-prompt v0.15.0\n  Downloaded gix-config-value v0.18.0\n  Downloaded toml v0.9.12+spec-1.1.0\n  Downloaded sha1-checked v0.10.0\n  Downloaded windows_i686_gnullvm v0.52.6\n  Downloaded fraction v0.15.3\n  Downloaded derive_more v2.1.1\n  Downloaded gix-fs v0.21.1\n  Downloaded gix-revwalk v0.31.0\n  Downloaded gix-date v0.15.3\n  Downloaded jiff-tzdb v0.1.6\n  Downloaded jiff-static v0.2.23\n  Downloaded p384 v0.13.1\n  Downloaded fiat-crypto v0.2.9\n  Downloaded data-encoding-macro v0.1.19\n  Downloaded data-encoding-macro-internal v0.1.17\n  Downloaded base256emoji v1.0.2\n  Downloaded icu_normalizer_data v2.1.1\n  Downloaded fancy-regex v0.14.0\n  Downloaded emojis v0.6.4\n  Downloaded gix-tempfile v23.0.0\n  Downloaded pastey v0.2.1\n  Downloaded siphasher v0.3.11\n  Downloaded windows_x86_64_msvc v0.52.6\n  Downloaded cipher v0.4.4\n  Downloaded data-encoding v2.10.0\n  Downloaded icu_properties v2.1.2\n  Downloaded miniz_oxide v0.8.9\n  Downloaded gix-refspec v0.41.0\n  Downloaded gix-revision v0.45.0\n  Downloaded gix-credentials v0.38.0\n  Downloaded thousands v0.2.0\n  Downloaded rustc-hash v1.1.0\n  Downloaded mintex v0.1.4\n  Downloaded rustc-demangle v0.1.27\n  Downloaded toml_writer v1.0.7+spec-1.1.0\n  Downloaded serde_spanned v1.0.4\n  Downloaded windows-result v0.3.4\n  Downloaded toml_datetime v0.7.5+spec-1.1.0\n  Downloaded inquire v0.9.4\n  Downloaded either v1.15.0\n  Downloaded libz-sys v1.1.25\n  Downloaded curve25519-dalek v4.1.3\n  Downloaded mio v1.1.1\n  Downloaded gix-traverse v0.57.0\n  Downloaded lexopt v0.3.2\n  Downloaded dhat v0.3.3\n  Downloaded backtrace v0.3.76\n  Downloaded windows-strings v0.4.2\n  Downloaded heck v0.5.0\n  Downloaded strsim v0.11.1\n  Downloaded num-bigint v0.4.6\n  Downloaded sharded-slab v0.1.7\n  Downloaded windows-future v0.2.1\n  Downloaded clap_derive v4.6.0\n  Downloaded unicode-ident v1.0.24\n  Downloaded quote v1.0.45\n  Downloaded icu_collections v2.1.1\n  Downloaded derive_more-impl v2.1.1\n  Downloaded gix-object v0.60.0\n  Downloaded clap v4.6.0\n  Downloaded proc-macro2 v1.0.106\n  Downloaded serde v1.0.228\n  Downloaded rustix v1.1.4\n  Downloaded windows_i686_msvc v0.52.6\n  Downloaded flate2 v1.1.9\n  Downloaded elliptic-curve v0.13.8\n  Downloaded ntapi v0.4.3\n  Downloaded syn v2.0.117\n  Downloaded gix-odb v0.80.0\n  Downloaded clap_builder v4.6.0\n  Downloaded gix-ref v0.63.0\n  Downloaded objc2-core-foundation v0.3.2\n  Downloaded windows_aarch64_msvc v0.52.6\n  Downloaded zerovec v0.11.5\n  Downloaded gix-diff v0.63.0\n  Downloaded gix-transport v0.57.0\n  Downloaded windows_i686_gnu v0.52.6\n  Downloaded crossterm v0.29.0\n  Downloaded object v0.37.3\n  Downloaded arc-swap v1.9.1\n  Downloaded sha3 v0.10.8\n  Downloaded idna v1.1.0\n  Downloaded icu_properties_data v2.1.2\n  Downloaded libc v0.2.183\n  Downloaded tree-sitter v0.24.7\n  Downloaded portable-atomic v1.13.1\n  Downloaded jiff v0.2.23\n  Downloaded gix-pack v0.70.0\n  Downloaded chrono v0.4.44\n  Downloaded libgit2-sys v0.18.4+1.9.3\n  Downloaded unicode-width v0.2.2\n  Downloaded tree-sitter-md v0.3.2\n  Downloaded objc2-io-kit v0.3.2\n  Downloaded tree-sitter-rust v0.23.3\n  Downloaded windows-sys v0.61.2\n  Downloaded bloomy v1.2.0\n  Downloaded windows-sys v0.52.0\n  Downloaded sqlite3-src v0.7.0\n  Downloaded linux-raw-sys v0.12.1\n  Downloaded tracing v0.1.44\n  Downloaded tree-sitter-ruby v0.23.1\n  Downloaded windows_x86_64_gnu v0.52.6\n  Downloaded tree-sitter-typescript v0.23.2\n  Downloaded tokio v1.50.0\n  Downloaded winapi v0.3.9\n  Downloaded windows v0.62.2\n  Downloaded windows v0.61.3\n  Downloaded windows v0.58.0\n  Downloaded windows-sys v0.59.0\n  Downloaded winapi-i686-pc-windows-gnu v0.4.0\n  Downloaded winapi-x86_64-pc-windows-gnu v0.4.0\n","timestamp":{"secs_since_epoch":1786302071,"nanos_since_epoch":756195808},"log_source":"Plan"}
{"type":"action_succeeded","action":"cargo_fetch","timestamp":{"secs_since_epoch":1786302071,"nanos_since_epoch":971229054},"log_source":"Plan"}
{"type":"execute_action","action":"rustup","channel":"1.95.0","target":null,"components":null,"profile":null,"timestamp":{"secs_since_epoch":1786302071,"nanos_since_epoch":973145987},"log_source":"Plan"}
{"type":"debug","debug":"rustup Rustup { channel: \"1.95.0\", target: None, components: None, profile: None }","timestamp":{"secs_since_epoch":1786302071,"nanos_since_epoch":975922408},"log_source":"PrePlan"}
{"type":"start_program","argv":[{"Unix":[114,117,115,116,117,112]},{"Unix":[105,110,115,116,97,108,108]},{"Unix":[49,46,57,53,46,48]}],"timestamp":{"secs_since_epoch":1786302071,"nanos_since_epoch":978840305},"log_source":"PrePlan"}
{"type":"program_failed","exit_code":null,"stdout":"","stderr":"command does not exist: \"rustup\"","timestamp":{"secs_since_epoch":1786302071,"nanos_since_epoch":982093164},"log_source":"PrePlan"}
{"type":"action_failed","action":"rustup","channel":"1.95.0","target":null,"components":null,"profile":null,"timestamp":{"secs_since_epoch":1786302071,"nanos_since_epoch":984811062},"log_source":"Plan"}
ERROR: rustup action failed
caused by: failed to run rustup
caused by: command does not exist: "rustup"
{"type":"executor_ends_in_failure","exit_code":1,"timestamp":{"secs_since_epoch":1786302071,"nanos_since_epoch":990012513},"log_source":"Plan"}
EXIT CODE: 1

Plan VM

No log

Post-plan VM

No log