rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood4d6341e1212983a82f7dbdf2d28f420b01378b4c
{
"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": "Updated",
"patch": {
"id": "50a135921d210d15170448a97da51dde7c86ae57",
"author": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"title": "add operating system info to 'rad debug' output",
"state": {
"status": "open",
"conflicts": []
},
"before": "4641c342c689dd9c549af6c0235256fe225b53a7",
"after": "4d6341e1212983a82f7dbdf2d28f420b01378b4c",
"commits": [
"4d6341e1212983a82f7dbdf2d28f420b01378b4c",
"646eb1c1b7949a3c099f6402e2a71b85b8c36054"
],
"target": "4641c342c689dd9c549af6c0235256fe225b53a7",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "50a135921d210d15170448a97da51dde7c86ae57",
"author": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"description": "",
"base": "1a5dfc2616ecc5d8ecb281a18b7e9d2c07d5e6ad",
"oid": "8fb033985a629813614e6881b193be22e9a15d3f",
"timestamp": 1785940537
},
{
"id": "b25de577fc6514965b53ae14c25e2e2c28e8cff7",
"author": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"description": "Rebase on master",
"base": "4641c342c689dd9c549af6c0235256fe225b53a7",
"oid": "fcb3aae207544da3fceba7c2a7e5efa7b5ddb913",
"timestamp": 1785940768
},
{
"id": "161610af5649e04b95284814f721274466c23107",
"author": {
"id": "did:key:z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV",
"alias": "liw"
},
"description": "report output of sysctl command",
"base": "4641c342c689dd9c549af6c0235256fe225b53a7",
"oid": "4d6341e1212983a82f7dbdf2d28f420b01378b4c",
"timestamp": 1785942139
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "134e4937-b51c-4ad6-9b4e-08883f1e89e5"
},
"info_url": "https://cci.rad.levitte.org//134e4937-b51c-4ad6-9b4e-08883f1e89e5.html"
}
Started at: 2026-08-05 17:02:36.214276+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW added
✓ Remote-tracking branch cloudhead@z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW/master created for z6MktaNvN1KVFMkSRAiN4qK5yvX1zuEEaseeX5sffhzPZRZW
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ Remote erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz added
✓ Remote-tracking branch erikli@z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz/master created for z6MkgFq6z5fkF2hioLLSNu1zP2qEL1aHXHZzGH1FLFGAnBGz
✓ Remote lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz added
✓ Remote-tracking branch lorenz@z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz/master created for z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz
✓ Repository successfully cloned under /opt/radcis/ci.rad.levitte.org/cci/state/134e4937-b51c-4ad6-9b4e-08883f1e89e5/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 188 issues · 42 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout 50a135921d210d15170448a97da51dde7c86ae57
✓ Switched to branch patch/50a1359 at revision 161610a
✓ Branch patch/50a1359 setup to track rad/patches/50a135921d210d15170448a97da51dde7c86ae57
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout 4d6341e1212983a82f7dbdf2d28f420b01378b4c
HEAD is now at 4d6341e1 cli: add hardenedBsd to 'rad debug' output
Exit code: 0
$ rad patch show 50a135921d210d15170448a97da51dde7c86ae57 -p
╭─────────────────────────────────────────────────────────────────────────────╮
│ Title add operating system info to 'rad debug' output │
│ Patch 50a135921d210d15170448a97da51dde7c86ae57 │
│ Author liw z6MkgEM…1b2w2FV │
│ Head 4d6341e1212983a82f7dbdf2d28f420b01378b4c │
│ Base 4641c342c689dd9c549af6c0235256fe225b53a7 │
│ Branches patch/50a1359 │
│ Commits ahead 2, behind 0 │
│ Status open │
├─────────────────────────────────────────────────────────────────────────────┤
│ 4d6341e cli: add hardenedBsd to 'rad debug' output │
│ 646eb1c cli: have debug command output /etc/os-release if available │
├─────────────────────────────────────────────────────────────────────────────┤
│ ● Revision 50a1359 @ 1a5dfc2..8fb0339 by liw z6MkgEM…1b2w2FV 27 minutes ago │
│ ↑ Revision b25de57 @ 4641c34..fcb3aae by liw z6MkgEM…1b2w2FV 23 minutes ago │
│ ↑ Revision 161610a @ 4641c34..4d6341e by liw z6MkgEM…1b2w2FV 19 seconds ago │
╰─────────────────────────────────────────────────────────────────────────────╯
commit 4d6341e1212983a82f7dbdf2d28f420b01378b4c
Author: Lars Wirzenius <liw@liw.fi>
Date: Wed Aug 5 17:35:01 2026 +0300
cli: add hardenedBsd to 'rad debug' output
This is conditional on the target operating system being FreeBSDs.
HardenedBSD is FreeBSD but with changes. We determine which one it is,
by running 'sysctl hardening.version'.
diff --git a/crates/radicle-cli/src/commands/debug.rs b/crates/radicle-cli/src/commands/debug.rs
index 4fae85155..80a4fe148 100644
--- a/crates/radicle-cli/src/commands/debug.rs
+++ b/crates/radicle-cli/src/commands/debug.rs
@@ -60,6 +60,9 @@ fn debug(profile: Option<&Profile>) -> anyhow::Result<()> {
arch: std::env::consts::ARCH,
env,
warnings: collect_warnings(profile),
+
+ #[cfg(target_os = "freebsd")]
+ hardened_bsd: hardened_bsd(),
};
term::println(serde_json::to_string_pretty(&debug).unwrap());
@@ -77,6 +80,18 @@ fn os_release() -> HashMap<String, String> {
}
}
+#[cfg(target_os = "freebsd")]
+fn hardened_bsd() -> String {
+ let mut cmd = Command::new("sysctl");
+ cmd.args(["sysctl", "-n", "vm.overcommit_memory"
+ // "hardening.version"
+ ]);
+ match cmd.output() {
+ Ok(output) => String::from_utf8_lossy(&output.stdout).trim().to_string(),
+ Err(_) => "sysctl failed".to_string(),
+ }
+}
+
#[derive(Debug, Serialize)]
#[allow(dead_code)]
#[serde(rename_all = "camelCase")]
@@ -95,6 +110,9 @@ struct DebugInfo {
arch: &'static str,
env: BTreeMap<String, String>,
+ #[cfg(target_os = "freebsd")]
+ hardened_bsd: String,
+
#[serde(skip_serializing_if = "Vec::is_empty")]
warnings: Vec<String>,
}
commit 646eb1c1b7949a3c099f6402e2a71b85b8c36054
Author: Lars Wirzenius <liw@liw.fi>
Date: Wed Aug 5 17:25:36 2026 +0300
cli: have debug command output /etc/os-release if available
diff --git a/Cargo.lock b/Cargo.lock
index 900ecf434..f7ee5a3d3 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2857,6 +2857,7 @@ dependencies = [
"radicle-node",
"radicle-surf",
"radicle-term",
+ "rs-release",
"schemars",
"serde",
"serde_json",
@@ -3331,6 +3332,12 @@ dependencies = [
"subtle",
]
+[[package]]
+name = "rs-release"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33046892e4d999dc17e3790cb23ade37b8308f4bd2f3b05ed51bc5351762c94b"
+
[[package]]
name = "rsa"
version = "0.9.10"
diff --git a/crates/radicle-cli/Cargo.toml b/crates/radicle-cli/Cargo.toml
index 11e77aadd..b5ab3c08f 100644
--- a/crates/radicle-cli/Cargo.toml
+++ b/crates/radicle-cli/Cargo.toml
@@ -57,6 +57,7 @@ tree-sitter-ruby = "0.23.1"
tree-sitter-rust = "0.23.2"
tree-sitter-toml-ng = "0.6.0"
tree-sitter-typescript = "0.23.2"
+rs-release = "0.1.11"
[target.'cfg(unix)'.dependencies]
backtrace = { workspace = true, optional = true }
diff --git a/crates/radicle-cli/src/commands/debug.rs b/crates/radicle-cli/src/commands/debug.rs
index d9dd2a0f7..4fae85155 100644
--- a/crates/radicle-cli/src/commands/debug.rs
+++ b/crates/radicle-cli/src/commands/debug.rs
@@ -1,11 +1,12 @@
mod args;
-use std::collections::BTreeMap;
+use std::collections::{BTreeMap, HashMap};
use std::env;
use std::path::PathBuf;
use std::process::Command;
use anyhow::anyhow;
+use rs_release::get_os_release;
use serde::Serialize;
use radicle::Profile;
@@ -55,6 +56,7 @@ fn debug(profile: Option<&Profile>) -> anyhow::Result<()> {
log: profile.map(|p| LogFile::new(p.node().join("node.log"))),
old_log: profile.map(|p| LogFile::new(p.node().join("node.log.old"))),
operating_system: std::env::consts::OS,
+ os_release: os_release(),
arch: std::env::consts::ARCH,
env,
warnings: collect_warnings(profile),
@@ -65,6 +67,16 @@ fn debug(profile: Option<&Profile>) -> anyhow::Result<()> {
Ok(())
}
+fn os_release() -> HashMap<String, String> {
+ match get_os_release() {
+ Ok(map) => map
+ .iter()
+ .map(|(k, v)| (k.to_string(), v.to_string()))
+ .collect(),
+ Err(_) => HashMap::new(),
+ }
+}
+
#[derive(Debug, Serialize)]
#[allow(dead_code)]
#[serde(rename_all = "camelCase")]
@@ -79,6 +91,7 @@ struct DebugInfo {
log: Option<LogFile>,
old_log: Option<LogFile>,
operating_system: &'static str,
+ os_release: HashMap<String, String>,
arch: &'static str,
env: BTreeMap<String, String>,
Exit code: 0
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 '
Commands:
$ podman run --name 134e4937-b51c-4ad6-9b4e-08883f1e89e5 -v /opt/radcis/ci.rad.levitte.org/cci/state/134e4937-b51c-4ad6-9b4e-08883f1e89e5/s:/134e4937-b51c-4ad6-9b4e-08883f1e89e5/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/134e4937-b51c-4ad6-9b4e-08883f1e89e5/w:/134e4937-b51c-4ad6-9b4e-08883f1e89e5/w -w /134e4937-b51c-4ad6-9b4e-08883f1e89e5/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /134e4937-b51c-4ad6-9b4e-08883f1e89e5/s/script.sh
+ export 'RUSTDOCFLAGS=-D warnings'
+ RUSTDOCFLAGS='-D warnings'
+ cargo --version
info: syncing channel updates for '1.97.1-x86_64-unknown-linux-gnu'
info: latest update on 2026-07-16, rust version 1.97.1 (8bab26f4f 2026-07-14)
info: downloading component 'cargo'
info: downloading component 'clippy'
info: downloading component 'rust-docs'
info: downloading component 'rust-src'
info: downloading component 'rust-std'
info: downloading component 'rustc'
info: downloading component 'rustfmt'
info: installing component 'cargo'
info: installing component 'clippy'
info: installing component 'rust-docs'
info: installing component 'rust-src'
info: installing component 'rust-std'
info: installing component 'rustc'
info: installing component 'rustfmt'
cargo 1.97.1 (c980f4866 2026-06-30)
+ rustc --version
rustc 1.97.1 (8bab26f4f 2026-07-14)
+ cargo fmt --check
Diff in /134e4937-b51c-4ad6-9b4e-08883f1e89e5/w/crates/radicle-cli/src/commands/debug.rs:83:
#[cfg(target_os = "freebsd")]
fn hardened_bsd() -> String {
let mut cmd = Command::new("sysctl");
- cmd.args(["sysctl", "-n", "vm.overcommit_memory"
- // "hardening.version"
- ]);
+ cmd.args([
+ "sysctl",
+ "-n",
+ "vm.overcommit_memory", // "hardening.version"
+ ]);
match cmd.output() {
Ok(output) => String::from_utf8_lossy(&output.stdout).trim().to_string(),
Err(_) => "sysctl failed".to_string(),
Exit code: 1
{
"response": "finished",
"result": "failure"
}