CCI report: 1da2726a-270f-46f8-b4f1-0b093dad8e91

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:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
      "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
    ]
  },
  "action": "Created",
  "patch": {
    "id": "97ef4750a77add956064d03cf21e0bdfa2a32219",
    "author": {
      "id": "did:key:z6MkrnXJWPndzPBxpBUaE3L3BnMeWpaQdT1V1FvkoCPFSFS3",
      "alias": null
    },
    "title": "Stop disconnecting peers that are busy sending data",
    "state": {
      "status": "open",
      "conflicts": []
    },
    "before": "0e5a56f25f51d07290613a9363bd8c0c9fc8e0be",
    "after": "35c7d2be65e10d526d491e93a2966c61ffdd08ff",
    "commits": [
      "35c7d2be65e10d526d491e93a2966c61ffdd08ff"
    ],
    "target": "0e5a56f25f51d07290613a9363bd8c0c9fc8e0be",
    "labels": [],
    "assignees": [],
    "revisions": [
      {
        "id": "97ef4750a77add956064d03cf21e0bdfa2a32219",
        "author": {
          "id": "did:key:z6MkrnXJWPndzPBxpBUaE3L3BnMeWpaQdT1V1FvkoCPFSFS3",
          "alias": null
        },
        "description": "`disconnect_unresponsive_peers` drops any session whose `last_active` is\nolder than STALE_CONNECTION_TIMEOUT (hard-coded to 2 minutes).\n`last_active` is written in only two places: `to_connected`, and\n`handle_message` (the gossip message handler).\n\nPack data never reaches `handle_message` which is what marks . It arrives as `FrameData::Git`\nand goes straight to the worker thread over a channel. So a peer busy\nsending us a large pack appears completely idle, and\nafter two minutes we hang up on it mid-transfer. gitoxide then sees a\ntruncated stream and the fetch fails with:\n\n    Clone of rad:<rid> from <nid> failed with\n    'gix fetch error: Failed to consume the pack sent by the remote'\n\nThis only affects large repositories. Small ones finish inside the\nwindow. Neither `limits.fetchPackReceive` nor `limits.fetchTimeout`\nbounds it, and it reproduces against every peer, since any peer sending a\nbig pack goes gossip-quiet for the duration.\n\nWe now treat arriving pack bytes as liveness, symmetrically with the\n`FrameData::Gossip` arm immediately above, which already calls\n`received_message`.\n\nNote that a remote that spends more than STALE_CONNECTION_TIMEOUT\nserver-side (e.g. enumerating or compressing a large pack before sending\nits first byte), is still reaped, and `limits.fetchTimeout` does not help.\nThis is not a change in behaviour. Gossip silence would have reaped it anyway.",
        "base": "0e5a56f25f51d07290613a9363bd8c0c9fc8e0be",
        "oid": "35c7d2be65e10d526d491e93a2966c61ffdd08ff",
        "timestamp": 1790695542
      }
    ]
  }
}

Send response

{
  "response": "triggered",
  "run_id": {
    "id": "1da2726a-270f-46f8-b4f1-0b093dad8e91"
  },
  "info_url": "https://cci.rad.levitte.org//1da2726a-270f-46f8-b4f1-0b093dad8e91.html"
}

Checkout the source (in /opt/radcis/ci.rad.levitte.org/cci/state/1da2726a-270f-46f8-b4f1-0b093dad8e91/w)

Started at: 2026-09-29 17:25:55.555304+02:00

Commands:

Read the repo configuration (.radicle/native.yaml in /opt/radcis/ci.rad.levitte.org/cci/state/1da2726a-270f-46f8-b4f1-0b093dad8e91/w)

shell: 'export RUSTDOCFLAGS=''-D warnings''


  cargo --version

  rustc --version


  cargo fmt --check

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

  cargo build --all-targets --workspace

  cargo doc --workspace --no-deps --all-features

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

  '

Run the script

Commands:

Send result

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