CCI report: 71bad092-a962-450a-8fa5-9c9349c65290

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": "1b5103d1049e8a4e56f7ac6570d7f61d37931262",
    "author": {
      "id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
      "alias": "lorenz"
    },
    "title": "radicle: Fix panic when reading from SQLite database fails",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "19a262d3d67ea92a37ceaf18e79a783d8e65ccdd",
    "after": "43dd23c597c576c0c140792218c5d2edf3df00da",
    "commits": [
      "43dd23c597c576c0c140792218c5d2edf3df00da"
    ],
    "target": "19a262d3d67ea92a37ceaf18e79a783d8e65ccdd",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "1b5103d1049e8a4e56f7ac6570d7f61d37931262",
        "author": {
          "id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
          "alias": "lorenz"
        },
        "description": "I was greeted by `rad patch redact` with\n\n    called `Result::unwrap()` on an `Err` value:\n\n      Error { code: None, message: Some(\"failed to convert\") }\n\n    stack backtrace:\n\n    [\u2026]\n       3: core::result::Result<T,E>::unwrap\n             at \u2026/rust-1.88.0/lib/rustlib/src/rust/library/core/src/result.rs:1137:23\n       4: sqlite::cursor::Row::read\n             at \u2026/index.crates.io-1949cf8c6b5b557f/sqlite-0.32.0/src/cursor.rs:136:9\n       5: radicle::cob::patch::cache::query::find_by_revision\n             at ./crates/radicle/src/cob/patch/cache.rs:624:65\n       6: <\u2026 as radicle::cob::patch::cache::Patches>::find_by_revision\n             at ./crates/radicle/src/cob/patch/cache.rs:553:9\n       7: radicle_cli::commands::rad_patch::redact::run\n             at ./crates/radicle-cli/src/commands/patch/redact.rs:23:9\n       8: radicle_cli::commands::rad_patch::run\n             at ./crates/radicle-cli/src/commands/patch.rs:1026:13\n    [\u2026]\n\nIt turns out that `sqlite::cursor::Row::read` is the panicky version of\n`sqlite::cursor::Row::try_read` (which returns a `Result`).\n\nWhile it is somewhat rare that SQLite reads fail, it is not unheard of.\nIn `radicle-cli` it might not be critical, but also `radicle-protocol`\nand `radicle-fetch` are affected, and they could potentially panic a\n`radicle-node` process.\n\nUse `try_read` instead, and propagate down the error handling.",
        "base": "19a262d3d67ea92a37ceaf18e79a783d8e65ccdd",
        "oid": "43dd23c597c576c0c140792218c5d2edf3df00da",
        "timestamp": 1755978483
      }
    ]
  }
}

Send response

{
  "response": "triggered",
  "run_id": {
    "id": "71bad092-a962-450a-8fa5-9c9349c65290"
  },
  "info_url": "https://cci.rad.levitte.org//71bad092-a962-450a-8fa5-9c9349c65290.html"
}

Checkout the source (in /opt/radcis/ci.rad.levitte.org/cci/state/71bad092-a962-450a-8fa5-9c9349c65290/w)

Started at: 2025-08-23 21:48:16.168232+02:00

Commands:

Read the repo configuration (.radicle/native.yaml in /opt/radcis/ci.rad.levitte.org/cci/state/71bad092-a962-450a-8fa5-9c9349c65290/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": "success"
}