CCI report: 77f4ae7e-e72e-4bb3-b552-3e4d3e608eed

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": "e500399b3e1db5fe7bcf6d7661d5a42dfa49d4d5",
    "author": {
      "id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
      "alias": "erikli"
    },
    "title": "radicle: improve inline comments",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "2a47bc0c7dd6238ce3416e19d2ba57f3a7626f64",
    "after": "37aa1dbca1032defced89bc3e602c8cac47449f7",
    "commits": [
      "37aa1dbca1032defced89bc3e602c8cac47449f7",
      "222e53c358dd9d87894ec64e8181b8353a5c517e",
      "78b41239ea8f2eafa9eecac8298bfd29dca38f9f",
      "b455c819807cd7a7543d03215570c72b7cb452d7",
      "e67a8f4d32c830c24ed68ea21707923480830511"
    ],
    "target": "54fd8c40a0b64e061d0ec4f32b9471b36ec11ee0",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "e500399b3e1db5fe7bcf6d7661d5a42dfa49d4d5",
        "author": {
          "id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
          "alias": "erikli"
        },
        "description": "The previous `CodeLocation` type did not correctly represent the semantics of an\ninline code location, for the following reasons:\n\n1. If it is for lines within a file pertaining to the commit, then there should\n   be no `old` or `new` ranges, only a single range.\n2. If it is for a patch created by diffing the commit with another commit, then\n   the other commit is missing.\n\nIt could be argued that the semantics of these two cases could be retrieved by:\n\n1. In the first case, just use one of the ranges.\n2. In the second case, infer the commit from the context, e.g. always use\n   `Revision::base` for locations used in the `ReviewComment`.\n\nInstead, the type is renamed to `PartialLocation` to represent these semantics\nbetter, and only remains for backwards-compatibility when deserializing existing\ndata.\n\nTwo new types are introduced `CommitLocation` and `DiffLocation`, which more\naccurately describe the two cases.\n\nEach of these is used in a `Patch`'s `Revision` and `Review` thread\nrespectively. These are created with new actions `RevisionCommitComment` and\n`ReviewDiffComment`, while deprecating the use of `RevisionComment` and\n`ReviewComment` \u2013 they can no longer be constructed outside of the module.\n\nThe final part is to ensure that clients can calculate stable diffs for patches\n\u2013 to allow them to display the `DiffLocation`s correctly \u2013 the relevant diff\noptions are recorded for each patch. Sane defaults are used if the options are\nmissing.",
        "base": "3b5fac178eaf9bca639fbd0c1df0c68619a7f51f",
        "oid": "3679d0fbeb6123e7bed99bd3ddd05fea9ac83790",
        "timestamp": 1741364575
      },
      {
        "id": "687497ce5855e549e237de665e684772dbc28f76",
        "author": {
          "id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
          "alias": "erikli"
        },
        "description": "Changes:\n- Split up the patch into separate commits\n- Optional selection for file-level comments\n- Rename actions to use `V1` suffix, keeping the latest version of actions using\n  their regular names. As well as this, the enum tag renames use `.v2` suffix.\n- Refactor `diff::Options` methods to return `git2::DiffOptions` directly.\n- Add `FindOptions` to the `diff::Options`.",
        "base": "3b5fac178eaf9bca639fbd0c1df0c68619a7f51f",
        "oid": "17713eab9565df332bb3ce40d3cf78f282d86050",
        "timestamp": 1742995065
      },
      {
        "id": "b168b283a23c3ca2457abf8b185d2b09eabe56af",
        "author": {
          "id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
          "alias": "erikli"
        },
        "description": "Changes:\n- Remove `all` from `FindOptions` \u2013 I found that it is worse at detecting\n  renames\n- Remove `exact_match`, because I believe this will only look at SHAs and not\n  return renames",
        "base": "3b5fac178eaf9bca639fbd0c1df0c68619a7f51f",
        "oid": "ff6cb4a3633bf31513824282628a4a3d19e6fbd9",
        "timestamp": 1743007134
      },
      {
        "id": "0a74e306857f4e907324fdb1b4c4c1f09d7fb691",
        "author": {
          "id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
          "alias": "erikli"
        },
        "description": "Changes:\n- Rebased\n- Document code\n- Removed `CodeRange::Chars` \u2013 I believe that no one actually used this and I'd\n  prefer not support it until it's needed.",
        "base": "5553a147523778574c1671d4706d34f723138632",
        "oid": "e7cab63866450f40069dbe2038a9806f6878dd63",
        "timestamp": 1746615901
      },
      {
        "id": "8ac7f35519a868d1c0ff63d626ab7b5a382cfebb",
        "author": {
          "id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
          "alias": "erikli"
        },
        "description": "Backwards-compatible Approach\n\nThis approach extends the way we implemented changes to `Review` in a previous\npatch. The change is two-fold.\n\nThe first thing we do is separate out the effected `Action` variants into the\n`actions` module. While doing this, we version them, and guard the way they are\nconstructed and how they affect a `Patch` when being applied. We also ensure\nthat we can deserialize.\n\nThe second part is to separate the \"encoding\" of a `Revision`. Since `Revision`\nis changing by changing the type of the code locations from `PartialLocation`\n(previously named `CodeLocation`) to `DiffLocation`. The `encoding::Revision`\ntype can deserialize any existing revision JSON that exists, and it does this be\n\"decoding\" the previous version of the data into the newer version. Note that to\ndo this effectively, we need to provide the `DiffLocation` with the `base: Oid`.\nWe, safely, assume that this is the `Revision::base` and use that as the\ncontextual information for building the `DiffLocation`. Note that this means\n`encoding::Review** will no longer implement `Deserialize**, but it does have a\nmethod `decode**. This method takes the contextual `base: Oid** to convert any\nfound `PartialLocation`s into `DiffLocation`s.\n\n**NOTE**: when converting a `PartialLocation` to a `DiffLocation`, there is no\nway to get the hunk selection from the line selection. This would require a\n`Repository` handle to compute. We set the `selection` to `None` as a minor\nsacrifice in the name of backwards-compatibility (almost).\n\n**Aside**: One can imagine that we might end up changing some field in `Patch`\nin the future, and this exact process will have to be done again and introduce\nan `encoding::Patch`, which provides a way to migrate from the previous encoding\nto the latest encoding.",
        "base": "2a47bc0c7dd6238ce3416e19d2ba57f3a7626f64",
        "oid": "222e53c358dd9d87894ec64e8181b8353a5c517e",
        "timestamp": 1753287978
      },
      {
        "id": "62142e992b09aad50caad33f9ca0a23cd99d7308",
        "author": {
          "id": "did:key:z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz",
          "alias": "erikli"
        },
        "description": "Properly encode single-line review comments in the CLI",
        "base": "2a47bc0c7dd6238ce3416e19d2ba57f3a7626f64",
        "oid": "37aa1dbca1032defced89bc3e602c8cac47449f7",
        "timestamp": 1753961422
      }
    ]
  }
}

Send response

{
  "response": "triggered",
  "run_id": {
    "id": "77f4ae7e-e72e-4bb3-b552-3e4d3e608eed"
  },
  "info_url": "https://cci.rad.levitte.org//77f4ae7e-e72e-4bb3-b552-3e4d3e608eed.html"
}

Checkout the source (in /opt/radcis/ci.rad.levitte.org/cci/state/77f4ae7e-e72e-4bb3-b552-3e4d3e608eed/w)

Started at: 2025-07-31 13:30:25.799905+02:00

Commands:

Read the repo configuration (.radicle/native.yaml in /opt/radcis/ci.rad.levitte.org/cci/state/77f4ae7e-e72e-4bb3-b552-3e4d3e608eed/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"
}