CCI report: a296dad9-06f7-4c4b-9b90-7b4f42bb91b8

Request message

{
  "request": "trigger",
  "version": 1,
  "event_type": "patch",
  "repository": {
    "id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
    "name": "heartwood",
    "description": "Radicle Heartwood Protocol & Stack",
    "private": false,
    "default_branch": "master",
    "delegates": [
      "did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
      "did:key:z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW",
      "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
      "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
    ]
  },
  "action": "Created",
  "patch": {
    "id": "2360161e798728092f34e9225066556902a2254b",
    "author": {
      "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "alias": "fintohaps"
    },
    "title": "protocol: Revisit encoding and decoding",
    "state": {
      "status": "merged",
      "conflicts": []
    },
    "before": "192cc993a8f2a31e49608e9aeff2ecf04ce602ad",
    "after": "8a66e4d04492e3a3db410ace03ecc39e79dbb45c",
    "commits": [
      "8a66e4d04492e3a3db410ace03ecc39e79dbb45c"
    ],
    "target": "192cc993a8f2a31e49608e9aeff2ecf04ce602ad",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "2360161e798728092f34e9225066556902a2254b",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "## Encoding\n\nIn 3c5668edd22ae4b9a085220d6be552f944ccb038 I mistakenly moved the check\nthe length of an encoded `wire::Message` from its `impl wire::Encode` to\nthe `fn serialize`, so that it would not apply only to messages (as\noriginally intended), but to *any* argument of `serialize`.\n\nThis is not a problem for gossip messages, but catastrophic for Git\nstreams, which tend to send a lot of data.\n\nThe fix is simple: Move the check back into `impl Encode for Message`.\n\nWhat made this harder to spot for me was the multitude of concepts and\nterms involved in encoding: What's *serializing* vs. *encoding*? Why is\nthere this odd `Frame::to_bytes`?\n\nSo I decided to clean up a bit. I removed `fn serialize` so that the\nlogic stays close to the data, and instead of it provide\n`fn encode_vec` in `trait Encode` so that we don't add up with\none-offs like `Frame::to_bytes` again. Also we make use of `encode_vec`\nin the tests.\n\nThere is `test_encode_git_large` will panic if we ever regress.\n\n## Decoding\n\nRemove `fn deserialize` and instead provide a trait `fn decode_exact`\nfor testing.\n\nRefactor errors, so that we can now cleanly distinguish between\n`Error::UnexpectedEnd` which means that decoding might work given\nmore data, and `Error::Invalid`, which means that no amount of\nadditional data will decode.\n\nWhile at it, cleanup the variants of `Error::Invalid`, and provide `ControlType`.",
        "base": "19a262d3d67ea92a37ceaf18e79a783d8e65ccdd",
        "oid": "4e00d61747494d037b4dc714313759d9de9d7dd9",
        "timestamp": 1755965877
      },
      {
        "id": "2eea26dbf0e1bf01a1da0373d4e44610a84ebe24",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Pull out the actual fix into a separate commit for clarity.",
        "base": "19a262d3d67ea92a37ceaf18e79a783d8e65ccdd",
        "oid": "7b4d071b6fc4947dbcea532800a80cc1dfe2f54b",
        "timestamp": 1755973092
      },
      {
        "id": "d46f35a18e1376f642d7f8f8901f39f427378f24",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Rebase",
        "base": "a4d83ec8d22a80a4d01381a091967b57fa595018",
        "oid": "c672a06988b8d04df47e068a98847a59b02d88ee",
        "timestamp": 1756066223
      },
      {
        "id": "68ef16c214a95b4fdb91e2313f7284c7f432159f",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Review with Fintan.",
        "base": "a4d83ec8d22a80a4d01381a091967b57fa595018",
        "oid": "8a4f70f34224b4843b4a6bfe39d6037e2c6a0848",
        "timestamp": 1756109141
      },
      {
        "id": "44e41158e1b37048e37edb43d49b65b859310139",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Changes:\n- Rebased\n- Rename `encode_vec` -> `encode_to_vec`\n- Fix doc string",
        "base": "c5b99db101f251b1b17bbe8df5885ed3a1c16409",
        "oid": "a568e7f4848729ca02d5d5373dfacba289658493",
        "timestamp": 1756119866
      },
      {
        "id": "2db8966f6a85f378743657d36f0445d46e03592b",
        "author": {
          "id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
          "alias": "fintohaps"
        },
        "description": "Rebased",
        "base": "192cc993a8f2a31e49608e9aeff2ecf04ce602ad",
        "oid": "8a66e4d04492e3a3db410ace03ecc39e79dbb45c",
        "timestamp": 1756139298
      }
    ]
  }
}

Send response

{
  "response": "triggered",
  "run_id": {
    "id": "a296dad9-06f7-4c4b-9b90-7b4f42bb91b8"
  },
  "info_url": "https://cci.rad.levitte.org//a296dad9-06f7-4c4b-9b90-7b4f42bb91b8.html"
}

Checkout the source (in /opt/radcis/ci.rad.levitte.org/cci/state/a296dad9-06f7-4c4b-9b90-7b4f42bb91b8/w)

Started at: 2025-08-25 18:28:26.537858+02:00

Commands:

Read the repo configuration (.radicle/native.yaml in /opt/radcis/ci.rad.levitte.org/cci/state/a296dad9-06f7-4c4b-9b90-7b4f42bb91b8/w)

shell: 'cargo --version

  rustc --version


  cargo fmt --check

  cargo clippy --all-targets --workspace -- --deny warnings

  cargo build --all-targets --workspace

  cargo doc --workspace --no-deps

  cargo test --workspace --no-fail-fast

  '

Run the script

Commands:

Send result

{
  "response": "finished",
  "result": "failure"
}