rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood3ae269d2f8b016b64e7c411eaedb1b4c82ba53ed
{
"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": "68333e7fc06318e3d7e5c4796fadfd398203a4aa",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": "lorenz"
},
"title": "Remove dependency `radicle-surf`",
"state": {
"status": "draft",
"conflicts": []
},
"before": "02318f199c6f29a2eede1f282e1f9b99927d27ec",
"after": "3ae269d2f8b016b64e7c411eaedb1b4c82ba53ed",
"commits": [
"3ae269d2f8b016b64e7c411eaedb1b4c82ba53ed",
"5904c85973d9c08ed3258784b91f78078bcef6ba",
"f1a9ad9d0764ce67d035896f2db98be48a7dd9ad"
],
"target": "02318f199c6f29a2eede1f282e1f9b99927d27ec",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "68333e7fc06318e3d7e5c4796fadfd398203a4aa",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": "lorenz"
},
"description": "The main use of `radicle-surf` in the `radicle-cli` crate is for producing diffs.\nOne use of diffs is in the review builder logic, which is obsolete.\nThe other use is in producing diffs for the `rad id` proposal changes.\n\nIf the review code is removed and `git-diff-tree` is used for `rad\nid`, then the dependency on `radicle-surf` can be removed.\n\nWhile removing `rad patch review [--patch | --delete]` can be seen as\na non-backwards compatible change, the code is obsolete \u2013 so this is\ndeemed safe.\n\nUsing `git-diff-tree` in place of a `heartwood` defined diff format\ncomes with the consquence of displaying temporary tree and path\ninformation, e.g.:\n\n```\ndiff --git a/radicle.json b/radicle.json\nindex 600d27b..b30194b 100644\n--- a/radicle.json\n+++ b/radicle.json\n```\n\nSome massaging of this output could be made, but that needs to be\ndecided if it is worth it.",
"base": "af3f07627b05dac4a68b102e2908da23b061a631",
"oid": "0ac3efb8da70e1f1bd53f74d2741baab1e87bc6f",
"timestamp": 1767957572
},
{
"id": "1bc488a0ff455354a8485fee2cc6919b13cdf6c6",
"author": {
"id": "did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz",
"alias": "lorenz"
},
"description": "- Split up into separate commits\n - Introduce function for removed commands\n - Start work to use `git2` for diffing in `rad id`",
"base": "02318f199c6f29a2eede1f282e1f9b99927d27ec",
"oid": "3ae269d2f8b016b64e7c411eaedb1b4c82ba53ed",
"timestamp": 1767973212
}
]
}
}
{
"response": "triggered",
"run_id": {
"id": "0748f2bf-aff8-467c-b04a-e5ea53a01521"
},
"info_url": "https://cci.rad.levitte.org//0748f2bf-aff8-467c-b04a-e5ea53a01521.html"
}
Started at: 2026-01-09 16:40:45.378893+01: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/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 130 issues · 13 patches │
╰────────────────────────────────────╯
Run `cd ./.` to go to the repository directory.
Exit code: 0
$ rad patch checkout 68333e7fc06318e3d7e5c4796fadfd398203a4aa
✓ Switched to branch patch/68333e7 at revision 68333e7
✓ Branch patch/68333e7 setup to track rad/patches/68333e7fc06318e3d7e5c4796fadfd398203a4aa
Exit code: 0
$ git config advice.detachedHead false
Exit code: 0
$ git checkout 3ae269d2f8b016b64e7c411eaedb1b4c82ba53ed
HEAD is now at 3ae269d2 cli: Remove dependency `radicle-surf`
Exit code: 0
$ rad patch show 68333e7fc06318e3d7e5c4796fadfd398203a4aa -p
╭────────────────────────────────────────────────────────────────────────────╮
│ Title Remove dependency `radicle-surf` │
│ Patch 68333e7fc06318e3d7e5c4796fadfd398203a4aa │
│ Author fintohaps z6Mkire…SQZ3voM │
│ Head 0ac3efb8da70e1f1bd53f74d2741baab1e87bc6f │
│ Base af3f07627b05dac4a68b102e2908da23b061a631 │
│ Branches patch/68333e7 │
│ Commits ahead 1, behind 4 │
│ Status draft │
│ │
│ The main use of `radicle-surf` in the `radicle-cli` crate is for producing │
│ diffs. │
│ One use of diffs is in the review builder logic, which is obsolete. │
│ The other use is in producing diffs for the `rad id` proposal changes. │
│ │
│ If the review code is removed and `git-diff-tree` is used for `rad │
│ id`, then the dependency on `radicle-surf` can be removed. │
│ │
│ While removing `rad patch review [--patch | --delete]` can be seen as │
│ a non-backwards compatible change, the code is obsolete – so this is │
│ deemed safe. │
│ │
│ Using `git-diff-tree` in place of a `heartwood` defined diff format │
│ comes with the consquence of displaying temporary tree and path │
│ information, e.g.: │
│ │
│ ``` │
│ diff --git a/radicle.json b/radicle.json │
│ index 600d27b..b30194b 100644 │
│ --- a/radicle.json │
│ +++ b/radicle.json │
│ ``` │
│ │
│ Some massaging of this output could be made, but that needs to be │
│ decided if it is worth it. │
├────────────────────────────────────────────────────────────────────────────┤
│ 0ac3efb POC: removing radicle-surf dependency │
├────────────────────────────────────────────────────────────────────────────┤
│ ● Revision 68333e7 @ 0ac3efb by fintohaps z6Mkire…SQZ3voM 4 hours ago │
│ ↑ Revision 1bc488a @ 3ae269d by lorenz z6MkkPv…WX5sTEz 34 seconds ago │
╰────────────────────────────────────────────────────────────────────────────╯
commit 0ac3efb8da70e1f1bd53f74d2741baab1e87bc6f
Author: Fintan Halpenny <fintan.halpenny@gmail.com>
Date: Fri Jan 9 11:12:45 2026 +0000
POC: removing radicle-surf dependency
The main use of `radicle-surf` in the `radicle-cli` crate is for producing diffs.
One use of diffs is in the review builder logic, which is obsolete.
The other use is in producing diffs for the `rad id` proposal changes.
If the review code is removed and `git-diff-tree` is used for `rad
id`, then the dependency on `radicle-surf` can be removed.
While removing `rad patch review [--patch | --delete]` can be seen as
a non-backwards compatible change, the code is obsolete – so this is
deemed safe.
Using `git-diff-tree` in place of a `heartwood` defined diff format
comes with the consquence of displaying temporary tree and path
information, e.g.:
```
diff --git a/radicle.json b/radicle.json
index 600d27b..b30194b 100644
--- a/radicle.json
+++ b/radicle.json
```
Some massaging of this output could be made, but that needs to be
decided if it is worth it.
diff --git a/Cargo.lock b/Cargo.lock
index 69c2c6b8f..c2d46a9a8 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -615,7 +615,7 @@ dependencies = [
"document-features",
"mio 1.0.4",
"parking_lot",
- "rustix 1.0.7",
+ "rustix",
"signal-hook",
"signal-hook-mio",
"winapi",
@@ -1010,18 +1010,6 @@ dependencies = [
"subtle",
]
-[[package]]
-name = "filetime"
-version = "0.2.23"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
-dependencies = [
- "cfg-if",
- "libc",
- "redox_syscall 0.4.1",
- "windows-sys 0.52.0",
-]
-
[[package]]
name = "flate2"
version = "1.1.1"
@@ -1122,16 +1110,6 @@ version = "0.31.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
-[[package]]
-name = "git-ref-format"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed6913a77cee9e231cab93577c9a5eea84a1344ab39294d91dc075b3c24499d0"
-dependencies = [
- "git-ref-format-core",
- "git-ref-format-macro",
-]
-
[[package]]
name = "git-ref-format-core"
version = "0.6.0"
@@ -1143,18 +1121,6 @@ dependencies = [
"thiserror 1.0.69",
]
-[[package]]
-name = "git-ref-format-macro"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e730f09c82961c28f5465b83da0aa5c2716156ce57da33a1fa51bbd560aa5f7"
-dependencies = [
- "git-ref-format-core",
- "proc-macro-error2",
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "git2"
version = "0.19.0"
@@ -1452,7 +1418,7 @@ dependencies = [
"gix-command",
"gix-config-value",
"parking_lot",
- "rustix 1.0.7",
+ "rustix",
"thiserror 2.0.17",
]
@@ -2144,12 +2110,6 @@ dependencies = [
"vcpkg",
]
-[[package]]
-name = "linux-raw-sys"
-version = "0.4.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
-
[[package]]
name = "linux-raw-sys"
version = "0.9.4"
@@ -2515,7 +2475,7 @@ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
dependencies = [
"cfg-if",
"libc",
- "redox_syscall 0.5.18",
+ "redox_syscall",
"smallvec",
"windows-link",
]
@@ -2684,28 +2644,6 @@ dependencies = [
"elliptic-curve",
]
-[[package]]
-name = "proc-macro-error-attr2"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
-dependencies = [
- "proc-macro2",
- "quote",
-]
-
-[[package]]
-name = "proc-macro-error2"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
-dependencies = [
- "proc-macro-error-attr2",
- "proc-macro2",
- "quote",
- "syn 2.0.106",
-]
-
[[package]]
name = "proc-macro2"
version = "1.0.101"
@@ -2833,7 +2771,6 @@ dependencies = [
"radicle-git-ref-format",
"radicle-localtime",
"radicle-node",
- "radicle-surf",
"radicle-term",
"schemars",
"serde",
@@ -2944,20 +2881,6 @@ dependencies = [
"thiserror 2.0.17",
]
-[[package]]
-name = "radicle-git-ext"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71a5fbca2ee3fc61a6b467e0b85da7c092421afc2538feb0023ad6792d6e39d0"
-dependencies = [
- "git-ref-format",
- "git2",
- "percent-encoding",
- "radicle-std-ext",
- "serde",
- "thiserror 1.0.69",
-]
-
[[package]]
name = "radicle-git-metadata"
version = "0.1.0"
@@ -3097,31 +3020,6 @@ dependencies = [
"zeroize",
]
-[[package]]
-name = "radicle-std-ext"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb935931bdd2a2966f3b584f3031d9d54ec0713ddbc563a0193d54e62a88ec73"
-
-[[package]]
-name = "radicle-surf"
-version = "0.26.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c814514d0bf56fbec811099eaa14da1349639b04b8317746c9cd9e6b0f02196"
-dependencies = [
- "anyhow",
- "base64 0.21.7",
- "flate2",
- "git2",
- "log",
- "nonempty",
- "radicle-git-ext",
- "radicle-std-ext",
- "tar",
- "thiserror 1.0.69",
- "url",
-]
-
[[package]]
name = "radicle-systemd"
version = "0.11.0"
@@ -3181,15 +3079,6 @@ dependencies = [
"getrandom 0.2.15",
]
-[[package]]
-name = "redox_syscall"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
-dependencies = [
- "bitflags 1.3.2",
-]
-
[[package]]
name = "redox_syscall"
version = "0.5.18"
@@ -3314,19 +3203,6 @@ version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace"
-[[package]]
-name = "rustix"
-version = "0.38.34"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
-dependencies = [
- "bitflags 2.9.1",
- "errno",
- "libc",
- "linux-raw-sys 0.4.13",
- "windows-sys 0.52.0",
-]
-
[[package]]
name = "rustix"
version = "1.0.7"
@@ -3336,7 +3212,7 @@ dependencies = [
"bitflags 2.9.1",
"errno",
"libc",
- "linux-raw-sys 0.9.4",
+ "linux-raw-sys",
"windows-sys 0.59.0",
]
@@ -3961,18 +3837,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7266304d24ca5a4b230545fc558c80e18bd3e1d2eb1be149b6bcd04398d3e79c"
dependencies = [
"log",
- "rustix 1.0.7",
-]
-
-[[package]]
-name = "tar"
-version = "0.4.40"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
-dependencies = [
- "filetime",
- "libc",
- "xattr",
+ "rustix",
]
[[package]]
@@ -3984,7 +3849,7 @@ dependencies = [
"fastrand",
"getrandom 0.3.3",
"once_cell",
- "rustix 1.0.7",
+ "rustix",
"windows-sys 0.60.2",
]
@@ -5010,17 +4875,6 @@ version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51"
-[[package]]
-name = "xattr"
-version = "1.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
-dependencies = [
- "libc",
- "linux-raw-sys 0.4.13",
- "rustix 0.38.34",
-]
-
[[package]]
name = "yansi"
version = "0.5.1"
diff --git a/crates/radicle-cli/Cargo.toml b/crates/radicle-cli/Cargo.toml
index 402afdfc4..812bbed27 100644
--- a/crates/radicle-cli/Cargo.toml
+++ b/crates/radicle-cli/Cargo.toml
@@ -28,7 +28,6 @@ radicle-cob = { workspace = true }
radicle-crypto = { workspace = true }
radicle-git-ref-format = { workspace = true, features = ["macro"] }
radicle-localtime = { workspace = true }
-radicle-surf = { workspace = true }
radicle-term = { workspace = true }
schemars = { workspace = true }
serde = { workspace = true }
diff --git a/crates/radicle-cli/src/commands/id.rs b/crates/radicle-cli/src/commands/id.rs
index 6bc9abbd0..a6a0e2c26 100644
--- a/crates/radicle-cli/src/commands/id.rs
+++ b/crates/radicle-cli/src/commands/id.rs
@@ -12,10 +12,8 @@ use radicle::node::device::Device;
use radicle::node::NodeId;
use radicle::storage::{ReadStorage as _, WriteRepository};
use radicle::{cob, crypto, Profile};
-use radicle_surf::diff::Diff;
use radicle_term::Element;
-use crate::git::unified_diff::Encode as _;
use crate::git::Rev;
use crate::terminal as term;
use crate::terminal::args::Error;
@@ -445,14 +443,14 @@ fn print_diff(
) -> anyhow::Result<()> {
let previous = if let Some(previous) = previous {
let previous = Doc::load_at(*previous, repo)?;
- let previous = serde_json::to_string_pretty(&previous.doc)?;
+ let previous = format!("{}\n", serde_json::to_string_pretty(&previous.doc)?);
Some(previous)
} else {
None
};
let current = Doc::load_at(*current, repo)?;
- let current = serde_json::to_string_pretty(¤t.doc)?;
+ let current = format!("{}\n", serde_json::to_string_pretty(¤t.doc)?);
let tmp = tempfile::tempdir()?;
let repo = radicle::git::raw::Repository::init_opts(
@@ -469,19 +467,22 @@ fn print_diff(
None
};
let current = radicle::git::write_tree(&doc::PATH, current.as_bytes(), &repo)?;
- let mut opts = radicle::git::raw::DiffOptions::new();
- opts.context_lines(u32::MAX);
- let diff = repo.diff_tree_to_tree(previous.as_ref(), Some(¤t), Some(&mut opts))?;
- let diff = Diff::try_from(diff)?;
-
- if let Some(modified) = diff.modified().next() {
- let diff = modified.diff.to_unified_string()?;
- print!("{diff}");
- } else {
- term::print(term::format::italic("No changes."));
+ {
+ let mut diff = std::process::Command::new("git");
+ diff.args(["-C".to_string(), repo.path().display().to_string()]);
+ diff.arg("diff-tree");
+ if let Some(previous) = previous {
+ diff.arg(format!("{}", previous.id()));
+ }
+ diff.arg(format!("{}", current.id()));
+ diff.arg(format!("-U{}", u16::MAX));
+ // diff.arg(format!("-- {}", doc::PATH.display().to_string()));
+ // eprintln!("{:?}", diff);
+ let mut child = diff.spawn()?;
+ let exit_status = child.wait()?;
+ std::process::exit(exit_status.code().unwrap_or(1));
}
- Ok(())
}
fn print_delegate_verification_error(err: &update::error::DelegateVerification) {
diff --git a/crates/radicle-cli/src/commands/patch/review.rs b/crates/radicle-cli/src/commands/patch/review.rs
index 5e3a398a4..00a995cb4 100644
--- a/crates/radicle-cli/src/commands/patch/review.rs
+++ b/crates/radicle-cli/src/commands/patch/review.rs
@@ -1,9 +1,6 @@
-mod builder;
-
use anyhow::{anyhow, Context};
use radicle::cob::patch::{PatchId, RevisionId, Verdict};
-use radicle::git;
use radicle::prelude::*;
use radicle::storage::git::Repository;
@@ -74,7 +71,7 @@ pub fn run(
.get_mut(&patch_id)
.context(format!("couldn't find patch {patch_id} locally"))?;
- let (revision_id, revision) = match revision_id {
+ let (revision_id, _revision) = match revision_id {
Some(id) => (
id,
patch
@@ -88,20 +85,12 @@ pub fn run(
match options.op {
Operation::Review(ReviewOptions {
by_hunk,
- unified,
- hunk,
- verdict,
+ unified: _,
+ hunk: _,
+ verdict: _,
}) if by_hunk => {
crate::warning::obsolete("rad patch review --patch");
- let mut opts = git::raw::DiffOptions::new();
- opts.patience(true)
- .minimal(true)
- .context_lines(unified as u32);
-
- builder::ReviewBuilder::new(patch_id, repository)
- .hunk(hunk)
- .verdict(verdict)
- .run(revision, &mut opts, &signer)?;
+ anyhow::bail!("`rad patch review --patch` has been removed")
}
Operation::Review(ReviewOptions { verdict, .. }) => {
let message = options.message.get(REVIEW_HELP_MSG)?;
@@ -135,14 +124,7 @@ pub fn run(
}
Operation::Delete => {
crate::warning::obsolete("rad patch review --delete");
- let name = git::refs::storage::draft::review(profile.id(), &patch_id);
-
- match repository.backend.find_reference(&name) {
- Ok(mut r) => r.delete()?,
- Err(e) => {
- anyhow::bail!("Couldn't delete review reference '{name}': {e}");
- }
- }
+ anyhow::bail!("`rad patch review --delete` has been removed")
}
}
diff --git a/crates/radicle-cli/src/commands/patch/review/builder.rs b/crates/radicle-cli/src/commands/patch/review/builder.rs
deleted file mode 100644
index 054273052..000000000
--- a/crates/radicle-cli/src/commands/patch/review/builder.rs
+++ /dev/null
@@ -1,1280 +0,0 @@
-//! Review builder.
-//!
-//! This module enables a user to review a patch by interactively viewing and accepting diff hunks.
-//! The interaction and output is modeled around `git add -p`.
-//!
-//! To implement this behavior, we keep a hidden Git tree object that tracks the state of the
-//! repository including the accepted hunks. Thus, every time a diff hunk is accepted, it is applied
-//! to that tree. We call that tree the "brain", as it tracks what the code reviewer has reviewed.
-//!
-//! The brain starts out equalling the tree of the base branch, and eventually, when the brain
-//! matches the tree of the patch being reviewed (by accepting hunks), we can say that the patch has
-//! been fully reviewed.
-//!
-use std::collections::VecDeque;
-use std::fmt::Write as _;
-use std::ops::{Deref, Not, Range};
-use std::path::{Path, PathBuf};
-use std::str::FromStr;
-use std::{fmt, io};
-
-use radicle::cob;
-use radicle::cob::patch::{PatchId, Revision, Verdict};
-use radicle::cob::{CodeLocation, CodeRange};
-use radicle::crypto;
-use radicle::git;
-use radicle::git::Oid;
-use radicle::node::device::Device;
-use radicle::prelude::*;
-use radicle::storage::git::{cob::DraftStore, Repository};
-use radicle_surf::diff::*;
-use radicle_term::{Element, VStack};
-
-use crate::git::pretty_diff::ToPretty;
-use crate::git::pretty_diff::{Blob, Blobs, Repo};
-use crate::git::unified_diff::{self, FileHeader};
-use crate::git::unified_diff::{Encode, HunkHeader};
-use crate::terminal as term;
-use crate::terminal::highlight::Highlighter;
-
-/// Help message shown to user.
-const HELP: &str = "\
-y - accept this hunk
-n - ignore this hunk
-c - comment on this hunk
-j - leave this hunk undecided, see next hunk
-k - leave this hunk undecided, see previous hunk
-s - split the current hunk into smaller hunks
-q - quit; do not accept this hunk nor any of the remaining ones
-? - print help";
-
-/// A terminal or file where the review UI output can be written to.
-trait PromptWriter: io::Write {
- /// Is the writer a terminal?
- fn is_terminal(&self) -> bool;
-}
-
-impl PromptWriter for Box<dyn PromptWriter> {
- fn is_terminal(&self) -> bool {
- self.deref().is_terminal()
- }
-}
-
-impl<T: io::Write + io::IsTerminal> PromptWriter for T {
- fn is_terminal(&self) -> bool {
- <Self as io::IsTerminal>::is_terminal(self)
- }
-}
-
-/// The actions that a user can carry out on a review item.
-#[derive(Debug, Copy, Clone, PartialEq, Eq)]
-pub enum ReviewAction {
- Accept,
- Ignore,
- Comment,
- Split,
- Next,
- Previous,
- Help,
- Quit,
-}
-
-impl ReviewAction {
- /// Ask the user what action to take.
- fn prompt(
- mut input: impl io::BufRead,
- mut output: impl io::Write,
- prompt: impl fmt::Display,
- ) -> io::Result<Option<Self>> {
- write!(&mut output, "{prompt} ")?;
-
- let mut s = String::new();
- input.read_line(&mut s)?;
-
- if s.trim().is_empty() {
- return Ok(None);
- }
- Self::from_str(s.trim())
- .map(Some)
- .map_err(|e| io::Error::new(io::ErrorKind::InvalidInput, e))
- }
-}
-
-impl std::fmt::Display for ReviewAction {
- fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
- match self {
- Self::Accept => write!(f, "y"),
- Self::Ignore => write!(f, "n"),
- Self::Comment => write!(f, "c"),
- Self::Split => write!(f, "s"),
- Self::Next => write!(f, "j"),
- Self::Previous => write!(f, "k"),
- Self::Help => write!(f, "?"),
- Self::Quit => write!(f, "q"),
- }
- }
-}
-
-impl FromStr for ReviewAction {
- type Err = io::Error;
-
- fn from_str(s: &str) -> Result<Self, Self::Err> {
- match s {
- "y" => Ok(Self::Accept),
- "n" => Ok(Self::Ignore),
- "c" => Ok(Self::Comment),
- "s" => Ok(Self::Split),
- "j" => Ok(Self::Next),
- "k" => Ok(Self::Previous),
- "?" => Ok(Self::Help),
- "q" => Ok(Self::Quit),
- _ => Err(io::Error::new(
- io::ErrorKind::InvalidInput,
- format!("invalid action '{s}'"),
- )),
- }
- }
-}
-
-/// A single review item. Can be a hunk or eg. a file move.
-/// Files are usually split into multiple review items.
-#[derive(Debug)]
-pub enum ReviewItem {
- FileAdded {
- path: PathBuf,
- header: FileHeader,
- new: DiffFile,
- hunk: Option<Hunk<Modification>>,
- },
- FileDeleted {
- path: PathBuf,
- header: FileHeader,
- old: DiffFile,
- hunk: Option<Hunk<Modification>>,
- },
- FileModified {
- path: PathBuf,
- header: FileHeader,
- old: DiffFile,
- new: DiffFile,
- hunk: Option<Hunk<Modification>>,
- },
- FileMoved {
- moved: Moved,
- },
- FileCopied {
- copied: Copied,
- },
- FileEofChanged {
- path: PathBuf,
- header: FileHeader,
- old: DiffFile,
- new: DiffFile,
- eof: EofNewLine,
- },
- FileModeChanged {
- path: PathBuf,
- header: FileHeader,
- old: DiffFile,
- new: DiffFile,
- },
-}
-
-impl ReviewItem {
- fn hunk(&self) -> Option<&Hunk<Modification>> {
- match self {
- Self::FileAdded { hunk, .. } => hunk.as_ref(),
- Self::FileDeleted { hunk, .. } => hunk.as_ref(),
- Self::FileModified { hunk, .. } => hunk.as_ref(),
- _ => None,
- }
- }
-
- fn hunk_header(&self) -> Option<HunkHeader> {
- self.hunk().and_then(|h| HunkHeader::try_from(h).ok())
- }
-
- fn paths(&self) -> (Option<(&Path, Oid)>, Option<(&Path, Oid)>) {
- match self {
- Self::FileAdded { path, new, .. } => (None, Some((path, Oid::from(*new.oid)))),
- Self::FileDeleted { path, old, .. } => (Some((path, Oid::from(*old.oid))), None),
- Self::FileMoved { moved } => (
- Some((&moved.old_path, Oid::from(*moved.old.oid))),
- Some((&moved.new_path, Oid::from(*moved.new.oid))),
- ),
- Self::FileCopied { copied } => (
- Some((&copied.old_path, Oid::from(*copied.old.oid))),
- Some((&copied.new_path, Oid::from(*copied.new.oid))),
- ),
- Self::FileModified { path, old, new, .. } => (
- Some((path, Oid::from(*old.oid))),
- Some((path, Oid::from(*new.oid))),
- ),
- Self::FileEofChanged { path, old, new, .. } => (
- Some((path, Oid::from(*old.oid))),
- Some((path, Oid::from(*new.oid))),
- ),
- Self::FileModeChanged { path, old, new, .. } => (
- Some((path, Oid::from(*old.oid))),
- Some((path, Oid::from(*new.oid))),
- ),
- }
- }
-
- fn file_header(&self) -> FileHeader {
- match self {
- Self::FileAdded { header, .. } => header.clone(),
- Self::FileDeleted { header, .. } => header.clone(),
- Self::FileMoved { moved } => FileHeader::Moved {
- old_path: moved.old_path.clone(),
- new_path: moved.new_path.clone(),
- },
- Self::FileCopied { copied } => FileHeader::Copied {
- old_path: copied.old_path.clone(),
- new_path: copied.new_path.clone(),
- },
- Self::FileModified { header, .. } => header.clone(),
- Self::FileEofChanged { header, .. } => header.clone(),
- Self::FileModeChanged { header, .. } => header.clone(),
- }
- }
-
- fn blobs<R: Repo>(&self, repo: &R) -> Blobs<(PathBuf, Blob)> {
- let (old, new) = self.paths();
- Blobs::from_paths(old, new, repo)
- }
-
- fn pretty<R: Repo>(&self, repo: &R) -> Box<dyn Element> {
- let mut hi = Highlighter::default();
- let blobs = self.blobs(repo);
- let highlighted = blobs.highlight(&mut hi);
- let header = self.file_header();
-
- match self {
- Self::FileMoved { moved } => moved.pretty(&mut hi, &header, repo),
- Self::FileCopied { copied } => copied.pretty(&mut hi, &header, repo),
- Self::FileModified { hunk, .. }
- | Self::FileAdded { hunk, .. }
- | Self::FileDeleted { hunk, .. } => {
- let header = header.pretty(&mut hi, &None, repo);
- let vstack = term::VStack::default()
- .border(Some(term::colors::FAINT))
- .padding(1)
- .child(header);
-
- if let Some(hunk) = hunk {
- let hunk = hunk.pretty(&mut hi, &highlighted, repo);
- if !hunk.is_empty() {
- return vstack.divider().merge(hunk).boxed();
- }
- }
- vstack
- }
- Self::FileEofChanged { eof, .. } => match eof {
- EofNewLine::NewMissing => {
- VStack::default().child(term::Label::new("`\\n` missing at end-of-file"))
- }
- EofNewLine::OldMissing => {
- VStack::default().child(term::Label::new("`\\n` added at end-of-file"))
- }
- _ => VStack::default(),
- },
- Self::FileModeChanged { .. } => VStack::default(),
- }
- .boxed()
- }
-}
-
-/// Queue of items (usually hunks) left to review.
-#[derive(Default)]
-pub struct ReviewQueue {
- /// Hunks left to review.
- queue: VecDeque<(usize, ReviewItem)>,
-}
-
-impl ReviewQueue {
- /// Add a file to the queue.
- /// Mostly splits files into individual review items (eg. hunks) to review.
- fn add_file(&mut self, file: FileDiff) {
- let header = FileHeader::from(&file);
-
- match file {
- FileDiff::Moved(moved) => {
- self.add_item(ReviewItem::FileMoved { moved });
- }
- FileDiff::Copied(copied) => {
- self.add_item(ReviewItem::FileCopied { copied });
- }
- FileDiff::Added(a) => {
- self.add_item(ReviewItem::FileAdded {
- path: a.path,
- header: header.clone(),
- new: a.new,
- hunk: if let DiffContent::Plain {
- hunks: Hunks(mut hs),
- ..
- } = a.diff
- {
- hs.pop()
- } else {
- None
- },
- });
- }
- FileDiff::Deleted(d) => {
- self.add_item(ReviewItem::FileDeleted {
- path: d.path,
- header: header.clone(),
- old: d.old,
- hunk: if let DiffContent::Plain {
- hunks: Hunks(mut hs),
- ..
- } = d.diff
- {
- hs.pop()
- } else {
- None
- },
- });
- }
- FileDiff::Modified(m) => {
- if m.old.mode != m.new.mode {
- self.add_item(ReviewItem::FileModeChanged {
- path: m.path.clone(),
- header: header.clone(),
- old: m.old.clone(),
- new: m.new.clone(),
- });
- }
- match m.diff {
- DiffContent::Empty => {
- // Likely a file mode change, which is handled above.
- }
- DiffContent::Binary => {
- self.add_item(ReviewItem::FileModified {
- path: m.path.clone(),
- header: header.clone(),
- old: m.old.clone(),
- new: m.new.clone(),
- hunk: None,
- });
- }
- DiffContent::Plain {
- hunks: Hunks(hunks),
- eof,
- ..
- } => {
- for hunk in hunks {
- self.add_item(ReviewItem::FileModified {
- path: m.path.clone(),
- header: header.clone(),
- old: m.old.clone(),
- new: m.new.clone(),
- hunk: Some(hunk),
- });
- }
- if let EofNewLine::OldMissing | EofNewLine::NewMissing = eof {
- self.add_item(ReviewItem::FileEofChanged {
- path: m.path.clone(),
- header: header.clone(),
- old: m.old.clone(),
- new: m.new.clone(),
- eof,
- })
- }
- }
- }
- }
- }
- }
-
- fn add_item(&mut self, item: ReviewItem) {
- self.queue.push_back((self.queue.len(), item));
- }
-}
-
-impl From<Diff> for ReviewQueue {
- fn from(diff: Diff) -> Self {
- let mut queue = Self::default();
- for file in diff.into_files() {
- queue.add_file(file);
- }
- queue
- }
-}
-
-impl std::ops::Deref for ReviewQueue {
- type Target = VecDeque<(usize, ReviewItem)>;
-
- fn deref(&self) -> &Self::Target {
- &self.queue
- }
-}
-
-impl std::ops::DerefMut for ReviewQueue {
- fn deref_mut(&mut self) -> &mut Self::Target {
- &mut self.queue
- }
-}
-
-impl Iterator for ReviewQueue {
- type Item = (usize, ReviewItem);
-
- fn next(&mut self) -> Option<Self::Item> {
- self.queue.pop_front()
- }
-}
-
-/// Builds a review for a single file.
-/// Adjusts line deltas when a hunk is ignored.
-pub struct FileReviewBuilder {
- header: FileHeader,
- delta: i32,
-}
-
-impl FileReviewBuilder {
- fn new(item: &ReviewItem) -> Self {
- Self {
- header: item.file_header(),
- delta: 0,
- }
- }
-
- fn set_item(&mut self, item: &ReviewItem) -> &mut Self {
- let header = item.file_header();
- if self.header != header {
- self.header = header;
- self.delta = 0;
- }
- self
- }
-
- fn ignore_item(&mut self, item: &ReviewItem) {
- if let Some(h) = item.hunk_header() {
- self.delta += h.new_size as i32 - h.old_size as i32;
- }
- }
-
- fn item_diff(&mut self, item: ReviewItem) -> Result<git::raw::Diff<'_>, Error> {
- let mut buf = Vec::new();
- let mut writer = unified_diff::Writer::new(&mut buf);
- writer.encode(&self.header)?;
-
- if let (Some(h), Some(mut header)) = (item.hunk(), item.hunk_header()) {
- header.old_line_no -= self.delta as u32;
- header.new_line_no -= self.delta as u32;
-
- let h = Hunk {
- header: header.to_unified_string()?.as_bytes().to_owned().into(),
- lines: h.lines.clone(),
- old: h.old.clone(),
- new: h.new.clone(),
- };
- writer.encode(&h)?;
- }
- drop(writer);
-
- git::raw::Diff::from_buffer(&buf).map_err(Error::from)
- }
-}
-
-/// Represents the reviewer's brain, ie. what they have seen or not seen in terms
-/// of changes introduced by a patch.
-pub struct Brain<'a> {
- /// Where the review draft is being stored.
- refname: git::fmt::Namespaced<'a>,
- /// The commit pointed to by the ref.
- head: git::raw::Commit<'a>,
- /// The tree of accepted changes pointed to by the head commit.
- accepted: git::raw::Tree<'a>,
-}
-
-impl<'a> Brain<'a> {
- /// Create a new brain in the repository.
- fn new(
- patch: PatchId,
- remote: &NodeId,
- base: git::raw::Commit,
- repo: &'a git::raw::Repository,
- ) -> Result<Self, git::raw::Error> {
- let refname = Self::refname(&patch, remote);
- let author = repo.signature()?;
- let oid = repo.commit(
- Some(refname.as_str()),
- &author,
- &author,
- &format!("Review for {patch}"),
- &base.tree()?,
- // TODO: Verify this is necessary, shouldn't matter.
- &[&base],
- )?;
- let head = repo.find_commit(oid)?;
- let tree = head.tree()?;
-
- Ok(Self {
- refname,
- head,
- accepted: tree,
- })
- }
-
- /// Return the content identifier of this brain. This represents the state of the
- /// accepted hunks, ie. the git tree.
- fn cid(&self) -> Oid {
- self.accepted.id().into()
- }
-
- /// Load an existing brain from the repository.
- fn load(
- patch: PatchId,
- remote: &NodeId,
- repo: &'a git::raw::Repository,
- ) -> Result<Self, git::raw::Error> {
- // TODO: Validate this leads to correct UX for potentially abandoned drafts on
- // past revisions.
- let refname = Self::refname(&patch, remote);
- let head = repo.find_reference(&refname)?.peel_to_commit()?;
- let tree = head.tree()?;
-
- Ok(Self {
- refname,
- head,
- accepted: tree,
- })
- }
-
- /// Accept changes to the brain.
- fn accept(
- &mut self,
- diff: git::raw::Diff,
- repo: &'a git::raw::Repository,
- ) -> Result<(), git::raw::Error> {
- let mut index = repo.apply_to_tree(&self.accepted, &diff, None)?;
- let accepted = index.write_tree_to(repo)?;
- self.accepted = repo.find_tree(accepted)?;
-
- // Update review with new brain.
- let head = self.head.amend(
- Some(&self.refname),
- None,
- None,
- None,
- None,
- Some(&self.accepted),
- )?;
- self.head = repo.find_commit(head)?;
-
- Ok(())
- }
-
- /// Get the brain's refname given the patch and remote.
- fn refname(patch: &PatchId, remote: &NodeId) -> git::fmt::Namespaced<'a> {
- git::refs::storage::draft::review(remote, patch)
- }
-}
-
-/// Builds a patch review interactively, across multiple files.
-pub struct ReviewBuilder<'a> {
- /// Patch being reviewed.
- patch_id: PatchId,
- /// Stored copy of repository.
- repo: &'a Repository,
- /// Single hunk review.
- hunk: Option<usize>,
- /// Verdict for review items.
- verdict: Option<Verdict>,
-}
-
-impl<'a> ReviewBuilder<'a> {
- /// Create a new review builder.
- pub fn new(patch_id: PatchId, repo: &'a Repository) -> Self {
- Self {
- patch_id,
- repo,
- hunk: None,
- verdict: None,
- }
- }
-
- /// Review a single hunk. Set to `None` to review all hunks.
- pub fn hunk(mut self, hunk: Option<usize>) -> Self {
- self.hunk = hunk;
- self
- }
-
- /// Give this verdict to all review items. Set to `None` to not give a verdict.
- pub fn verdict(mut self, verdict: Option<Verdict>) -> Self {
- self.verdict = verdict;
- self
- }
-
- /// Run the review builder for the given revision.
- pub fn run<G>(
- self,
- revision: &Revision,
- opts: &mut git::raw::DiffOptions,
- signer: &Device<G>,
- ) -> anyhow::Result<()>
- where
- G: crypto::signature::Signer<crypto::Signature>,
- {
- let repo = self.repo.raw();
- let base = repo.find_commit((*revision.base()).into())?;
- let patch_id = self.patch_id;
- let tree = {
- let commit = repo.find_commit(revision.head().into())?;
- commit.tree()?
- };
-
- let stdout = io::stdout().lock();
- let mut stdin = io::stdin().lock();
- let mut writer: Box<dyn PromptWriter> = if self.hunk.is_some() || !stdout.is_terminal() {
- Box::new(stdout)
- } else {
- Box::new(io::stderr().lock())
- };
- let mut brain = if let Ok(b) = Brain::load(self.patch_id, signer.public_key(), repo) {
- term::success!(
- "Loaded existing review {} for patch {}",
- term::format::secondary(term::format::parens(term::format::oid(b.head.id()))),
- term::format::tertiary(&patch_id)
- );
- b
- } else {
- Brain::new(self.patch_id, signer.public_key(), base, repo)?
- };
- let diff = self.diff(&brain.accepted, &tree, repo, opts)?;
- let drafts = DraftStore::new(self.repo, *signer.public_key());
- let mut patches = cob::patch::Cache::no_cache(&drafts)?;
- let mut patch = patches.get_mut(&patch_id)?;
- let mut queue = ReviewQueue::from(diff);
-
- if queue.is_empty() {
- term::success!("All hunks have been reviewed");
- return Ok(());
- }
-
- let review = if let Some(r) = revision.review_by(signer.public_key()) {
- r.id()
- } else {
- patch.review(
- revision.id(),
- // This is amended before the review is finalized, if all hunks are
- // accepted. We can't set this to `None`, as that will be invalid without
- // a review summary.
- Some(Verdict::Reject),
- None,
- vec![],
- signer,
- )?
- };
-
- // File review for the current file. Starts out as `None` and is set on the first hunk.
- // Keeps track of deltas for hunk offsets.
- let mut file: Option<FileReviewBuilder> = None;
- let total = queue.len();
-
- while let Some((ix, item)) = queue.next() {
- if let Some(hunk) = self.hunk {
- if hunk != ix + 1 {
- continue;
- }
- }
- let progress = term::format::secondary(format!("({}/{total})", ix + 1));
- let file = match file.as_mut() {
- Some(fr) => fr.set_item(&item),
- None => file.insert(FileReviewBuilder::new(&item)),
- };
- term::element::write_to(
- &item.pretty(repo),
- &mut writer,
- term::Constraint::from_env().unwrap_or_default(),
- )?;
-
- // Prompts the user for action on the above hunk.
- match self.prompt(&mut stdin, &mut writer, progress) {
- // When a hunk is accepted, we convert it to unified diff format,
- // and apply it to the `brain`.
- Some(ReviewAction::Accept) => {
- // Compute hunk diff and update brain by applying it.
- let diff = file.item_diff(item)?;
- brain.accept(diff, repo)?;
-
- if self.hunk.is_some() {
- term::success!("Updated brain to {}", brain.cid());
- }
- }
- Some(ReviewAction::Ignore) => {
- // Do nothing. Hunk will be reviewable again next time.
- file.ignore_item(&item);
- }
- Some(ReviewAction::Comment) => {
- let (old, new) = item.paths();
- let path = old.or(new);
-
- if let (Some(hunk), Some((path, _))) = (item.hunk(), path) {
- let builder = CommentBuilder::new(revision.head(), path.to_path_buf());
- let comments = builder.edit(hunk)?;
-
- patch.transaction("Review comments", signer, |tx| {
- for comment in comments {
- tx.review_comment(
- review,
- comment.body,
- Some(comment.location),
- None, // Not a reply.
- vec![], // No embeds.
- )?;
- }
- Ok(())
- })?;
- } else {
- eprintln!(
- "{}",
- term::format::tertiary(
- "Commenting on binary blobs is not yet implemented"
- )
- .bold()
- );
- queue.push_front((ix, item));
- }
- }
- Some(ReviewAction::Split) => {
- eprintln!(
- "{}",
- term::format::tertiary("Splitting is not yet implemented").bold()
- );
- queue.push_front((ix, item));
- }
- Some(ReviewAction::Next) => {
- queue.push_back((ix, item));
- }
- Some(ReviewAction::Previous) => {
- queue.push_front((ix, item));
-
- if let Some(e) = queue.pop_back() {
- queue.push_front(e);
- }
- }
- Some(ReviewAction::Quit) => {
- break;
- }
- Some(ReviewAction::Help) => {
- eprintln!("{}", term::format::tertiary(HELP).bold());
- queue.push_front((ix, item));
- }
- None => {
- eprintln!(
- "{}",
- term::format::secondary(format!(
- "{} hunk(s) remaining to review",
- queue.len() + 1
- ))
- );
- queue.push_front((ix, item));
- }
- }
- }
-
- Ok(())
- }
-
- fn diff(
- &self,
- brain: &git::raw::Tree<'_>,
- tree: &git::raw::Tree<'_>,
- repo: &'a git::raw::Repository,
- opts: &mut git::raw::DiffOptions,
- ) -> Result<Diff, Error> {
- let mut find_opts = git::raw::DiffFindOptions::new();
- find_opts.exact_match_only(true);
- find_opts.all(true);
- find_opts.copies(false); // We don't support finding copies at the moment.
-
- let mut diff = repo.diff_tree_to_tree(Some(brain), Some(tree), Some(opts))?;
- diff.find_similar(Some(&mut find_opts))?;
-
- let diff = Diff::try_from(diff)?;
-
- Ok(diff)
- }
-
- fn prompt(
- &self,
- mut input: impl io::BufRead,
- output: &mut impl PromptWriter,
- progress: impl fmt::Display,
- ) -> Option<ReviewAction> {
- if let Some(v) = self.verdict {
- match v {
- Verdict::Accept => Some(ReviewAction::Accept),
- Verdict::Reject => Some(ReviewAction::Ignore),
- }
- } else if output.is_terminal() {
- let prompt = term::format::secondary("Accept this hunk? [y,n,c,j,k,q,?]").bold();
-
- ReviewAction::prompt(&mut input, output, format!("{progress} {prompt}"))
- .unwrap_or(Some(ReviewAction::Help))
- } else {
- Some(ReviewAction::Ignore)
- }
- }
-}
-
-#[derive(Debug, PartialEq, Eq)]
-struct ReviewComment {
- location: CodeLocation,
- body: String,
-}
-
-#[derive(thiserror::Error, Debug)]
-enum Error {
- #[error(transparent)]
- Diff(#[from] unified_diff::Error),
- #[error(transparent)]
- Surf(#[from] radicle_surf::diff::git::error::Diff),
- #[error(transparent)]
- Io(#[from] io::Error),
- #[error(transparent)]
- Format(#[from] std::fmt::Error),
- #[error(transparent)]
- Git(#[from] git::raw::Error),
-}
-
-#[derive(Debug)]
-struct CommentBuilder {
- commit: Oid,
- path: PathBuf,
- comments: Vec<ReviewComment>,
-}
-
-impl CommentBuilder {
- fn new(commit: Oid, path: PathBuf) -> Self {
- Self {
- commit,
- path,
- comments: Vec::new(),
- }
- }
-
- fn edit(mut self, hunk: &Hunk<Modification>) -> Result<Vec<ReviewComment>, Error> {
- let mut input = String::new();
- for line in hunk.to_unified_string()?.lines() {
- writeln!(&mut input, "> {line}")?;
- }
- let output = term::Editor::comment()
- .extension("diff")
- .initial(input)?
- .edit()?;
-
- if let Some(output) = output {
- let header = HunkHeader::try_from(hunk)?;
- self.add_hunk(header, &output);
- }
- Ok(self.comments())
- }
-
- fn add_hunk(&mut self, hunk: HunkHeader, input: &str) -> &mut Self {
- let lines = input.trim().lines().map(|l| l.trim());
- let (mut old_line, mut new_line) = (hunk.old_line_no as usize, hunk.new_line_no as usize);
- let (mut old_start, mut new_start) = (old_line, new_line);
- let mut comment = String::new();
-
- for line in lines {
- if line.starts_with('>') {
- if !comment.is_empty() {
- self.add_comment(
- &hunk,
- &comment,
- old_start..old_line - 1,
- new_start..new_line - 1,
- );
-
- old_start = old_line - 1;
- new_start = new_line - 1;
-
- comment.clear();
- }
- match line.trim_start_matches('>').trim_start().chars().next() {
- Some('-') => old_line += 1,
- Some('+') => new_line += 1,
- _ => {
- old_line += 1;
- new_line += 1;
- }
- }
- } else {
- comment.push_str(line);
- comment.push('\n');
- }
- }
- if !comment.is_empty() {
- self.add_comment(
- &hunk,
- &comment,
- old_start..old_line - 1,
- new_start..new_line - 1,
- );
- }
- self
- }
-
- fn add_comment(
- &mut self,
- hunk: &HunkHeader,
- comment: &str,
- mut old_range: Range<usize>,
- mut new_range: Range<usize>,
- ) {
- // Empty lines between quoted text can generate empty comments
- // that should be filtered out.
- if comment.trim().is_empty() {
- return;
- }
- // Top-level comment, it should apply to the whole hunk.
- if old_range.is_empty() && new_range.is_empty() {
- old_range = hunk.old_line_no as usize..(hunk.old_line_no + hunk.old_size + 1) as usize;
- new_range = hunk.new_line_no as usize..(hunk.new_line_no + hunk.new_size + 1) as usize;
- }
- let old_range = old_range
- .is_empty()
- .not()
- .then_some(old_range)
- .map(|range| CodeRange::Lines { range });
- let new_range = (new_range)
- .is_empty()
- .not()
- .then_some(new_range)
- .map(|range| CodeRange::Lines { range });
-
- self.comments.push(ReviewComment {
- location: CodeLocation {
- commit: self.commit,
- path: self.path.clone(),
- old: old_range,
- new: new_range,
- },
- body: comment.trim().to_owned(),
- });
- }
-
- fn comments(self) -> Vec<ReviewComment> {
- self.comments
- }
-}
-#[cfg(test)]
-mod tests {
- use super::*;
-
- #[test]
- fn test_review_comments_basic() {
- let input = r#"
-> @@ -2559,18 +2560,18 @@ where
-> // Only consider onion addresses if configured.
-> AddressType::Onion => self.config.onion.is_some(),
-> AddressType::Dns | AddressType::Ipv4 | AddressType::Ipv6 => true,
-> - })
-> - .take(wanted)
-> - .collect::<Vec<_>>(); // # -2564
-
-Comment #1.
-
-> + });
->
-> - if available.len() < target {
-> - log::warn!( # -2567
-> + // Peers we are going to attempt connections to.
-> + let connect = available.take(wanted).collect::<Vec<_>>();
-
-Comment #2.
-
-> + if connect.len() < wanted {
-> + log::debug!(
-> target: "service",
-> - "Not enough available peers to connect to (available={}, target={target})",
-> - available.len()
-
-Comment #3.
-
-> + "Not enough available peers to connect to (available={}, wanted={wanted})",
-
-Comment #4.
-
-> + connect.len()
-> );
-> }
-> - for (id, ka) in available {
-> + for (id, ka) in connect {
-> self.connect(id, ka.addr.clone());
-> }
-> }
-
-Comment #5.
-
-"#;
-
- let commit = Oid::from_str("a32c4b93e2573fd83b15ac1ad6bf1317dc8fd760").unwrap();
- let path = PathBuf::from_str("main.rs").unwrap();
- let expected = &[
- (ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: Some(CodeRange::Lines { range: 2559..2565 }),
- new: Some(CodeRange::Lines { range: 2560..2563 }),
- },
- body: "Comment #1.".to_owned(),
- }),
- (ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: Some(CodeRange::Lines { range: 2565..2568 }),
- new: Some(CodeRange::Lines { range: 2563..2567 }),
- },
- body: "Comment #2.".to_owned(),
- }),
- (ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: Some(CodeRange::Lines { range: 2568..2571 }),
- new: Some(CodeRange::Lines { range: 2567..2570 }),
- },
- body: "Comment #3.".to_owned(),
- }),
- (ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: None,
- new: Some(CodeRange::Lines { range: 2570..2571 }),
- },
- body: "Comment #4.".to_owned(),
- }),
- (ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: Some(CodeRange::Lines { range: 2571..2577 }),
- new: Some(CodeRange::Lines { range: 2571..2578 }),
- },
- body: "Comment #5.".to_owned(),
- }),
- ];
-
- let mut builder = CommentBuilder::new(commit, path.clone());
- builder.add_hunk(
- HunkHeader {
- old_line_no: 2559,
- old_size: 18,
- new_line_no: 2560,
- new_size: 18,
- text: vec![],
- },
- input,
- );
- let actual = builder.comments();
-
- assert_eq!(actual.len(), expected.len(), "{actual:#?}");
-
- for (left, right) in actual.iter().zip(expected) {
- assert_eq!(left, right);
- }
- }
-
- #[test]
- fn test_review_comments_multiline() {
- let input = r#"
-> @@ -2559,9 +2560,7 @@ where
-> // Only consider onion addresses if configured.
-> AddressType::Onion => self.config.onion.is_some(),
-> AddressType::Dns | AddressType::Ipv4 | AddressType::Ipv6 => true,
-> - })
-> - .take(wanted)
-> - .collect::<Vec<_>>(); // # -2564
-
-Blah blah blah blah blah blah blah.
-Blah blah blah.
-
-Blaah blaah blaah blaah blaah blaah blaah.
-blaah blaah blaah.
-
-Blaaah blaaah blaaah.
-
-> + });
->
-> - if available.len() < target {
-> - log::warn!( # -2567
-> + // Peers we are going to attempt connections to.
-> + let connect = available.take(wanted).collect::<Vec<_>>();
-
-Woof woof.
-Woof.
-Woof.
-
-Woof.
-
-"#;
-
- let commit = Oid::from_str("a32c4b93e2573fd83b15ac1ad6bf1317dc8fd760").unwrap();
- let path = PathBuf::from_str("main.rs").unwrap();
- let expected = &[
- (ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: Some(CodeRange::Lines { range: 2559..2565 }),
- new: Some(CodeRange::Lines { range: 2560..2563 }),
- },
- body: r#"
-Blah blah blah blah blah blah blah.
-Blah blah blah.
-
-Blaah blaah blaah blaah blaah blaah blaah.
-blaah blaah blaah.
-
-Blaaah blaaah blaaah.
-"#
- .trim()
- .to_owned(),
- }),
- (ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: Some(CodeRange::Lines { range: 2565..2568 }),
- new: Some(CodeRange::Lines { range: 2563..2567 }),
- },
- body: r#"
-Woof woof.
-Woof.
-Woof.
-
-Woof.
-"#
- .trim()
- .to_owned(),
- }),
- ];
-
- let mut builder = CommentBuilder::new(commit, path.clone());
- builder.add_hunk(
- HunkHeader {
- old_line_no: 2559,
- old_size: 9,
- new_line_no: 2560,
- new_size: 7,
- text: vec![],
- },
- input,
- );
- let actual = builder.comments();
-
- assert_eq!(actual.len(), expected.len(), "{actual:#?}");
-
- for (left, right) in actual.iter().zip(expected) {
- assert_eq!(left, right);
- }
- }
-
- #[test]
- fn test_review_comments_before() {
- let input = r#"
-This is a top-level comment.
-
-> @@ -2559,9 +2560,7 @@ where
-> // Only consider onion addresses if configured.
-> AddressType::Onion => self.config.onion.is_some(),
-> AddressType::Dns | AddressType::Ipv4 | AddressType::Ipv6 => true,
-> - })
-> - .take(wanted)
-> - .collect::<Vec<_>>(); // # -2564
-> + });
->
-> - if available.len() < target {
-> - log::warn!( # -2567
-> + // Peers we are going to attempt connections to.
-> + let connect = available.take(wanted).collect::<Vec<_>>();
-"#;
-
- let commit = Oid::from_str("a32c4b93e2573fd83b15ac1ad6bf1317dc8fd760").unwrap();
- let path = PathBuf::from_str("main.rs").unwrap();
- let expected = &[(ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: Some(CodeRange::Lines { range: 2559..2569 }),
- new: Some(CodeRange::Lines { range: 2560..2568 }),
- },
- body: "This is a top-level comment.".to_owned(),
- })];
-
- let mut builder = CommentBuilder::new(commit, path.clone());
- builder.add_hunk(
- HunkHeader {
- old_line_no: 2559,
- old_size: 9,
- new_line_no: 2560,
- new_size: 7,
- text: vec![],
- },
- input,
- );
- let actual = builder.comments();
-
- assert_eq!(actual.len(), expected.len(), "{actual:#?}");
-
- for (left, right) in actual.iter().zip(expected) {
- assert_eq!(left, right);
- }
- }
-
- #[test]
- fn test_review_comments_split_hunk() {
- let input = r#"
-> @@ -2559,6 +2560,4 @@ where
-> // Only consider onion addresses if configured.
-> AddressType::Onion => self.config.onion.is_some(),
-> AddressType::Dns | AddressType::Ipv4 | AddressType::Ipv6 => true,
-> - })
-> - .take(wanted)
-
-> - .collect::<Vec<_>>();
-> + });
-
-Comment on a split hunk.
-"#;
-
- let commit = Oid::from_str("a32c4b93e2573fd83b15ac1ad6bf1317dc8fd760").unwrap();
- let path = PathBuf::from_str("main.rs").unwrap();
- let expected = &[(ReviewComment {
- location: CodeLocation {
- commit,
- path: path.clone(),
- old: Some(CodeRange::Lines { range: 2564..2565 }),
- new: Some(CodeRange::Lines { range: 2563..2564 }),
- },
- body: "Comment on a split hunk.".to_owned(),
- })];
-
- let mut builder = CommentBuilder::new(commit, path.clone());
- builder.add_hunk(
- HunkHeader {
- old_line_no: 2559,
- old_size: 6,
- new_line_no: 2560,
- new_size: 4,
- text: vec![],
- },
- input,
- );
- let actual = builder.comments();
-
- assert_eq!(actual.len(), expected.len(), "{actual:#?}");
-
- for (left, right) in actual.iter().zip(expected) {
- assert_eq!(left, right);
- }
- }
-}
diff --git a/crates/radicle-cli/src/git.rs b/crates/radicle-cli/src/git.rs
index aa51aea02..da9747925 100644
--- a/crates/radicle-cli/src/git.rs
+++ b/crates/radicle-cli/src/git.rs
@@ -1,9 +1,5 @@
//! Git-related functions and types.
-pub mod ddiff;
-pub mod pretty_diff;
-pub mod unified_diff;
-
use std::collections::HashSet;
use std::fmt::Display;
use std::fs::{File, OpenOptions};
diff --git a/crates/radicle-cli/src/git/ddiff.rs b/crates/radicle-cli/src/git/ddiff.rs
deleted file mode 100644
index f005ffe72..000000000
--- a/crates/radicle-cli/src/git/ddiff.rs
+++ /dev/null
@@ -1,420 +0,0 @@
-//! `DDiff` is a diff between diffs. The type aids in the review of a `Patch` to a project by
-//! providing useful context between `Patch` updates a regular `Diff` will miss.
-//!
-//! For example, lets start with a file containing a list of words.
-//!
-//! ```text
-//! componentwise
-//! reusing
-//! simplest
-//! crag
-//! offended
-//! omitting
-//! ```
-//! Where a change is proposed to the file replacing a set of lines. The example includes the
-//! `HunkHeader` "@ .. @" for completeness, but it can be mostly ignored.
-//!
-//! ```text
-//! @@ -0,6 +0,6 @@
-//! componentwise
-//! reusing
-//! -simplest
-//! -crag
-//! -offended
-//! +interpreters
-//! +soiled
-//! +snuffing
-//! omitting
-//! ```
-//!
-//! The author updates the `Patch` to keep 'offended' and remove 'interpreters'.
-//!
-//! ```text
-//! @@ -0,6 +0,6 @@
-//! componentwise
-//! reusing
-//! -simplest
-//! -crag
-//! offended
-//! -interpreters
-//! +soiled
-//! +snuffing
-//! omitting
-//! ```
-//! The `DDiff` will show the what changes are being made, overlaid on to the original diff and
-//! the diff's original file as context.
-//!
-//! ```text
-//! @@ -0,9 +0,8 @@
-//! componentwise
-//! reusing
-//! -simplest
-//! -crag
-//! --offended
-//! + offended
-//! -+interpreters
-//! +soiled
-//! +snuffing
-//! omitting
-//! ```
-//!
-//! An alternative is to review a `Diff` between the resulting files after the first and second
-//! Patch versions were applied. The first `Patch` changes and original file contents are one
-//! making it unclear what are changes to the `Patch` or changes to the original file.
-//!
-//! ```text
-//! @@ -0,9 +0,8 @@
-//! componentwise
-//! reusing
-//! +offended
-//! -interpreters
-//! soiled
-//! snuffing
-//! omitting
-//! ```
-use radicle_surf::diff::*;
-
-use std::io;
-
-use crate::git::unified_diff;
-use crate::git::unified_diff::{Encode, Writer};
-use crate::terminal as term;
-
-/// Either the modification of a single diff [`Line`], or just contextual
-/// information.
-#[derive(Clone, Debug, PartialEq, Eq)]
-pub enum DiffModification {
- /// An addition line is to be added.
- AdditionAddition { line: Line, line_no: u32 },
- AdditionContext {
- line: Line,
- line_no_old: u32,
- line_no_new: u32,
- },
- /// An addition line is to be removed.
- AdditionDeletion { line: Line, line_no: u32 },
- /// A context line is to be added.
- ContextAddition { line: Line, line_no: u32 },
- /// A contextual line in a file, i.e. there were no changes to the line.
- ContextContext {
- line: Line,
- line_no_old: u32,
- line_no_new: u32,
- },
- /// A context line is to be removed.
- ContextDeletion { line: Line, line_no: u32 },
- /// A deletion line is to be added.
- DeletionAddition { line: Line, line_no: u32 },
- /// A deletion line in a diff, i.e. there were no changes to the line.
- DeletionContext {
- line: Line,
- line_no_old: u32,
- line_no_new: u32,
- },
- /// A deletion line is to be removed.
- DeletionDeletion { line: Line, line_no: u32 },
-}
-
-impl unified_diff::Decode for Hunk<DiffModification> {
- fn decode(r: &mut impl io::BufRead) -> Result<Self, unified_diff::Error> {
- let header = unified_diff::HunkHeader::decode(r)?;
-
- let mut lines = Vec::new();
- let mut new_line: u32 = 0;
- let mut old_line: u32 = 0;
-
- while old_line < header.old_size || new_line < header.new_size {
- if old_line > header.old_size {
- return Err(unified_diff::Error::syntax(format!(
- "expected '{0}' old lines",
- header.old_size,
- )));
- } else if new_line > header.new_size {
- return Err(unified_diff::Error::syntax(format!(
- "expected '{0}' new lines",
- header.new_size,
- )));
- }
-
- let mut line = DiffModification::decode(r).map_err(|e| {
- if e.is_eof() {
- unified_diff::Error::syntax(format!(
- "expected '{}' old lines and '{}' new lines, but found '{}' and '{}'",
- header.old_size, header.new_size, old_line, new_line,
- ))
- } else {
- e
- }
- })?;
-
- match &mut line {
- DiffModification::AdditionAddition { line_no, .. } => {
- *line_no = new_line;
- new_line += 1;
- }
- DiffModification::AdditionContext {
- line_no_old,
- line_no_new,
- ..
- } => {
- *line_no_old = old_line;
- *line_no_new = new_line;
- old_line += 1;
- new_line += 1;
- }
- DiffModification::AdditionDeletion { line_no, .. } => {
- *line_no = old_line;
- old_line += 1;
- }
- DiffModification::ContextAddition { line_no, .. } => {
- *line_no = new_line;
- new_line += 1;
- }
- DiffModification::ContextContext {
- line_no_old,
- line_no_new,
- ..
- } => {
- *line_no_old = old_line;
- *line_no_new = new_line;
- old_line += 1;
- new_line += 1;
- }
- DiffModification::ContextDeletion { line_no, .. } => {
- *line_no = old_line;
- old_line += 1;
- }
- DiffModification::DeletionAddition { line_no, .. } => {
- *line_no = new_line;
- new_line += 1;
- }
- DiffModification::DeletionContext {
- line_no_old,
- line_no_new,
- ..
- } => {
- *line_no_old = old_line;
- *line_no_new = new_line;
- old_line += 1;
- new_line += 1;
- }
- DiffModification::DeletionDeletion { line_no, .. } => {
- *line_no = old_line;
- old_line += 1;
- }
- };
-
- lines.push(line);
- }
-
- Ok(Hunk {
- header: Line::from(header.to_unified_string()?),
- lines,
- old: header.old_line_range(),
- new: header.new_line_range(),
- })
- }
-}
-
-impl unified_diff::Encode for Hunk<DiffModification> {
- fn encode(&self, w: &mut Writer) -> Result<(), unified_diff::Error> {
- // TODO: Remove trailing newlines accurately.
- // trim_end() will destroy diff information if the diff has a trailing whitespace on
- // purpose.
- w.magenta(self.header.from_utf8_lossy().trim_end())?;
- for l in &self.lines {
- l.encode(w)?;
- }
- Ok(())
- }
-}
-
-/// The DDiff version of `FileDiff`.
-#[derive(Clone, Debug, PartialEq)]
-pub struct FileDDiff {
- pub path: std::path::PathBuf,
- pub old: DiffFile,
- pub new: DiffFile,
- pub hunks: Hunks<DiffModification>,
- pub eof: EofNewLine,
-}
-
-impl From<&FileDDiff> for unified_diff::FileHeader {
- fn from(value: &FileDDiff) -> Self {
- unified_diff::FileHeader::Modified {
- path: value.path.clone(),
- old: value.old.clone(),
- new: value.new.clone(),
- binary: false,
- }
- }
-}
-
-impl unified_diff::Decode for DiffModification {
- fn decode(r: &mut impl std::io::BufRead) -> Result<Self, unified_diff::Error> {
- let mut line = String::new();
- if r.read_line(&mut line)? == 0 {
- return Err(unified_diff::Error::UnexpectedEof);
- }
-
- let mut chars = line.chars();
-
- let first = chars.next().ok_or(unified_diff::Error::UnexpectedEof)?;
- let second = chars.next().ok_or(unified_diff::Error::UnexpectedEof)?;
-
- let line = match (first, second) {
- ('+', '+') => DiffModification::AdditionAddition {
- line: chars.as_str().to_string().into(),
- line_no: 0,
- },
- ('+', '-') => DiffModification::DeletionAddition {
- line: chars.as_str().to_string().into(),
- line_no: 0,
- },
- ('+', ' ') => DiffModification::ContextAddition {
- line: chars.as_str().to_string().into(),
- line_no: 0,
- },
- ('-', '+') => DiffModification::AdditionDeletion {
- line: chars.as_str().to_string().into(),
- line_no: 0,
- },
- ('-', '-') => DiffModification::DeletionDeletion {
- line: chars.as_str().to_string().into(),
- line_no: 0,
- },
- ('-', ' ') => DiffModification::ContextDeletion {
- line: chars.as_str().to_string().into(),
- line_no: 0,
- },
- (' ', '+') => DiffModification::AdditionContext {
- line: chars.as_str().to_string().into(),
- line_no_old: 0,
- line_no_new: 0,
- },
- (' ', '-') => DiffModification::DeletionContext {
- line: chars.as_str().to_string().into(),
- line_no_old: 0,
- line_no_new: 0,
- },
- (' ', ' ') => DiffModification::ContextContext {
- line: chars.as_str().to_string().into(),
- line_no_old: 0,
- line_no_new: 0,
- },
- (v1, v2) => {
- return Err(unified_diff::Error::syntax(format!(
- "indicator character expected, but got '{v1}{v2}'"
- )))
- }
- };
-
- Ok(line)
- }
-}
-
-impl unified_diff::Encode for DiffModification {
- fn encode(&self, w: &mut unified_diff::Writer) -> Result<(), unified_diff::Error> {
- match self {
- DiffModification::AdditionAddition { line, .. } => {
- let s = format!("++{}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Green))?;
- }
- DiffModification::AdditionDeletion { line, .. } => {
- let s = format!("-+{}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Red))?;
- }
- DiffModification::ContextAddition { line, .. } => {
- let s = format!("+ {}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Green))?;
- }
- DiffModification::DeletionAddition { line, .. } => {
- let s = format!("+-{}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Green))?;
- }
- DiffModification::DeletionDeletion { line, .. } => {
- let s = format!("--{}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Red))?;
- }
- DiffModification::ContextDeletion { line, .. } => {
- let s = format!("- {}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Red))?;
- }
- DiffModification::AdditionContext { line, .. } => {
- let s = format!(" +{}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Green).dim())?
- }
- DiffModification::DeletionContext { line, .. } => {
- let s = format!(" -{}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Red).dim())?;
- }
- DiffModification::ContextContext { line, .. } => {
- let s = format!(" {}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::default().dim())?;
- }
- }
-
- Ok(())
- }
-}
-
-impl unified_diff::Encode for FileDDiff {
- fn encode(&self, w: &mut unified_diff::Writer) -> Result<(), unified_diff::Error> {
- w.encode(&unified_diff::FileHeader::from(self))?;
- for h in self.hunks.iter() {
- h.encode(w)?;
- }
-
- Ok(())
- }
-}
-
-/// A diff of a diff.
-#[derive(Clone, Debug, PartialEq, Default)]
-pub struct DDiff {
- files: Vec<FileDDiff>,
-}
-
-impl DDiff {
- /// Returns an iterator of the file in the diff.
- pub fn files(&self) -> impl Iterator<Item = &FileDDiff> {
- self.files.iter()
- }
-
- /// Returns owned files in the diff.
- pub fn into_files(self) -> Vec<FileDDiff> {
- self.files
- }
-}
-
-impl unified_diff::Encode for DDiff {
- fn encode(&self, w: &mut unified_diff::Writer) -> Result<(), unified_diff::Error> {
- for v in self.files() {
- v.encode(w)?;
- }
- Ok(())
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
-
- use crate::git::unified_diff::{Decode, Encode};
-
- #[test]
- fn diff_encode_decode_ddiff_hunk() {
- let ddiff = Hunk::<DiffModification>::parse(include_str!(concat!(
- env!("CARGO_MANIFEST_DIR"),
- "/tests/data/ddiff_hunk.diff"
- )))
- .unwrap();
- assert_eq!(
- include_str!(concat!(
- env!("CARGO_MANIFEST_DIR"),
- "/tests/data/ddiff_hunk.diff"
- )),
- ddiff.to_unified_string().unwrap()
- );
- }
-}
diff --git a/crates/radicle-cli/src/git/pretty_diff.rs b/crates/radicle-cli/src/git/pretty_diff.rs
deleted file mode 100644
index a5319cfa8..000000000
--- a/crates/radicle-cli/src/git/pretty_diff.rs
+++ /dev/null
@@ -1,628 +0,0 @@
-use std::fs;
-use std::path::{Path, PathBuf};
-
-use radicle::git;
-use radicle::git::Oid;
-use radicle_surf::diff;
-use radicle_surf::diff::{Added, Copied, Deleted, FileStats, Hunks, Modified, Moved};
-use radicle_surf::diff::{Diff, DiffContent, FileDiff, Hunk, Modification};
-use radicle_term as term;
-use term::cell::Cell;
-use term::VStack;
-
-use crate::git::unified_diff::FileHeader;
-use crate::terminal::highlight::{Highlighter, Theme};
-
-use super::unified_diff::{Decode, HunkHeader};
-
-/// Blob returned by the [`Repo`] trait.
-#[derive(PartialEq, Eq, Debug)]
-pub enum Blob {
- Binary,
- Empty,
- Plain(Vec<u8>),
-}
-
-/// A repository of Git blobs.
-pub trait Repo {
- /// Lookup a blob from the repo.
- fn blob(&self, oid: git::Oid) -> Result<Blob, git::raw::Error>;
- /// Lookup a file in the workdir.
- fn file(&self, path: &Path) -> Option<Blob>;
-}
-
-impl Repo for git::raw::Repository {
- fn blob(&self, oid: git::Oid) -> Result<Blob, git::raw::Error> {
- let blob = self.find_blob(oid.into())?;
-
- if blob.is_binary() {
- Ok(Blob::Binary)
- } else {
- let content = blob.content();
-
- if content.is_empty() {
- Ok(Blob::Empty)
- } else {
- Ok(Blob::Plain(blob.content().to_vec()))
- }
- }
- }
-
- fn file(&self, path: &Path) -> Option<Blob> {
- self.workdir()
- .and_then(|dir| fs::read(dir.join(path)).ok())
- .map(|content| {
- // A file is considered binary if there is a zero byte in the first 8 kilobytes
- // of the file. This is the same heuristic Git uses.
- let binary = content.iter().take(8192).any(|b| *b == 0);
- if binary {
- Blob::Binary
- } else {
- Blob::Plain(content)
- }
- })
- }
-}
-
-/// Blobs passed down to the hunk renderer.
-#[derive(Debug)]
-pub struct Blobs<T> {
- pub old: Option<T>,
- pub new: Option<T>,
-}
-
-impl<T> Blobs<T> {
- pub fn new(old: Option<T>, new: Option<T>) -> Self {
- Self { old, new }
- }
-}
-
-impl Blobs<(PathBuf, Blob)> {
- pub fn highlight(&self, hi: &mut Highlighter) -> Blobs<Vec<term::Line>> {
- let mut blobs = Blobs::default();
- if let Some((path, Blob::Plain(content))) = &self.old {
- blobs.old = hi.highlight(path, content).ok();
- }
- if let Some((path, Blob::Plain(content))) = &self.new {
- blobs.new = hi.highlight(path, content).ok();
- }
- blobs
- }
-
- pub fn from_paths<R: Repo>(
- old: Option<(&Path, Oid)>,
- new: Option<(&Path, Oid)>,
- repo: &R,
- ) -> Blobs<(PathBuf, Blob)> {
- Blobs::new(
- old.and_then(|(path, oid)| {
- repo.blob(oid)
- .ok()
- .or_else(|| repo.file(path))
- .map(|blob| (path.to_path_buf(), blob))
- }),
- new.and_then(|(path, oid)| {
- repo.blob(oid)
- .ok()
- .or_else(|| repo.file(path))
- .map(|blob| (path.to_path_buf(), blob))
- }),
- )
- }
-}
-
-impl<T> Default for Blobs<T> {
- fn default() -> Self {
- Self {
- old: None,
- new: None,
- }
- }
-}
-
-/// Types that can be rendered as pretty diffs.
-pub trait ToPretty {
- /// The output of the render process.
- type Output: term::Element;
- /// Context that can be passed down from parent objects during rendering.
- type Context;
-
- /// Render to pretty diff output.
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- context: &Self::Context,
- repo: &R,
- ) -> Self::Output;
-}
-
-impl ToPretty for Diff {
- type Output = term::VStack<'static>;
- type Context = ();
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- context: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- term::VStack::default()
- .padding(0)
- .children(self.files().flat_map(|f| {
- [
- f.pretty(hi, context, repo).boxed(),
- term::Line::blank().boxed(), // Blank line between files.
- ]
- }))
- }
-}
-
-impl ToPretty for FileHeader {
- type Output = term::Line;
- type Context = Option<FileStats>;
-
- fn pretty<R: Repo>(
- &self,
- _hi: &mut Highlighter,
- stats: &Self::Context,
- _repo: &R,
- ) -> Self::Output {
- let theme = Theme::default();
- let (mut header, badge, binary) = match self {
- FileHeader::Added { path, binary, .. } => (
- term::Line::new(path.display().to_string()),
- Some(term::format::badge_positive("created")),
- *binary,
- ),
- FileHeader::Moved {
- old_path, new_path, ..
- } => (
- term::Line::spaced([
- term::label(old_path.display().to_string()),
- term::label("->".to_string()),
- term::label(new_path.display().to_string()),
- ]),
- Some(term::format::badge_secondary("moved")),
- false,
- ),
- FileHeader::Deleted { path, binary, .. } => (
- term::Line::new(path.display().to_string()),
- Some(term::format::badge_negative("deleted")),
- *binary,
- ),
- FileHeader::Modified {
- path,
- old,
- new,
- binary,
- ..
- } => {
- if old.mode != new.mode {
- (
- term::Line::spaced([
- term::label(path.display().to_string()),
- term::label(format!("{:o}", u32::from(old.mode.clone())))
- .fg(term::Color::Blue),
- term::label("->".to_string()),
- term::label(format!("{:o}", u32::from(new.mode.clone())))
- .fg(term::Color::Blue),
- ]),
- Some(term::format::badge_secondary("mode changed")),
- *binary,
- )
- } else {
- (term::Line::new(path.display().to_string()), None, *binary)
- }
- }
- FileHeader::Copied {
- old_path, new_path, ..
- } => (
- term::Line::spaced([
- term::label(old_path.display().to_string()),
- term::label("->".to_string()),
- term::label(new_path.display().to_string()),
- ]),
- Some(term::format::badge_secondary("copied")),
- false,
- ),
- };
-
- if binary {
- header.push(term::Label::space());
- header.push(term::label(term::format::badge_yellow("binary")));
- }
-
- let (additions, deletions) = if let Some(stats) = stats {
- (stats.additions, stats.deletions)
- } else {
- (0, 0)
- };
- if deletions > 0 {
- header.push(term::Label::space());
- header.push(term::label(format!("-{deletions}")).fg(theme.color("negative.light")));
- }
- if additions > 0 {
- header.push(term::Label::space());
- header.push(term::label(format!("+{additions}")).fg(theme.color("positive.light")));
- }
- if let Some(badge) = badge {
- header.push(term::Label::space());
- header.push(badge);
- }
- header
- }
-}
-
-impl ToPretty for FileDiff {
- type Output = term::VStack<'static>;
- type Context = ();
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- _context: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- let header = FileHeader::from(self);
-
- match self {
- FileDiff::Added(f) => f.pretty(hi, &header, repo),
- FileDiff::Deleted(f) => f.pretty(hi, &header, repo),
- FileDiff::Modified(f) => f.pretty(hi, &header, repo),
- FileDiff::Moved(f) => f.pretty(hi, &header, repo),
- FileDiff::Copied(f) => f.pretty(hi, &header, repo),
- }
- }
-}
-
-impl ToPretty for DiffContent {
- type Output = term::VStack<'static>;
- type Context = Blobs<(PathBuf, Blob)>;
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- blobs: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- let mut vstack = term::VStack::default().padding(0);
-
- match self {
- DiffContent::Plain {
- hunks: Hunks(hunks),
- ..
- } => {
- let blobs = blobs.highlight(hi);
-
- for (i, h) in hunks.iter().enumerate() {
- vstack.push(h.pretty(hi, &blobs, repo));
- if i != hunks.len() - 1 {
- vstack = vstack.divider();
- }
- }
- }
- DiffContent::Empty => {}
- DiffContent::Binary => {}
- }
- vstack
- }
-}
-
-impl ToPretty for Moved {
- type Output = term::VStack<'static>;
- type Context = FileHeader;
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- header: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- let header = header.pretty(hi, &self.diff.stats().copied(), repo);
-
- term::VStack::default()
- .border(Some(term::colors::FAINT))
- .padding(1)
- .child(term::Line::default().extend(header))
- }
-}
-
-impl ToPretty for Added {
- type Output = term::VStack<'static>;
- type Context = FileHeader;
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- header: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- let old = None;
- let new = Some((self.path.as_path(), Oid::from(*self.new.oid)));
-
- pretty_modification(header, &self.diff, old, new, repo, hi)
- }
-}
-
-impl ToPretty for Deleted {
- type Output = term::VStack<'static>;
- type Context = FileHeader;
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- header: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- let old = Some((self.path.as_path(), Oid::from(*self.old.oid)));
- let new = None;
-
- pretty_modification(header, &self.diff, old, new, repo, hi)
- }
-}
-
-impl ToPretty for Modified {
- type Output = term::VStack<'static>;
- type Context = FileHeader;
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- header: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- let old = Some((self.path.as_path(), Oid::from(*self.old.oid)));
- let new = Some((self.path.as_path(), Oid::from(*self.new.oid)));
-
- pretty_modification(header, &self.diff, old, new, repo, hi)
- }
-}
-
-impl ToPretty for Copied {
- type Output = term::VStack<'static>;
- type Context = FileHeader;
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- _context: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- let header = FileHeader::Copied {
- old_path: self.old_path.clone(),
- new_path: self.old_path.clone(),
- }
- .pretty(hi, &self.diff.stats().copied(), repo);
-
- term::VStack::default()
- .border(Some(term::colors::FAINT))
- .padding(1)
- .child(header)
- }
-}
-
-impl ToPretty for HunkHeader {
- type Output = term::Line;
- type Context = ();
-
- fn pretty<R: Repo>(
- &self,
- _hi: &mut Highlighter,
- _context: &Self::Context,
- _repo: &R,
- ) -> Self::Output {
- term::Line::spaced([
- term::label(format!(
- "@@ -{},{} +{},{} @@",
- self.old_line_no, self.old_size, self.new_line_no, self.new_size,
- ))
- .fg(term::colors::fixed::FAINT),
- term::label(String::from_utf8_lossy(&self.text).to_string())
- .fg(term::colors::fixed::DIM),
- ])
- }
-}
-
-impl ToPretty for Hunk<Modification> {
- type Output = term::VStack<'static>;
- type Context = Blobs<Vec<term::Line>>;
-
- fn pretty<R: Repo>(
- &self,
- hi: &mut Highlighter,
- blobs: &Self::Context,
- repo: &R,
- ) -> Self::Output {
- let mut vstack = term::VStack::default().padding(0);
- let mut table = term::Table::<5, term::Filled<term::Line>>::new(term::TableOptions {
- overflow: false,
- spacing: 0,
- border: None,
- });
- let theme = Theme::default();
-
- if let Ok(header) = HunkHeader::from_bytes(self.header.as_bytes()) {
- vstack.push(header.pretty(hi, &(), repo));
- }
-
- table.extend(
- self.lines
- .iter()
- .map(|line| line_to_table_row(hi, blobs, repo, &theme, line)),
- );
-
- vstack.push(table);
- vstack
- }
-}
-
-fn line_to_table_row<R: Repo>(
- hi: &mut Highlighter,
- blobs: &Blobs<Vec<radicle_term::Line>>,
- repo: &R,
- theme: &Theme,
- line: &Modification,
-) -> [radicle_term::Filled<radicle_term::Line>; 5] {
- match line {
- Modification::Addition(a) => [
- term::Label::space()
- .pad(5)
- .bg(theme.color("positive"))
- .to_line()
- .filled(theme.color("positive")),
- term::label(a.line_no.to_string())
- .pad(5)
- .fg(theme.color("positive.light"))
- .to_line()
- .filled(theme.color("positive")),
- term::label(" + ")
- .fg(theme.color("positive.light"))
- .to_line()
- .filled(theme.color("positive.dark")),
- line.pretty(hi, blobs, repo)
- .filled(theme.color("positive.dark")),
- term::Line::blank().filled(term::Color::default()),
- ],
- Modification::Deletion(a) => [
- term::label(a.line_no.to_string())
- .pad(5)
- .fg(theme.color("negative.light"))
- .to_line()
- .filled(theme.color("negative")),
- term::Label::space()
- .pad(5)
- .fg(theme.color("dim"))
- .to_line()
- .filled(theme.color("negative")),
- term::label(" - ")
- .fg(theme.color("negative.light"))
- .to_line()
- .filled(theme.color("negative.dark")),
- line.pretty(hi, blobs, repo)
- .filled(theme.color("negative.dark")),
- term::Line::blank().filled(term::Color::default()),
- ],
- Modification::Context {
- line_no_old,
- line_no_new,
- ..
- } => [
- term::label(line_no_old.to_string())
- .pad(5)
- .fg(theme.color("dim"))
- .to_line()
- .filled(theme.color("faint")),
- term::label(line_no_new.to_string())
- .pad(5)
- .fg(theme.color("dim"))
- .to_line()
- .filled(theme.color("faint")),
- term::label(" ").to_line().filled(term::Color::default()),
- line.pretty(hi, blobs, repo).filled(term::Color::default()),
- term::Line::blank().filled(term::Color::default()),
- ],
- }
-}
-
-impl ToPretty for Modification {
- type Output = term::Line;
- type Context = Blobs<Vec<term::Line>>;
-
- fn pretty<R: Repo>(
- &self,
- _hi: &mut Highlighter,
- blobs: &Blobs<Vec<term::Line>>,
- _repo: &R,
- ) -> Self::Output {
- match self {
- Modification::Deletion(diff::Deletion { line, line_no }) => {
- if let Some(lines) = &blobs.old.as_ref() {
- lines[*line_no as usize - 1].clone()
- } else {
- term::Line::new(String::from_utf8_lossy(line.as_bytes()).as_ref())
- }
- }
- Modification::Addition(diff::Addition { line, line_no }) => {
- if let Some(lines) = &blobs.new.as_ref() {
- lines[*line_no as usize - 1].clone()
- } else {
- term::Line::new(String::from_utf8_lossy(line.as_bytes()).as_ref())
- }
- }
- Modification::Context {
- line, line_no_new, ..
- } => {
- // Nb. we can check in the old or the new blob, we choose the new.
- if let Some(lines) = &blobs.new.as_ref() {
- lines[*line_no_new as usize - 1].clone()
- } else {
- term::Line::new(String::from_utf8_lossy(line.as_bytes()).as_ref())
- }
- }
- }
- }
-}
-
-/// Render a file added, deleted or modified.
-fn pretty_modification<R: Repo>(
- header: &FileHeader,
- diff: &DiffContent,
- old: Option<(&Path, Oid)>,
- new: Option<(&Path, Oid)>,
- repo: &R,
- hi: &mut Highlighter,
-) -> VStack<'static> {
- let blobs = Blobs::from_paths(old, new, repo);
- let header = header.pretty(hi, &diff.stats().copied(), repo);
- let vstack = term::VStack::default()
- .border(Some(term::colors::FAINT))
- .padding(1)
- .child(header);
-
- let body = diff.pretty(hi, &blobs, repo);
- if body.is_empty() {
- vstack
- } else {
- vstack.divider().merge(body)
- }
-}
-
-#[cfg(test)]
-mod test {
- use std::ffi::OsStr;
-
- use term::Constraint;
- use term::Element;
-
- use super::*;
- use git::raw::RepositoryOpenFlags;
- use git::raw::{Oid, Repository};
-
- #[test]
- #[ignore]
- fn test_pretty() {
- let repo = Repository::open_ext::<_, _, &[&OsStr]>(
- env!("CARGO_MANIFEST_DIR"),
- RepositoryOpenFlags::all(),
- &[],
- )
- .unwrap();
- let commit = repo
- .find_commit(Oid::from_str("5078396028e2ec5660aa54a00208f6e11df84aa9").unwrap())
- .unwrap();
- let parent = commit.parents().next().unwrap();
- let old_tree = parent.tree().unwrap();
- let new_tree = commit.tree().unwrap();
- let diff = repo
- .diff_tree_to_tree(Some(&old_tree), Some(&new_tree), None)
- .unwrap();
- let diff = Diff::try_from(diff).unwrap();
-
- let mut hi = Highlighter::default();
- let pretty = diff.pretty(&mut hi, &(), &repo);
-
- pretty
- .write(Constraint::from_env().unwrap_or_default())
- .unwrap();
- }
-}
diff --git a/crates/radicle-cli/src/git/unified_diff.rs b/crates/radicle-cli/src/git/unified_diff.rs
deleted file mode 100644
index d37cdcbff..000000000
--- a/crates/radicle-cli/src/git/unified_diff.rs
+++ /dev/null
@@ -1,648 +0,0 @@
-//! Formatting support for Git's [diff format](https://git-scm.com/docs/diff-format).
-use std::fmt;
-use std::io;
-use std::path::PathBuf;
-
-use radicle_surf::diff::FileStats;
-use thiserror::Error;
-
-use radicle::git;
-use radicle_surf::diff;
-use radicle_surf::diff::{Diff, DiffContent, DiffFile, FileDiff, Hunk, Hunks, Line, Modification};
-
-use crate::terminal as term;
-
-#[derive(Debug, Error)]
-pub enum Error {
- /// Attempt to decode from a source with no data left.
- #[error("unexpected end of file")]
- UnexpectedEof,
- #[error(transparent)]
- Io(#[from] io::Error),
- /// Catchall for syntax error messages.
- #[error("{0}")]
- Syntax(String),
- #[error(transparent)]
- ParseInt(#[from] std::num::ParseIntError),
- #[error(transparent)]
- Utf8(#[from] std::string::FromUtf8Error),
-}
-
-impl Error {
- pub fn syntax(msg: impl ToString) -> Self {
- Self::Syntax(msg.to_string())
- }
-
- pub fn is_eof(&self) -> bool {
- match self {
- Self::UnexpectedEof => true,
- Self::Io(e) => e.kind() == io::ErrorKind::UnexpectedEof,
- _ => false,
- }
- }
-}
-
-/// The kind of FileDiff Header which can be used to print the FileDiff information which precedes
-/// `Hunks`.
-#[derive(Debug, Clone, PartialEq)]
-pub enum FileHeader {
- Added {
- path: PathBuf,
- new: DiffFile,
- binary: bool,
- },
- Copied {
- old_path: PathBuf,
- new_path: PathBuf,
- },
- Deleted {
- path: PathBuf,
- old: DiffFile,
- binary: bool,
- },
- Modified {
- path: PathBuf,
- old: DiffFile,
- new: DiffFile,
- binary: bool,
- },
- Moved {
- old_path: PathBuf,
- new_path: PathBuf,
- },
-}
-
-impl std::convert::From<&FileDiff> for FileHeader {
- // TODO: Pathnames with 'unusual names' need to be quoted.
- fn from(value: &FileDiff) -> Self {
- match value {
- FileDiff::Modified(v) => FileHeader::Modified {
- path: v.path.clone(),
- old: v.old.clone(),
- new: v.new.clone(),
- binary: matches!(v.diff, DiffContent::Binary),
- },
- FileDiff::Added(v) => FileHeader::Added {
- path: v.path.clone(),
- new: v.new.clone(),
- binary: matches!(v.diff, DiffContent::Binary),
- },
- FileDiff::Copied(c) => FileHeader::Copied {
- old_path: c.old_path.clone(),
- new_path: c.new_path.clone(),
- },
- FileDiff::Deleted(v) => FileHeader::Deleted {
- path: v.path.clone(),
- old: v.old.clone(),
- binary: matches!(v.diff, DiffContent::Binary),
- },
- FileDiff::Moved(v) => FileHeader::Moved {
- old_path: v.old_path.clone(),
- new_path: v.new_path.clone(),
- },
- }
- }
-}
-
-/// Meta data which precedes a `Hunk`s content.
-///
-/// For example:
-/// @@ -24,8 +24,6 @@ use radicle_surf::diff::*;
-#[derive(Clone, Debug, Default, PartialEq)]
-pub struct HunkHeader {
- /// Line the hunk started in the old file.
- pub old_line_no: u32,
- /// Number of removed and context lines.
- pub old_size: u32,
- /// Line the hunk started in the new file.
- pub new_line_no: u32,
- /// Number of added and context lines.
- pub new_size: u32,
- /// Trailing text for the Hunk Header.
- ///
- /// From Git's documentation "Hunk headers mention the name of the function to which the hunk
- /// applies. See "Defining a custom hunk-header" in gitattributes for details of how to tailor
- /// to this to specific languages.". It is likely best to leave this empty when generating
- /// diffs.
- pub text: Vec<u8>,
-}
-
-impl TryFrom<&Hunk<Modification>> for HunkHeader {
- type Error = Error;
-
- fn try_from(hunk: &Hunk<Modification>) -> Result<Self, Self::Error> {
- let mut r = io::BufReader::new(hunk.header.as_bytes());
- Self::decode(&mut r)
- }
-}
-
-impl HunkHeader {
- pub fn old_line_range(&self) -> std::ops::Range<u32> {
- let start: u32 = self.old_line_no;
- let end: u32 = self.old_line_no + self.old_size;
- start..end + 1
- }
-
- pub fn new_line_range(&self) -> std::ops::Range<u32> {
- let start: u32 = self.new_line_no;
- let end: u32 = self.new_line_no + self.new_size;
- start..end + 1
- }
-}
-
-/// Diff-related types that can be decoded from the unified diff format.
-pub trait Decode: Sized {
- /// Decode, and fail if we reach the end of the stream.
- fn decode(r: &mut impl io::BufRead) -> Result<Self, Error>;
-
- /// Decode, and return a `None` if we reached the end of the stream.
- fn try_decode(r: &mut impl io::BufRead) -> Result<Option<Self>, Error> {
- match Self::decode(r) {
- Ok(v) => Ok(Some(v)),
- Err(Error::UnexpectedEof) => Ok(None),
- Err(e) => Err(e),
- }
- }
-
- /// Decode from a string input.
- fn parse(s: &str) -> Result<Self, Error> {
- Self::from_bytes(s.as_bytes())
- }
-
- /// Decode from a string input.
- fn from_bytes(bytes: &[u8]) -> Result<Self, Error> {
- let mut r = io::BufReader::new(bytes);
- Self::decode(&mut r)
- }
-}
-
-/// Diff-related types that can be encoded intro the unified diff format.
-pub trait Encode: Sized {
- /// Encode type into diff writer.
- fn encode(&self, w: &mut Writer) -> Result<(), Error>;
-
- /// Encode into unified diff string.
- fn to_unified_string(&self) -> Result<String, Error> {
- let mut buf = Vec::new();
- let mut w = Writer::new(&mut buf);
-
- w.encode(self)?;
- drop(w);
-
- String::from_utf8(buf).map_err(Error::from)
- }
-}
-
-impl Decode for Diff {
- /// Decode from git's unified diff format, consuming the entire input.
- fn decode(r: &mut impl io::BufRead) -> Result<Self, Error> {
- let mut s = String::new();
-
- r.read_to_string(&mut s)?;
-
- let d = git::raw::Diff::from_buffer(s.as_ref())
- .map_err(|e| Error::syntax(format!("decoding unified diff: {e}")))?;
- let d =
- Diff::try_from(d).map_err(|e| Error::syntax(format!("decoding unified diff: {e}")))?;
-
- Ok(d)
- }
-}
-
-impl Encode for Diff {
- fn encode(&self, w: &mut Writer) -> Result<(), Error> {
- for fdiff in self.files() {
- fdiff.encode(w)?;
- }
- Ok(())
- }
-}
-
-impl Decode for DiffContent {
- fn decode(r: &mut impl io::BufRead) -> Result<Self, Error> {
- let mut hunks = Vec::default();
- let mut additions = 0;
- let mut deletions = 0;
-
- while let Some(h) = Hunk::try_decode(r)? {
- for l in &h.lines {
- match l {
- Modification::Addition(_) => additions += 1,
- Modification::Deletion(_) => deletions += 1,
- _ => {}
- }
- }
- hunks.push(h);
- }
-
- if hunks.is_empty() {
- Ok(DiffContent::Empty)
- } else {
- // TODO: Handle case for binary.
- Ok(DiffContent::Plain {
- hunks: Hunks::from(hunks),
- stats: FileStats {
- additions,
- deletions,
- },
- // TODO: Properly handle EndOfLine field
- eof: diff::EofNewLine::NoneMissing,
- })
- }
- }
-}
-
-impl Encode for DiffContent {
- fn encode(&self, w: &mut Writer) -> Result<(), Error> {
- match self {
- DiffContent::Plain { hunks, .. } => {
- for h in hunks.iter() {
- h.encode(w)?;
- }
- }
- DiffContent::Empty => {}
- DiffContent::Binary => todo!("DiffContent::Binary encoding not implemented"),
- }
- Ok(())
- }
-}
-
-impl Encode for FileDiff {
- fn encode(&self, w: &mut Writer) -> Result<(), Error> {
- w.encode(&FileHeader::from(self))?;
- match self {
- FileDiff::Modified(f) => {
- w.encode(&f.diff)?;
- }
- FileDiff::Added(f) => {
- w.encode(&f.diff)?;
- }
- FileDiff::Copied(f) => {
- w.encode(&f.diff)?;
- }
- FileDiff::Deleted(f) => {
- w.encode(&f.diff)?;
- }
- FileDiff::Moved(f) => {
- // Nb. We only display diffs as moves when the file was not changed.
- w.encode(&f.diff)?;
- }
- }
-
- Ok(())
- }
-}
-
-impl Encode for FileHeader {
- fn encode(&self, w: &mut Writer) -> Result<(), Error> {
- match self {
- FileHeader::Modified { path, old, new, .. } => {
- w.meta(format!(
- "diff --git a/{} b/{}",
- path.display(),
- path.display()
- ))?;
-
- if old.mode == new.mode {
- w.meta(format!(
- "index {}..{} {:o}",
- term::format::oid(*old.oid),
- term::format::oid(*new.oid),
- u32::from(old.mode.clone()),
- ))?;
- } else {
- w.meta(format!("old mode {:o}", u32::from(old.mode.clone())))?;
- w.meta(format!("new mode {:o}", u32::from(new.mode.clone())))?;
- w.meta(format!(
- "index {}..{}",
- term::format::oid(*old.oid),
- term::format::oid(*new.oid)
- ))?;
- }
-
- w.meta(format!("--- a/{}", path.display()))?;
- w.meta(format!("+++ b/{}", path.display()))?;
- }
- FileHeader::Added { path, new, .. } => {
- w.meta(format!(
- "diff --git a/{} b/{}",
- path.display(),
- path.display()
- ))?;
-
- w.meta(format!("new file mode {:o}", u32::from(new.mode.clone())))?;
- w.meta(format!(
- "index {}..{}",
- term::format::oid(git::Oid::sha1_zero()),
- term::format::oid(*new.oid),
- ))?;
-
- w.meta("--- /dev/null")?;
- w.meta(format!("+++ b/{}", path.display()))?;
- }
- FileHeader::Copied { .. } => todo!(),
- FileHeader::Deleted { path, old, .. } => {
- w.meta(format!(
- "diff --git a/{} b/{}",
- path.display(),
- path.display()
- ))?;
-
- w.meta(format!(
- "deleted file mode {:o}",
- u32::from(old.mode.clone())
- ))?;
- w.meta(format!(
- "index {}..{}",
- term::format::oid(*old.oid),
- term::format::oid(git::Oid::sha1_zero())
- ))?;
-
- w.meta(format!("--- a/{}", path.display()))?;
- w.meta("+++ /dev/null".to_string())?;
- }
- FileHeader::Moved { old_path, new_path } => {
- w.meta(format!(
- "diff --git a/{} b/{}",
- old_path.display(),
- new_path.display()
- ))?;
- w.meta("similarity index 100%")?;
- w.meta(format!("rename from {}", old_path.display()))?;
- w.meta(format!("rename to {}", new_path.display()))?;
- }
- };
- Ok(())
- }
-}
-
-impl Decode for HunkHeader {
- fn decode(r: &mut impl io::BufRead) -> Result<Self, Error> {
- let mut line = String::default();
- if r.read_line(&mut line)? == 0 {
- return Err(Error::UnexpectedEof);
- };
-
- let mut header = HunkHeader::default();
- let s = line
- .strip_prefix("@@ -")
- .ok_or(Error::syntax("missing '@@ -'"))?;
-
- let (old, s) = s
- .split_once(" +")
- .ok_or(Error::syntax("missing new line information"))?;
- let (line_no, size) = old.split_once(',').unwrap_or((old, "1"));
-
- header.old_line_no = line_no.parse()?;
- header.old_size = size.parse()?;
-
- let (new, s) = s
- .split_once(" @@")
- .ok_or(Error::syntax("closing '@@' is missing"))?;
- let (line_no, size) = new.split_once(',').unwrap_or((new, "1"));
-
- header.new_line_no = line_no.parse()?;
- header.new_size = size.parse()?;
-
- let s = s.strip_prefix(' ').unwrap_or(s);
- header.text = s.as_bytes().to_vec();
-
- Ok(header)
- }
-}
-
-impl Encode for HunkHeader {
- fn encode(&self, w: &mut Writer) -> Result<(), Error> {
- let old = if self.old_size == 1 {
- format!("{}", self.old_line_no)
- } else {
- format!("{},{}", self.old_line_no, self.old_size)
- };
- let new = if self.new_size == 1 {
- format!("{}", self.new_line_no)
- } else {
- format!("{},{}", self.new_line_no, self.new_size)
- };
- let text = if self.text.is_empty() {
- "".to_string()
- } else {
- format!(" {}", String::from_utf8_lossy(&self.text))
- };
- w.meta(format!("@@ -{old} +{new} @@{text}"))?;
-
- Ok(())
- }
-}
-
-impl Decode for Hunk<Modification> {
- fn decode(r: &mut impl io::BufRead) -> Result<Self, Error> {
- let header = HunkHeader::decode(r)?;
-
- let mut lines = Vec::new();
- let mut new_line: u32 = 0;
- let mut old_line: u32 = 0;
-
- while old_line < header.old_size || new_line < header.new_size {
- if old_line > header.old_size {
- return Err(Error::syntax(format!(
- "expected '{}' old lines",
- header.old_size
- )));
- } else if new_line > header.new_size {
- return Err(Error::syntax(format!(
- "expected '{0}' new lines",
- header.new_size
- )));
- }
-
- let Some(line) = Modification::try_decode(r)? else {
- return Err(Error::syntax(format!(
- "expected '{}' old lines and '{}' new lines, but found '{}' and '{}'",
- header.old_size, header.new_size, old_line, new_line,
- )));
- };
-
- let line = match line {
- Modification::Addition(v) => {
- let l = Modification::addition(v.line, header.new_line_no + new_line);
- new_line += 1;
- l
- }
- Modification::Deletion(v) => {
- let l = Modification::deletion(v.line, header.old_line_no + old_line);
- old_line += 1;
- l
- }
- Modification::Context { line, .. } => {
- let l = Modification::Context {
- line,
- line_no_old: header.old_line_no + old_line,
- line_no_new: header.new_line_no + new_line,
- };
- new_line += 1;
- old_line += 1;
- l
- }
- };
-
- lines.push(line);
- }
-
- Ok(Hunk {
- header: Line::from(header.to_unified_string()?),
- lines,
- old: header.old_line_range(),
- new: header.new_line_range(),
- })
- }
-}
-
-impl Encode for Hunk<Modification> {
- fn encode(&self, w: &mut Writer) -> Result<(), Error> {
- // TODO: Remove trailing newlines accurately.
- // `trim_end()` will destroy diff information if the diff has a trailing whitespace on
- // purpose.
- w.magenta(self.header.from_utf8_lossy().trim_end())?;
- for l in &self.lines {
- l.encode(w)?;
- }
-
- Ok(())
- }
-}
-
-impl Decode for Modification {
- fn decode(r: &mut impl io::BufRead) -> Result<Self, Error> {
- let mut line = String::new();
- if r.read_line(&mut line)? == 0 {
- return Err(Error::UnexpectedEof);
- };
-
- let mut chars = line.chars();
- let l = match chars.next() {
- Some('+') => Modification::addition(chars.as_str().to_string(), 0),
- Some('-') => Modification::deletion(chars.as_str().to_string(), 0),
- Some(' ') => Modification::Context {
- line: chars.as_str().to_string().into(),
- line_no_old: 0,
- line_no_new: 0,
- },
- Some(c) => {
- return Err(Error::syntax(format!(
- "indicator character expected, but got '{c}'",
- )))
- }
- None => return Err(Error::UnexpectedEof),
- };
-
- Ok(l)
- }
-}
-
-impl Encode for Modification {
- fn encode(&self, w: &mut Writer) -> Result<(), Error> {
- match self {
- Modification::Deletion(radicle_surf::diff::Deletion { line, .. }) => {
- let s = format!("-{}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Red))?;
- }
- Modification::Addition(radicle_surf::diff::Addition { line, .. }) => {
- let s = format!("+{}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::new(term::Color::Green))?;
- }
- Modification::Context { line, .. } => {
- let s = format!(" {}", String::from_utf8_lossy(line.as_bytes()).trim_end());
- w.write(s, term::Style::default().dim())?;
- }
- }
-
- Ok(())
- }
-}
-
-/// An IO Writer with color printing to the terminal.
-pub struct Writer<'a> {
- styled: bool,
- stream: Box<dyn io::Write + 'a>,
-}
-
-impl<'a> Writer<'a> {
- pub fn new(w: impl io::Write + 'a) -> Self {
- Self {
- styled: false,
- stream: Box::new(w),
- }
- }
-
- pub fn encode<T: Encode>(&mut self, arg: &T) -> Result<(), Error> {
- arg.encode(self)?;
- Ok(())
- }
-
- pub fn styled(mut self, value: bool) -> Self {
- self.styled = value;
- self
- }
-
- pub fn write(&mut self, s: impl fmt::Display, style: term::Style) -> io::Result<()> {
- #[cfg(windows)]
- const EOL: &str = "\r\n";
-
- #[cfg(not(windows))]
- const EOL: &str = "\n";
-
- if self.styled {
- write!(
- self.stream,
- "{}{EOL}",
- term::Paint::new(s).with_style(style)
- )
- } else {
- write!(self.stream, "{s}{EOL}")
- }
- }
-
- pub fn meta(&mut self, s: impl fmt::Display) -> io::Result<()> {
- self.write(s, term::Style::new(term::Color::Yellow))
- }
-
- pub fn magenta(&mut self, s: impl fmt::Display) -> io::Result<()> {
- self.write(s, term::Style::new(term::Color::Magenta))
- }
-}
-
-#[cfg(test)]
-mod test {
- use super::*;
-
- #[test]
- fn test_diff_encode_decode_diff() {
- let diff_a = diff::Diff::parse(include_str!(concat!(
- env!("CARGO_MANIFEST_DIR"),
- "/tests/data/diff.diff"
- )))
- .unwrap();
- assert_eq!(
- include_str!(concat!(env!("CARGO_MANIFEST_DIR"), "/tests/data/diff.diff")),
- diff_a.to_unified_string().unwrap()
- );
- }
-
- #[test]
- fn test_diff_content_encode_decode_content() {
- let diff_content = diff::DiffContent::parse(include_str!(concat!(
- env!("CARGO_MANIFEST_DIR"),
- "/tests/data/diff_body.diff"
- )))
- .unwrap();
- assert_eq!(
- include_str!(concat!(
- env!("CARGO_MANIFEST_DIR"),
- "/tests/data/diff_body.diff"
- )),
- diff_content.to_unified_string().unwrap()
- );
- }
-
- // TODO: Test parsing a real diff from this repository.
-}
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 0748f2bf-aff8-467c-b04a-e5ea53a01521 -v /opt/radcis/ci.rad.levitte.org/cci/state/0748f2bf-aff8-467c-b04a-e5ea53a01521/s:/0748f2bf-aff8-467c-b04a-e5ea53a01521/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/0748f2bf-aff8-467c-b04a-e5ea53a01521/w:/0748f2bf-aff8-467c-b04a-e5ea53a01521/w -w /0748f2bf-aff8-467c-b04a-e5ea53a01521/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /0748f2bf-aff8-467c-b04a-e5ea53a01521/s/script.sh
+ export 'RUSTDOCFLAGS=-D warnings'
+ RUSTDOCFLAGS='-D warnings'
+ cargo --version
info: syncing channel updates for '1.90-x86_64-unknown-linux-gnu'
info: latest update on 2025-09-18, rust version 1.90.0 (1159e78c4 2025-09-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.90.0 (840b83a10 2025-07-30)
+ rustc --version
rustc 1.90.0 (1159e78c4 2025-09-14)
+ cargo fmt --check
+ cargo clippy --all-targets --workspace -- --deny warnings
Updating crates.io index
Downloading crates ...
Downloaded gix-hash v0.19.0
Downloaded ff v0.13.0
Downloaded gix-protocol v0.51.0
Downloaded mio v0.8.11
Downloaded inquire v0.7.5
Downloaded idna v1.0.3
Downloaded document-features v0.2.11
Downloaded aho-corasick v1.1.3
Downloaded chacha20poly1305 v0.10.1
Downloaded aes-gcm v0.10.3
Downloaded aes v0.8.4
Downloaded addr2line v0.24.2
Downloaded linux-raw-sys v0.9.4
Downloaded gix-lock v18.0.0
Downloaded gix-odb v0.70.0
Downloaded gix-validate v0.10.0
Downloaded gix-utils v0.3.0
Downloaded gix-quote v0.6.0
Downloaded gix-prompt v0.11.1
Downloaded clap_builder v4.5.44
Downloaded heck v0.5.0
Downloaded git-ref-format-core v0.6.0
Downloaded gix-shallow v0.5.0
Downloaded inout v0.1.3
Downloaded gix-actor v0.35.4
Downloaded gix-config-value v0.15.1
Downloaded keccak v0.1.5
Downloaded home v0.5.9
Downloaded matchers v0.1.0
Downloaded nonempty v0.9.0
Downloaded newline-converter v0.3.0
Downloaded multibase v0.9.1
Downloaded gix-url v0.32.0
Downloaded normalize-line-endings v0.3.0
Downloaded hash32 v0.3.1
Downloaded maybe-async v0.2.10
Downloaded nu-ansi-term v0.46.0
Downloaded icu_locid_transform_data v1.5.1
Downloaded num-cmp v0.1.0
Downloaded lazy_static v1.5.0
Downloaded fraction v0.15.3
Downloaded memmap2 v0.9.8
Downloaded log v0.4.27
Downloaded phf_shared v0.11.3
Downloaded pbkdf2 v0.12.2
Downloaded libz-rs-sys v0.5.2
Downloaded num-traits v0.2.19
Downloaded icu_provider v1.5.0
Downloaded qcheck-macros v1.0.0
Downloaded primeorder v0.13.6
Downloaded ppv-lite86 v0.2.17
Downloaded rustc-demangle v0.1.26
Downloaded poly1305 v0.8.0
Downloaded memchr v2.7.2
Downloaded quick-error v1.2.3
Downloaded either v1.11.0
Downloaded rand_chacha v0.3.1
Downloaded proc-macro2 v1.0.101
Downloaded rand_xorshift v0.4.0
Downloaded libm v0.2.8
Downloaded sval_fmt v2.14.1
Downloaded ref-cast-impl v1.0.24
Downloaded git2 v0.19.0
Downloaded itertools v0.14.0
Downloaded referencing v0.30.0
Downloaded p384 v0.13.0
Downloaded thiserror v1.0.69
Downloaded scopeguard v1.2.0
Downloaded tracing-core v0.1.34
Downloaded schemars_derive v1.0.4
Downloaded cypheraddr v0.4.0
Downloaded data-encoding-macro v0.1.14
Downloaded scrypt v0.11.0
Downloaded noise-framework v0.4.0
Downloaded same-file v1.0.6
Downloaded bit-set v0.8.0
Downloaded serde_derive_internals v0.29.1
Downloaded serde_derive v1.0.219
Downloaded outref v0.5.2
Downloaded cbc v0.1.2
Downloaded serde_spanned v1.0.0
Downloaded opaque-debug v0.3.1
Downloaded os_info v3.12.0
Downloaded shell-words v1.1.0
Downloaded yoke-derive v0.7.5
Downloaded serde_fmt v1.0.3
Downloaded sem_safe v0.2.0
Downloaded signal-hook-mio v0.2.4
Downloaded sha2 v0.10.8
Downloaded syn v2.0.106
Downloaded signal-hook-registry v1.4.5
Downloaded signature v1.6.4
Downloaded signature v2.2.0
Downloaded similar v2.5.0
Downloaded serde v1.0.219
Downloaded ssh-cipher v0.2.0
Downloaded regex-syntax v0.6.29
Downloaded ssh-encoding v0.2.0
Downloaded stable_deref_trait v1.2.0
Downloaded streaming-iterator v0.1.9
Downloaded subtle v2.5.0
Downloaded sval_ref v2.14.1
Downloaded sval_json v2.14.1
Downloaded sval_serde v2.14.1
Downloaded structured-logger v1.0.4
Downloaded spin v0.9.8
Downloaded thiserror v2.0.17
Downloaded tree-sitter-json v0.24.8
Downloaded tracing-log v0.2.0
Downloaded tree-sitter-highlight v0.24.4
Downloaded unarray v0.1.4
Downloaded tinyvec v1.6.0
Downloaded version_check v0.9.4
Downloaded value-bag-sval2 v1.11.1
Downloaded unit-prefix v0.5.1
Downloaded wait-timeout v0.2.1
Downloaded zerofrom-derive v0.1.6
Downloaded uuid-simd v0.8.0
Downloaded zerofrom v0.1.6
Downloaded write16 v1.0.0
Downloaded universal-hash v0.5.1
Downloaded zeroize v1.7.0
Downloaded yoke v0.7.5
Downloaded vsimd v0.8.0
Downloaded typenum v1.17.0
Downloaded ssh-key v0.6.6
Downloaded zerovec-derive v0.10.3
Downloaded yansi v0.5.1
Downloaded unicode-ident v1.0.12
Downloaded tracing v0.1.41
Downloaded regex-automata v0.4.9
Downloaded value-bag v1.11.1
Downloaded uuid v1.16.0
Downloaded url v2.5.4
Downloaded tree-sitter-go v0.23.4
Downloaded writeable v0.5.5
Downloaded zerovec v0.10.4
Downloaded sha1-checked v0.10.0
Downloaded unicode-segmentation v1.11.0
Downloaded zerocopy v0.7.35
Downloaded tree-sitter v0.24.4
Downloaded regex-syntax v0.8.5
Downloaded vcpkg v0.2.15
Downloaded unicode-normalization v0.1.23
Downloaded tracing-subscriber v0.3.19
Downloaded zlib-rs v0.5.2
Downloaded winnow v0.7.13
Downloaded syn v1.0.109
Downloaded unicode-width v0.2.1
Downloaded tree-sitter-rust v0.23.2
Downloaded tree-sitter-bash v0.23.3
Downloaded tree-sitter-python v0.23.4
Downloaded tree-sitter-md v0.3.2
Downloaded tree-sitter-c v0.23.2
Downloaded walkdir v2.5.0
Downloaded value-bag-serde1 v1.11.1
Downloaded unicode-display-width v0.3.0
Downloaded utf16_iter v1.0.5
Downloaded tree-sitter-ruby v0.23.1
Downloaded typeid v1.0.3
Downloaded unicode-width v0.1.11
Downloaded utf8parse v0.2.1
Downloaded utf8_iter v1.0.4
Downloaded tree-sitter-toml-ng v0.6.0
Downloaded tokio v1.47.1
Downloaded sha3 v0.10.8
Downloaded tree-sitter-css v0.23.1
Downloaded tree-sitter-language v0.1.2
Downloaded libgit2-sys v0.17.0+1.8.1
Downloaded tree-sitter-html v0.23.2
Downloaded toml v0.9.5
Downloaded tinyvec_macros v0.1.1
Downloaded timeago v0.4.2
Downloaded thiserror-impl v1.0.69
Downloaded tree-sitter-typescript v0.23.2
Downloaded test-log v0.2.18
Downloaded strsim v0.11.1
Downloaded sqlite3-sys v0.15.2
Downloaded rand v0.8.5
Downloaded toml_writer v1.0.2
Downloaded toml_datetime v0.7.0
Downloaded tinystr v0.7.6
Downloaded thread_local v1.1.9
Downloaded thiserror-impl v2.0.17
Downloaded sval_buffer v2.14.1
Downloaded sval v2.14.1
Downloaded test-log-macros v0.2.18
Downloaded tempfile v3.23.0
Downloaded systemd-journal-logger v2.2.2
Downloaded synstructure v0.13.1
Downloaded sval_nested v2.14.1
Downloaded signal-hook v0.3.18
Downloaded libc v0.2.174
Downloaded spki v0.7.3
Downloaded snapbox v0.4.17
Downloaded sval_dynamic v2.14.1
Downloaded smallvec v1.15.1
Downloaded siphasher v0.3.11
Downloaded shlex v1.3.0
Downloaded rustix v1.0.7
Downloaded sqlite v0.32.0
Downloaded socket2 v0.5.7
Downloaded siphasher v1.0.1
Downloaded sharded-slab v0.1.7
Downloaded serde_json v1.0.140
Downloaded sec1 v0.7.3
Downloaded sqlite3-src v0.5.1
Downloaded salsa20 v0.10.2
Downloaded rfc6979 v0.4.0
Downloaded jiff v0.2.15
Downloaded socks5-client v0.4.1
Downloaded snapbox-macros v0.3.8
Downloaded signals_receipts v0.2.0
Downloaded regex v1.11.1
Downloaded bloomy v1.2.0
Downloaded parking_lot v0.12.5
Downloaded num-bigint-dig v0.8.4
Downloaded mio v1.0.4
Downloaded crossterm v0.29.0
Downloaded num-bigint v0.4.6
Downloaded cc v1.2.2
Downloaded base64 v0.22.1
Downloaded serde-untagged v0.1.7
Downloaded p256 v0.13.2
Downloaded arc-swap v1.7.1
Downloaded sha1 v0.10.6
Downloaded regex-automata v0.1.10
Downloaded crossbeam-channel v0.5.15
Downloaded bytes v1.10.1
Downloaded anstyle-parse v0.2.3
Downloaded overload v0.1.1
Downloaded once_cell v1.21.3
Downloaded num-rational v0.4.2
Downloaded num-iter v0.1.45
Downloaded bitflags v1.3.2
Downloaded anstream v0.6.13
Downloaded num-integer v0.1.46
Downloaded num-complex v0.4.6
Downloaded rsa v0.9.6
Downloaded ascii v1.1.0
Downloaded num v0.4.3
Downloaded emojis v0.6.4
Downloaded escargot v0.5.10
Downloaded cfg-if v1.0.0
Downloaded base64 v0.21.7
Downloaded bcrypt-pbkdf v0.10.0
Downloaded base16ct v0.2.0
Downloaded anstyle-query v1.0.2
Downloaded object v0.36.7
Downloaded displaydoc v0.2.5
Downloaded block-buffer v0.10.4
Downloaded bytecount v0.6.8
Downloaded rand v0.9.2
Downloaded icu_properties_data v1.5.1
Downloaded ed25519 v1.5.3
Downloaded bstr v1.12.0
Downloaded blowfish v0.9.1
Downloaded ryu v1.0.17
Downloaded rusty-fork v0.3.1
Downloaded proptest v1.9.0
Downloaded dunce v1.0.5
Downloaded bit-vec v0.8.0
Downloaded amplify_syn v2.0.1
Downloaded gimli v0.31.1
Downloaded fast-glob v0.3.3
Downloaded dyn-clone v1.0.17
Downloaded portable-atomic v1.11.0
Downloaded equivalent v1.0.1
Downloaded email_address v0.2.9
Downloaded elliptic-curve v0.13.8
Downloaded ecdsa v0.16.9
Downloaded crc32fast v1.5.0
Downloaded backtrace v0.3.75
Downloaded fastrand v2.3.0
Downloaded anyhow v1.0.82
Downloaded rand_core v0.6.4
Downloaded p521 v0.13.3
Downloaded hashbrown v0.15.5
Downloaded env_filter v0.1.3
Downloaded block-padding v0.3.3
Downloaded base-x v0.2.11
Downloaded schemars v1.0.4
Downloaded ref-cast v1.0.24
Downloaded rand_core v0.9.3
Downloaded rand_chacha v0.9.0
Downloaded prodash v30.0.1
Downloaded pretty_assertions v1.4.0
Downloaded jsonschema v0.30.0
Downloaded fancy-regex v0.14.0
Downloaded derive_more-impl v2.0.1
Downloaded libz-sys v1.1.16
Downloaded der v0.7.9
Downloaded base32 v0.4.0
Downloaded autocfg v1.2.0
Downloaded gix-pack v0.60.0
Downloaded quote v1.0.41
Downloaded hashbrown v0.14.3
Downloaded data-encoding-macro-internal v0.1.12
Downloaded crossterm v0.25.0
Downloaded colored v2.1.0
Downloaded ec25519 v0.1.0
Downloaded const-oid v0.9.6
Downloaded pkcs1 v0.7.5
Downloaded pin-project-lite v0.2.16
Downloaded phf v0.11.3
Downloaded parking_lot_core v0.9.12
Downloaded crypto-common v0.1.6
Downloaded byteorder v1.5.0
Downloaded indexmap v2.2.6
Downloaded diff v0.1.13
Downloaded crypto-bigint v0.5.5
Downloaded base64ct v1.6.0
Downloaded pkcs8 v0.10.2
Downloaded indicatif v0.18.0
Downloaded icu_collections v1.5.0
Downloaded data-encoding v2.5.0
Downloaded qcheck v1.0.0
Downloaded pkg-config v0.3.30
Downloaded pem-rfc7468 v0.7.0
Downloaded paste v1.0.15
Downloaded jiff-static v0.2.15
Downloaded heapless v0.8.0
Downloaded ct-codecs v1.1.1
Downloaded miniz_oxide v0.8.8
Downloaded litrs v0.4.1
Downloaded icu_locid v1.5.0
Downloaded derive_more v2.0.1
Downloaded gix-transport v0.48.0
Downloaded polyval v0.6.2
Downloaded percent-encoding v2.3.1
Downloaded gix-ref v0.53.1
Downloaded faster-hex v0.10.0
Downloaded cpufeatures v0.2.12
Downloaded icu_normalizer_data v1.5.1
Downloaded env_logger v0.11.8
Downloaded icu_properties v1.5.1
Downloaded cyphergraphy v0.3.0
Downloaded convert_case v0.7.1
Downloaded console v0.16.0
Downloaded clap_derive v4.5.41
Downloaded chrono v0.4.38
Downloaded icu_normalizer v1.5.0
Downloaded erased-serde v0.4.6
Downloaded ctr v0.9.2
Downloaded clap_lex v0.7.5
Downloaded cipher v0.4.4
Downloaded hmac v0.12.1
Downloaded gix-revwalk v0.21.0
Downloaded gix-packetline v0.19.1
Downloaded clap_complete v4.5.60
Downloaded amplify_num v0.5.2
Downloaded crossbeam-utils v0.8.19
Downloaded anstyle v1.0.11
Downloaded lexopt v0.3.0
Downloaded icu_locid_transform v1.5.0
Downloaded iana-time-zone v0.1.60
Downloaded group v0.13.0
Downloaded gix-tempfile v18.0.0
Downloaded lock_api v0.4.14
Downloaded litemap v0.7.5
Downloaded gix-traverse v0.47.0
Downloaded gix-path v0.10.20
Downloaded chacha20 v0.9.1
Downloaded gix-revision v0.35.0
Downloaded gix-refspec v0.31.0
Downloaded digest v0.10.7
Downloaded icu_provider_macros v1.5.0
Downloaded human-panic v2.0.3
Downloaded colorchoice v1.0.0
Downloaded clap v4.5.44
Downloaded itoa v1.0.11
Downloaded idna_adapter v1.2.0
Downloaded gix-trace v0.1.13
Downloaded gix-sec v0.12.0
Downloaded gix-object v0.50.2
Downloaded gix-negotiate v0.21.0
Downloaded gix-hashtable v0.9.0
Downloaded gix-fs v0.16.1
Downloaded gix-features v0.43.1
Downloaded gix-commitgraph v0.29.0
Downloaded gix-chunk v0.4.11
Downloaded ghash v0.5.1
Downloaded getrandom v0.2.15
Downloaded generic-array v0.14.7
Downloaded fxhash v0.2.1
Downloaded form_urlencoded v1.2.1
Downloaded fluent-uri v0.3.2
Downloaded gix-diff v0.53.0
Downloaded gix-credentials v0.30.0
Downloaded gix-command v0.6.2
Downloaded getrandom v0.3.3
Downloaded fnv v1.0.7
Downloaded cyphernet v0.5.2
Downloaded jobserver v0.1.31
Downloaded flate2 v1.1.1
Downloaded bitflags v2.9.1
Downloaded amplify_derive v4.0.0
Downloaded amplify v4.6.0
Downloaded ahash v0.8.11
Downloaded errno v0.3.13
Downloaded bytesize v2.0.1
Downloaded borrow-or-share v0.2.2
Downloaded aead v0.5.2
Downloaded gix-date v0.10.5
Downloaded adler2 v2.0.0
Compiling libc v0.2.174
Compiling proc-macro2 v1.0.101
Compiling unicode-ident v1.0.12
Compiling quote v1.0.41
Checking cfg-if v1.0.0
Compiling version_check v0.9.4
Compiling shlex v1.3.0
Checking memchr v2.7.2
Compiling typenum v1.17.0
Compiling jobserver v0.1.31
Compiling syn v2.0.106
Checking getrandom v0.2.15
Compiling cc v1.2.2
Compiling generic-array v0.14.7
Checking rand_core v0.6.4
Compiling serde v1.0.219
Checking regex-syntax v0.8.5
Checking crypto-common v0.1.6
Checking aho-corasick v1.1.3
Checking smallvec v1.15.1
Compiling thiserror v2.0.17
Checking subtle v2.5.0
Checking once_cell v1.21.3
Checking regex-automata v0.4.9
Checking stable_deref_trait v1.2.0
Checking cpufeatures v0.2.12
Checking fastrand v2.3.0
Compiling parking_lot_core v0.9.12
Checking scopeguard v1.2.0
Checking lock_api v0.4.14
Checking block-buffer v0.10.4
Checking digest v0.10.7
Checking parking_lot v0.12.5
Checking tinyvec_macros v0.1.1
Checking byteorder v1.5.0
Checking tinyvec v1.6.0
Checking gix-trace v0.1.13
Checking bitflags v2.9.1
Compiling typeid v1.0.3
Checking home v0.5.9
Compiling crc32fast v1.5.0
Checking unicode-normalization v0.1.23
Checking zlib-rs v0.5.2
Checking gix-utils v0.3.0
Compiling synstructure v0.13.1
Checking bstr v1.12.0
Checking libz-rs-sys v0.5.2
Checking same-file v1.0.6
Checking flate2 v1.1.1
Checking walkdir v2.5.0
Checking prodash v30.0.1
Checking itoa v1.0.11
Compiling heapless v0.8.0
Compiling getrandom v0.3.3
Checking hash32 v0.3.1
Checking zeroize v1.7.0
Compiling serde_derive v1.0.219
Compiling thiserror-impl v2.0.17
Compiling zerofrom-derive v0.1.6
Compiling yoke-derive v0.7.5
Compiling zerovec-derive v0.10.3
Checking zerofrom v0.1.6
Checking yoke v0.7.5
Checking gix-validate v0.10.0
Checking gix-path v0.10.20
Compiling displaydoc v0.2.5
Checking gix-features v0.43.1
Compiling rustix v1.0.7
Checking zerovec v0.10.4
Checking faster-hex v0.10.0
Checking linux-raw-sys v0.9.4
Checking sha1 v0.10.6
Checking block-padding v0.3.3
Compiling pkg-config v0.3.30
Checking tinystr v0.7.6
Compiling icu_locid_transform_data v1.5.1
Checking litemap v0.7.5
Checking writeable v0.5.5
Checking inout v0.1.3
Checking icu_locid v1.5.0
Checking sha1-checked v0.10.0
Compiling icu_provider_macros v1.5.0
Compiling icu_properties_data v1.5.1
Compiling syn v1.0.109
Checking icu_provider v1.5.0
Checking gix-hash v0.19.0
Checking cipher v0.4.4
Compiling icu_normalizer_data v1.5.1
Checking icu_locid_transform v1.5.0
Checking erased-serde v0.4.6
Checking serde_fmt v1.0.3
Checking icu_collections v1.5.0
Checking value-bag-serde1 v1.11.1
Checking value-bag v1.11.1
Checking icu_properties v1.5.1
Checking log v0.4.27
Checking utf16_iter v1.0.5
Checking write16 v1.0.0
Checking utf8_iter v1.0.4
Checking percent-encoding v2.3.1
Checking sha2 v0.10.8
Checking tempfile v3.23.0
Checking universal-hash v0.5.1
Checking equivalent v1.0.1
Compiling serde_json v1.0.140
Checking hashbrown v0.14.3
Checking opaque-debug v0.3.1
Checking form_urlencoded v1.2.1
Compiling vcpkg v0.2.15
Checking indexmap v2.2.6
Checking icu_normalizer v1.5.0
Compiling autocfg v1.2.0
Compiling ref-cast v1.0.24
Checking idna_adapter v1.2.0
Checking ryu v1.0.17
Checking idna v1.0.3
Compiling num-traits v0.2.19
Checking url v2.5.4
Compiling libz-sys v1.1.16
Compiling amplify_syn v2.0.1
Compiling ref-cast-impl v1.0.24
Checking signature v1.6.4
Checking ed25519 v1.5.3
Checking aead v0.5.2
Checking dyn-clone v1.0.17
Checking amplify_num v0.5.2
Compiling thiserror v1.0.69
Checking ascii v1.1.0
Checking ct-codecs v1.1.1
Compiling amplify_derive v4.0.0
Checking ec25519 v0.1.0
Checking poly1305 v0.8.0
Checking chacha20 v0.9.1
Compiling libgit2-sys v0.17.0+1.8.1
Compiling thiserror-impl v1.0.69
Checking polyval v0.6.2
Compiling sqlite3-src v0.5.1
Compiling serde_derive_internals v0.29.1
Checking amplify v4.6.0
Checking hmac v0.12.1
Checking base64ct v1.6.0
Checking cyphergraphy v0.3.0
Checking keccak v0.1.5
Checking sha3 v0.10.8
Checking pbkdf2 v0.12.2
Checking pem-rfc7468 v0.7.0
Compiling schemars_derive v1.0.4
Checking ghash v0.5.1
Checking aes v0.8.4
Checking ctr v0.9.2
Checking rand v0.8.5
Compiling data-encoding v2.5.0
Checking base32 v0.4.0
Checking cypheraddr v0.4.0
Compiling data-encoding-macro-internal v0.1.12
Checking schemars v1.0.4
Checking qcheck v1.0.0
Checking aes-gcm v0.10.3
Checking ssh-encoding v0.2.0
Checking git-ref-format-core v0.6.0
Checking chacha20poly1305 v0.10.1
Checking blowfish v0.9.1
Checking cbc v0.1.2
Checking ssh-cipher v0.2.0
Checking bcrypt-pbkdf v0.10.0
Checking data-encoding-macro v0.1.14
Checking noise-framework v0.4.0
Checking socks5-client v0.4.1
Compiling crossbeam-utils v0.8.19
Checking base-x v0.2.11
Checking signature v2.2.0
Checking multibase v0.9.1
Checking ssh-key v0.6.6
Checking cyphernet v0.5.2
Checking radicle-ssh v0.10.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-ssh)
Checking lazy_static v1.5.0
Checking crossbeam-channel v0.5.15
Checking jiff v0.2.15
Checking siphasher v1.0.1
Checking anstyle-query v1.0.2
Checking nonempty v0.9.0
Checking radicle-git-metadata v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-git-metadata)
Checking radicle-dag v0.10.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-dag)
Checking winnow v0.7.13
Checking utf8parse v0.2.1
Checking hashbrown v0.15.5
Checking gix-hashtable v0.9.0
Checking anstyle-parse v0.2.3
Checking gix-date v0.10.5
Checking gix-actor v0.35.4
Checking radicle-git-ref-format v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-git-ref-format)
Checking iana-time-zone v0.1.60
Checking anstyle v1.0.11
Checking colorchoice v1.0.0
Checking chrono v0.4.38
Checking anstream v0.6.13
Checking gix-object v0.50.2
Checking colored v2.1.0
Checking radicle-localtime v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-localtime)
Checking serde-untagged v0.1.7
Checking bytesize v2.0.1
Checking memmap2 v0.9.8
Checking dunce v1.0.5
Checking base64 v0.21.7
Checking tree-sitter-language v0.1.2
Checking fast-glob v0.3.3
Checking gix-chunk v0.4.11
Checking gix-fs v0.16.1
Checking gix-commitgraph v0.29.0
Checking gix-tempfile v18.0.0
Checking mio v1.0.4
Checking gix-revwalk v0.21.0
Checking gix-quote v0.6.0
Checking errno v0.3.13
Checking sem_safe v0.2.0
Checking either v1.11.0
Checking shell-words v1.1.0
Checking gix-command v0.6.2
Checking signals_receipts v0.2.0
Compiling object v0.36.7
Compiling signal-hook v0.3.18
Checking gix-lock v18.0.0
Checking gix-url v0.32.0
Checking gix-config-value v0.15.1
Checking gix-sec v0.12.0
Checking signal-hook-registry v1.4.5
Checking gimli v0.31.1
Checking adler2 v2.0.0
Checking miniz_oxide v0.8.8
Checking gix-prompt v0.11.1
Checking addr2line v0.24.2
Checking radicle-signals v0.11.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-signals)
Checking gix-traverse v0.47.0
Checking gix-revision v0.35.0
Checking gix-diff v0.53.0
Checking mio v0.8.11
Checking gix-packetline v0.19.1
Compiling tree-sitter v0.24.4
Checking rustc-demangle v0.1.26
Compiling unicode-segmentation v1.11.0
Checking backtrace v0.3.75
Compiling convert_case v0.7.1
Checking gix-transport v0.48.0
Checking signal-hook-mio v0.2.4
Checking gix-pack v0.60.0
Checking gix-refspec v0.31.0
Checking gix-credentials v0.30.0
Checking gix-shallow v0.5.0
Checking gix-ref v0.53.1
Checking gix-negotiate v0.21.0
Compiling maybe-async v0.2.10
Checking regex v1.11.1
Compiling portable-atomic v1.11.0
Checking arc-swap v1.7.1
Checking gix-protocol v0.51.0
Checking gix-odb v0.70.0
Compiling derive_more-impl v2.0.1
Checking uuid v1.16.0
Compiling litrs v0.4.1
Checking bytes v1.10.1
Checking bitflags v1.3.2
Checking unicode-width v0.2.1
Checking crossterm v0.25.0
Checking console v0.16.0
Compiling document-features v0.2.11
Checking derive_more v2.0.1
Checking newline-converter v0.3.0
Checking snapbox-macros v0.3.8
Checking salsa20 v0.10.2
Checking fxhash v0.2.1
Compiling heck v0.5.0
Checking unicode-width v0.1.11
Checking siphasher v0.3.11
Checking streaming-iterator v0.1.9
Checking clap_lex v0.7.5
Checking strsim v0.11.1
Checking similar v2.5.0
Checking normalize-line-endings v0.3.0
Checking unit-prefix v0.5.1
Checking indicatif v0.18.0
Checking snapbox v0.4.17
Checking clap_builder v4.5.44
Checking bloomy v1.2.0
Compiling clap_derive v4.5.41
Checking inquire v0.7.5
Checking scrypt v0.11.0
Checking crossterm v0.29.0
Checking unicode-display-width v0.3.0
Checking systemd-journal-logger v2.2.2
Checking serde_spanned v1.0.0
Checking toml_datetime v0.7.0
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-python v0.23.4
Compiling anyhow v1.0.82
Checking toml_writer v1.0.2
Checking pin-project-lite v0.2.16
Checking tokio v1.47.1
Checking toml v0.9.5
Checking sqlite3-sys v0.15.2
Checking sqlite v0.32.0
Checking radicle-crypto v0.14.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-crypto)
Checking clap v4.5.44
Checking os_info v3.12.0
Checking yansi v0.5.1
Compiling radicle-cli v0.17.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli)
Checking diff v0.1.13
Compiling radicle-node v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-node)
Checking pretty_assertions v1.4.0
Checking human-panic v2.0.3
Checking clap_complete v4.5.60
Checking structured-logger v1.0.4
Checking radicle-systemd v0.11.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-systemd)
Checking tree-sitter-highlight v0.24.4
Checking itertools v0.14.0
Checking num-integer v0.1.46
Compiling qcheck-macros v1.0.0
Checking socket2 v0.5.7
Compiling escargot v0.5.10
Checking lexopt v0.3.0
Checking timeago v0.4.2
Checking bit-vec v0.8.0
Checking num-bigint v0.4.6
Checking bit-set v0.8.0
Checking rand_core v0.9.3
Compiling ahash v0.8.11
Checking num-iter v0.1.45
Checking num-complex v0.4.6
Checking env_filter v0.1.3
Checking zerocopy v0.7.35
Checking borrow-or-share v0.2.2
Checking fluent-uri v0.3.2
Checking num-rational v0.4.2
Checking env_logger v0.11.8
Checking num v0.4.3
Checking phf_shared v0.11.3
Compiling test-log-macros v0.2.18
Checking wait-timeout v0.2.1
Checking vsimd v0.8.0
Checking quick-error v1.2.3
Checking outref v0.5.2
Compiling radicle-remote-helper v0.14.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-remote-helper)
Checking fnv v1.0.7
Checking ppv-lite86 v0.2.17
Compiling paste v1.0.15
Checking rand_chacha v0.9.0
Checking uuid-simd v0.8.0
Checking rusty-fork v0.3.1
Checking test-log v0.2.18
Checking phf v0.11.3
Checking referencing v0.30.0
Checking fraction v0.15.3
Checking rand v0.9.2
Checking rand_xorshift v0.4.0
Checking fancy-regex v0.14.0
Checking email_address v0.2.9
Checking unarray v0.1.4
Checking bytecount v0.6.8
Checking num-cmp v0.1.0
Checking base64 v0.22.1
Checking proptest v1.9.0
Checking emojis v0.6.4
Checking jsonschema v0.30.0
Checking git2 v0.19.0
Checking radicle-oid v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-oid)
Checking radicle-term v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-term)
Checking radicle-core v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-core)
Checking radicle-cob v0.17.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cob)
Checking radicle v0.20.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle)
Checking radicle-fetch v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-fetch)
Checking radicle-cli-test v0.13.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli-test)
Checking radicle-protocol v0.4.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-protocol)
Checking radicle-schemars v0.6.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.47s
+ cargo build --all-targets --workspace
Compiling libc v0.2.174
Compiling cfg-if v1.0.0
Compiling shlex v1.3.0
Compiling memchr v2.7.2
Compiling typenum v1.17.0
Compiling serde v1.0.219
Compiling jobserver v0.1.31
Compiling getrandom v0.2.15
Compiling generic-array v0.14.7
Compiling rand_core v0.6.4
Compiling cc v1.2.2
Compiling regex-syntax v0.8.5
Compiling crypto-common v0.1.6
Compiling aho-corasick v1.1.3
Compiling smallvec v1.15.1
Compiling regex-automata v0.4.9
Compiling thiserror v2.0.17
Compiling subtle v2.5.0
Compiling once_cell v1.21.3
Compiling cpufeatures v0.2.12
Compiling stable_deref_trait v1.2.0
Compiling fastrand v2.3.0
Compiling scopeguard v1.2.0
Compiling lock_api v0.4.14
Compiling parking_lot_core v0.9.12
Compiling block-buffer v0.10.4
Compiling parking_lot v0.12.5
Compiling digest v0.10.7
Compiling byteorder v1.5.0
Compiling tinyvec_macros v0.1.1
Compiling tinyvec v1.6.0
Compiling bitflags v2.9.1
Compiling gix-trace v0.1.13
Compiling home v0.5.9
Compiling typeid v1.0.3
Compiling zlib-rs v0.5.2
Compiling erased-serde v0.4.6
Compiling unicode-normalization v0.1.23
Compiling crc32fast v1.5.0
Compiling same-file v1.0.6
Compiling walkdir v2.5.0
Compiling gix-utils v0.3.0
Compiling bstr v1.12.0
Compiling prodash v30.0.1
Compiling gix-validate v0.10.0
Compiling serde_fmt v1.0.3
Compiling itoa v1.0.11
Compiling gix-path v0.10.20
Compiling value-bag-serde1 v1.11.1
Compiling zerofrom v0.1.6
Compiling value-bag v1.11.1
Compiling yoke v0.7.5
Compiling log v0.4.27
Compiling hash32 v0.3.1
Compiling zeroize v1.7.0
Compiling zerovec v0.10.4
Compiling heapless v0.8.0
Compiling getrandom v0.3.3
Compiling faster-hex v0.10.0
Compiling libz-rs-sys v0.5.2
Compiling linux-raw-sys v0.9.4
Compiling flate2 v1.1.1
Compiling gix-features v0.43.1
Compiling tinystr v0.7.6
Compiling sha1 v0.10.6
Compiling block-padding v0.3.3
Compiling litemap v0.7.5
Compiling writeable v0.5.5
Compiling inout v0.1.3
Compiling sha1-checked v0.10.0
Compiling icu_locid v1.5.0
Compiling cipher v0.4.4
Compiling rustix v1.0.7
Compiling gix-hash v0.19.0
Compiling icu_locid_transform_data v1.5.1
Compiling icu_properties_data v1.5.1
Compiling icu_collections v1.5.0
Compiling icu_provider v1.5.0
Compiling icu_locid_transform v1.5.0
Compiling icu_normalizer_data v1.5.1
Compiling write16 v1.0.0
Compiling utf16_iter v1.0.5
Compiling utf8_iter v1.0.4
Compiling percent-encoding v2.3.1
Compiling sha2 v0.10.8
Compiling universal-hash v0.5.1
Compiling opaque-debug v0.3.1
Compiling hashbrown v0.14.3
Compiling equivalent v1.0.1
Compiling form_urlencoded v1.2.1
Compiling icu_properties v1.5.1
Compiling indexmap v2.2.6
Compiling ryu v1.0.17
Compiling libz-sys v1.1.16
Compiling serde_json v1.0.140
Compiling tempfile v3.23.0
Compiling signature v1.6.4
Compiling ed25519 v1.5.3
Compiling ref-cast v1.0.24
Compiling icu_normalizer v1.5.0
Compiling aead v0.5.2
Compiling ascii v1.1.0
Compiling idna_adapter v1.2.0
Compiling dyn-clone v1.0.17
Compiling ct-codecs v1.1.1
Compiling idna v1.0.3
Compiling amplify_num v0.5.2
Compiling ec25519 v0.1.0
Compiling url v2.5.4
Compiling num-traits v0.2.19
Compiling poly1305 v0.8.0
Compiling chacha20 v0.9.1
Compiling amplify v4.6.0
Compiling libgit2-sys v0.17.0+1.8.1
Compiling thiserror v1.0.69
Compiling cyphergraphy v0.3.0
Compiling polyval v0.6.2
Compiling sqlite3-src v0.5.1
Compiling hmac v0.12.1
Compiling keccak v0.1.5
Compiling base64ct v1.6.0
Compiling pem-rfc7468 v0.7.0
Compiling sha3 v0.10.8
Compiling pbkdf2 v0.12.2
Compiling ghash v0.5.1
Compiling aes v0.8.4
Compiling ctr v0.9.2
Compiling rand v0.8.5
Compiling base32 v0.4.0
Compiling qcheck v1.0.0
Compiling cypheraddr v0.4.0
Compiling aes-gcm v0.10.3
Compiling schemars v1.0.4
Compiling ssh-encoding v0.2.0
Compiling git-ref-format-core v0.6.0
Compiling chacha20poly1305 v0.10.1
Compiling cbc v0.1.2
Compiling blowfish v0.9.1
Compiling data-encoding v2.5.0
Compiling bcrypt-pbkdf v0.10.0
Compiling ssh-cipher v0.2.0
Compiling data-encoding-macro v0.1.14
Compiling noise-framework v0.4.0
Compiling socks5-client v0.4.1
Compiling base-x v0.2.11
Compiling signature v2.2.0
Compiling multibase v0.9.1
Compiling ssh-key v0.6.6
Compiling cyphernet v0.5.2
Compiling radicle-ssh v0.10.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-ssh)
Compiling crossbeam-utils v0.8.19
Compiling crossbeam-channel v0.5.15
Compiling jiff v0.2.15
Compiling lazy_static v1.5.0
Compiling anstyle-query v1.0.2
Compiling siphasher v1.0.1
Compiling radicle-dag v0.10.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-dag)
Compiling radicle-git-metadata v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-git-metadata)
Compiling nonempty v0.9.0
Compiling winnow v0.7.13
Compiling utf8parse v0.2.1
Compiling hashbrown v0.15.5
Compiling gix-hashtable v0.9.0
Compiling anstyle-parse v0.2.3
Compiling gix-date v0.10.5
Compiling gix-actor v0.35.4
Compiling radicle-git-ref-format v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-git-ref-format)
Compiling anstyle v1.0.11
Compiling colorchoice v1.0.0
Compiling iana-time-zone v0.1.60
Compiling chrono v0.4.38
Compiling anstream v0.6.13
Compiling gix-object v0.50.2
Compiling colored v2.1.0
Compiling radicle-localtime v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-localtime)
Compiling serde-untagged v0.1.7
Compiling bytesize v2.0.1
Compiling memmap2 v0.9.8
Compiling dunce v1.0.5
Compiling tree-sitter-language v0.1.2
Compiling base64 v0.21.7
Compiling fast-glob v0.3.3
Compiling gix-chunk v0.4.11
Compiling gix-commitgraph v0.29.0
Compiling gix-fs v0.16.1
Compiling gix-revwalk v0.21.0
Compiling gix-tempfile v18.0.0
Compiling mio v1.0.4
Compiling gix-quote v0.6.0
Compiling sem_safe v0.2.0
Compiling errno v0.3.13
Compiling either v1.11.0
Compiling unicode-segmentation v1.11.0
Compiling shell-words v1.1.0
Compiling gix-command v0.6.2
Compiling signals_receipts v0.2.0
Compiling gix-lock v18.0.0
Compiling gix-url v0.32.0
Compiling gix-config-value v0.15.1
Compiling gix-sec v0.12.0
Compiling signal-hook-registry v1.4.5
Compiling gimli v0.31.1
Compiling adler2 v2.0.0
Compiling miniz_oxide v0.8.8
Compiling signal-hook v0.3.18
Compiling gix-prompt v0.11.1
Compiling radicle-signals v0.11.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-signals)
Compiling addr2line v0.24.2
Compiling object v0.36.7
Compiling gix-traverse v0.47.0
Compiling gix-revision v0.35.0
Compiling gix-diff v0.53.0
Compiling gix-packetline v0.19.1
Compiling mio v0.8.11
Compiling tree-sitter v0.24.4
Compiling rustc-demangle v0.1.26
Compiling backtrace v0.3.75
Compiling signal-hook-mio v0.2.4
Compiling gix-transport v0.48.0
Compiling gix-pack v0.60.0
Compiling sqlite3-sys v0.15.2
Compiling sqlite v0.32.0
Compiling gix-refspec v0.31.0
Compiling radicle-crypto v0.14.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-crypto)
Compiling gix-credentials v0.30.0
Compiling gix-ref v0.53.1
Compiling gix-shallow v0.5.0
Compiling convert_case v0.7.1
Compiling gix-negotiate v0.21.0
Compiling regex v1.11.1
Compiling arc-swap v1.7.1
Compiling gix-odb v0.70.0
Compiling gix-protocol v0.51.0
Compiling derive_more-impl v2.0.1
Compiling uuid v1.16.0
Compiling unicode-width v0.2.1
Compiling bitflags v1.3.2
Compiling bytes v1.10.1
Compiling console v0.16.0
Compiling crossterm v0.25.0
Compiling derive_more v2.0.1
Compiling portable-atomic v1.11.0
Compiling newline-converter v0.3.0
Compiling snapbox-macros v0.3.8
Compiling salsa20 v0.10.2
Compiling fxhash v0.2.1
Compiling strsim v0.11.1
Compiling similar v2.5.0
Compiling unicode-width v0.1.11
Compiling unit-prefix v0.5.1
Compiling clap_lex v0.7.5
Compiling streaming-iterator v0.1.9
Compiling normalize-line-endings v0.3.0
Compiling siphasher v0.3.11
Compiling bloomy v1.2.0
Compiling snapbox v0.4.17
Compiling clap_builder v4.5.44
Compiling indicatif v0.18.0
Compiling inquire v0.7.5
Compiling scrypt v0.11.0
Compiling crossterm v0.29.0
Compiling unicode-display-width v0.3.0
Compiling systemd-journal-logger v2.2.2
Compiling serde_spanned v1.0.0
Compiling toml_datetime v0.7.0
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-python v0.23.4
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-go v0.23.4
Compiling toml_writer v1.0.2
Compiling pin-project-lite v0.2.16
Compiling tokio v1.47.1
Compiling toml v0.9.5
Compiling clap v4.5.44
Compiling os_info v3.12.0
Compiling diff v0.1.13
Compiling yansi v0.5.1
Compiling radicle-cli v0.17.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli)
Compiling radicle-node v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-node)
Compiling pretty_assertions v1.4.0
Compiling human-panic v2.0.3
Compiling clap_complete v4.5.60
Compiling structured-logger v1.0.4
Compiling anyhow v1.0.82
Compiling radicle-systemd v0.11.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-systemd)
Compiling tree-sitter-highlight v0.24.4
Compiling itertools v0.14.0
Compiling num-integer v0.1.46
Compiling socket2 v0.5.7
Compiling lexopt v0.3.0
Compiling timeago v0.4.2
Compiling bit-vec v0.8.0
Compiling escargot v0.5.10
Compiling bit-set v0.8.0
Compiling num-bigint v0.4.6
Compiling rand_core v0.9.3
Compiling num-iter v0.1.45
Compiling num-complex v0.4.6
Compiling env_filter v0.1.3
Compiling num-rational v0.4.2
Compiling borrow-or-share v0.2.2
Compiling zerocopy v0.7.35
Compiling ahash v0.8.11
Compiling num v0.4.3
Compiling fluent-uri v0.3.2
Compiling env_logger v0.11.8
Compiling phf_shared v0.11.3
Compiling wait-timeout v0.2.1
Compiling fnv v1.0.7
Compiling vsimd v0.8.0
Compiling ppv-lite86 v0.2.17
Compiling radicle-remote-helper v0.14.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-remote-helper)
Compiling quick-error v1.2.3
Compiling outref v0.5.2
Compiling rusty-fork v0.3.1
Compiling rand_chacha v0.9.0
Compiling uuid-simd v0.8.0
Compiling test-log v0.2.18
Compiling referencing v0.30.0
Compiling phf v0.11.3
Compiling fraction v0.15.3
Compiling rand_xorshift v0.4.0
Compiling rand v0.9.2
Compiling fancy-regex v0.14.0
Compiling email_address v0.2.9
Compiling base64 v0.22.1
Compiling bytecount v0.6.8
Compiling num-cmp v0.1.0
Compiling unarray v0.1.4
Compiling proptest v1.9.0
Compiling jsonschema v0.30.0
Compiling emojis v0.6.4
Compiling git2 v0.19.0
Compiling radicle-oid v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-oid)
Compiling radicle-term v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-term)
Compiling radicle-cob v0.17.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cob)
Compiling radicle-core v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-core)
Compiling radicle v0.20.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle)
Compiling radicle-fetch v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-fetch)
Compiling radicle-protocol v0.4.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-protocol)
Compiling radicle-cli-test v0.13.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli-test)
Compiling radicle-schemars v0.6.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.70s
+ cargo doc --workspace --no-deps --all-features
Checking regex-automata v0.4.9
Compiling syn v1.0.109
Checking idna v1.0.3
Compiling num-traits v0.2.19
Checking radicle-ssh v0.10.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-ssh)
Checking url v2.5.4
Checking git2 v0.19.0
Checking proptest v1.9.0
Checking bstr v1.12.0
Compiling amplify_syn v2.0.1
Checking gix-validate v0.10.0
Checking gix-path v0.10.20
Checking gix-features v0.43.1
Checking git-ref-format-core v0.6.0
Compiling data-encoding-macro-internal v0.1.12
Checking gix-hash v0.19.0
Compiling amplify_derive v4.0.0
Checking radicle-git-ref-format v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-git-ref-format)
Checking gix-date v0.10.5
Checking radicle-oid v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-oid)
Checking data-encoding-macro v0.1.14
Checking gix-actor v0.35.4
Checking multibase v0.9.1
Checking gix-hashtable v0.9.0
Checking radicle-dag v0.10.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-dag)
Checking gix-object v0.50.2
Checking radicle-git-metadata v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-git-metadata)
Checking chrono v0.4.38
Checking gix-commitgraph v0.29.0
Checking radicle-localtime v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-localtime)
Checking gix-fs v0.16.1
Checking gix-tempfile v18.0.0
Checking gix-revwalk v0.21.0
Checking gix-quote v0.6.0
Checking gix-lock v18.0.0
Checking gix-command v0.6.2
Checking gix-url v0.32.0
Checking gix-config-value v0.15.1
Checking radicle-signals v0.11.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-signals)
Checking gix-traverse v0.47.0
Checking gix-revision v0.35.0
Checking gix-prompt v0.11.1
Checking amplify v4.6.0
Checking gix-diff v0.53.0
Checking gix-packetline v0.19.1
Checking regex v1.11.1
Checking gix-pack v0.60.0
Checking gix-transport v0.48.0
Checking cyphergraphy v0.3.0
Checking tree-sitter v0.24.4
Checking cypheraddr v0.4.0
Checking noise-framework v0.4.0
Checking gix-refspec v0.31.0
Checking socks5-client v0.4.1
Checking gix-credentials v0.30.0
Checking cyphernet v0.5.2
Checking radicle-crypto v0.14.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-crypto)
Checking gix-shallow v0.5.0
Checking gix-ref v0.53.1
Checking gix-negotiate v0.21.0
Checking uuid v1.16.0
Checking radicle-cob v0.17.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cob)
Checking radicle-core v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-core)
Checking gix-odb v0.70.0
Compiling radicle-cli v0.17.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli)
Checking human-panic v2.0.3
Checking gix-protocol v0.51.0
Checking tree-sitter-toml-ng v0.6.0
Checking radicle-term v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-term)
Checking radicle v0.20.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle)
Checking tree-sitter-highlight v0.24.4
Checking radicle-systemd v0.11.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-systemd)
Documenting radicle-systemd v0.11.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-systemd)
Documenting radicle v0.20.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle)
Documenting radicle-core v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-core)
Documenting radicle-cob v0.17.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cob)
Documenting radicle-term v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-term)
Documenting radicle-crypto v0.14.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-crypto)
Documenting radicle-signals v0.11.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-signals)
Documenting radicle-oid v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-oid)
Documenting radicle-git-ref-format v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-git-ref-format)
Documenting radicle-localtime v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-localtime)
Documenting radicle-ssh v0.10.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-ssh)
Documenting radicle-dag v0.10.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-dag)
Documenting radicle-git-metadata v0.1.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-git-metadata)
Checking radicle-fetch v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-fetch)
Documenting radicle-cli v0.17.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli)
Documenting radicle-cli-test v0.13.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli-test)
Checking radicle-protocol v0.4.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-protocol)
Documenting radicle-protocol v0.4.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-protocol)
Documenting radicle-node v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-node)
Documenting radicle-fetch v0.16.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-fetch)
Documenting radicle-schemars v0.6.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-schemars)
Documenting radicle-remote-helper v0.14.0 (/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-remote-helper)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.64s
Generated /0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/doc/radicle/index.html and 20 other files
+ cargo test --workspace --no-fail-fast
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.13s
Running unittests src/lib.rs (target/debug/deps/radicle-17353fb59e43dcb4)
running 236 tests
test canonical::formatter::test::ascii_control_characters ... ok
test canonical::formatter::test::securesystemslib_asserts ... ok
test canonical::formatter::test::ordered_nested_object ... ok
test cob::cache::migrations::_2::tests::test_patch_json_deserialization ... ok
test cob::common::test::test_color ... ok
test cob::cache::tests::test_check_version ... ok
test cob::common::test::test_title ... ok
test cob::common::test::test_emojis ... ok
test cob::cache::tests::test_migrate_to ... ok
test cob::cache::migrations::_2::tests::test_migration_2 ... ok
test cob::identity::test::prop_json_eq_str ... ok
test cob::identity::test::test_identity_redact_revision ... ok
test cob::identity::test::test_identity_reject_concurrent ... ok
test cob::identity::test::test_identity_remove_delegate_concurrent ... ok
test cob::identity::test::test_identity_update_rejected ... ok
test cob::identity::test::test_identity_updates ... ok
test cob::issue::cache::tests::test_counts ... ok
test cob::issue::cache::tests::test_get ... ok
test cob::issue::cache::tests::test_is_empty ... ok
test cob::issue::cache::tests::test_list ... ok
test cob::issue::cache::tests::test_list_by_status ... ok
test cob::issue::cache::tests::test_remove ... ok
test cob::identity::test::test_valid_identity ... ok
test cob::identity::test::test_identity_updates_concurrent ... ok
test cob::issue::test::test_embeds ... ok
test cob::issue::test::test_embeds_edit ... ok
test cob::identity::test::test_identity_updates_concurrent_outdated ... ok
test cob::issue::test::test_invalid_actions ... ok
test cob::issue::test::test_invalid_tx ... ok
test cob::issue::test::test_invalid_tx_reference ... ok
test cob::issue::test::test_invalid_cob ... ok
test cob::issue::test::test_concurrency ... ok
test cob::issue::test::test_issue_all ... ok
test cob::issue::test::test_issue_comment ... ok
test cob::issue::test::test_issue_create_and_assign ... ok
test cob::issue::test::test_issue_comment_redact ... ok
test cob::issue::test::test_issue_create_and_get ... ok
test cob::issue::test::test_issue_create_and_change_state ... ok
test cob::issue::test::test_issue_create_and_unassign ... ok
test cob::issue::test::test_issue_create_and_reassign ... ok
test cob::issue::test::test_issue_edit ... ok
test cob::issue::test::test_issue_edit_description ... ok
test cob::issue::test::test_issue_label ... ok
test cob::issue::test::test_issue_state_serde ... ok
test cob::issue::test::test_ordering ... ok
test cob::patch::actions::test::test_review_edit ... ok
test cob::issue::test::test_issue_multilines ... ok
test cob::issue::test::test_issue_react ... ok
test cob::patch::cache::tests::test_get ... ok
test cob::patch::cache::tests::test_is_empty ... ok
test cob::issue::test::test_issue_reply ... ok
test cob::patch::cache::tests::test_list ... ok
test cob::patch::cache::tests::test_list_by_status ... ok
test cob::patch::encoding::review::test::test_review_deserialize_summary_migration_null_summary ... ok
test cob::patch::encoding::review::test::test_review_deserialize_summary_migration_with_summary ... ok
test cob::patch::encoding::review::test::test_review_deserialize_summary_migration_without_summary ... ok
test cob::patch::encoding::review::test::test_review_deserialize_summary_v2 ... ok
test cob::patch::encoding::review::test::test_review_summary ... ok
test cob::patch::test::test_json ... ok
test cob::patch::test::test_json_serialization ... ok
test cob::patch::test::test_patch_create_and_get ... ok
test cob::patch::cache::tests::test_remove ... ok
test cob::patch::test::test_patch_discussion ... ok
test cob::patch::test::test_patch_merge ... ok
test cob::patch::cache::tests::test_counts ... ok
test cob::patch::test::test_patch_redact ... ok
test cob::patch::test::test_patch_review ... ok
test cob::patch::test::test_patch_review_comment ... ok
test cob::patch::test::test_patch_review_duplicate ... ok
test cob::patch::test::test_patch_review_edit ... ok
test cob::patch::test::test_patch_review_remove_summary ... ok
test cob::patch::test::test_patch_review_edit_comment ... ok
test cob::patch::test::test_reactions_json_serialization ... ok
test cob::patch::test::test_revision_edit_redact ... ok
test cob::patch::test::test_revision_reaction ... ok
test cob::patch::test::test_revision_review_merge_redacted ... ok
test cob::stream::tests::test_all_from ... ok
test cob::patch::test::test_patch_review_revision_redact ... ok
test cob::stream::tests::test_all_from_until ... ok
test cob::stream::tests::test_from_until ... ok
test cob::stream::tests::test_regression_from_until ... ok
test cob::stream::tests::test_all_until ... ok
test cob::thread::tests::test_comment_edit_missing ... ok
test cob::thread::tests::test_comment_edit_redacted ... ok
test cob::thread::tests::test_comment_redact_missing ... ok
test cob::thread::tests::test_duplicate_comments ... ok
test cob::thread::tests::test_edit_comment ... ok
test cob::thread::tests::test_redact_comment ... ok
test cob::thread::tests::test_timeline ... ok
test git::canonical::quorum::test::merge_base_commutative ... ok
test git::canonical::quorum::test::test_merge_bases ... ok
test cob::patch::test::test_patch_update ... ok
test git::canonical::rules::tests::test_deserialization ... ok
test git::canonical::rules::tests::test_deserialize_extensions ... ok
test git::canonical::rules::tests::test_order ... ok
test git::canonical::rules::tests::test_roundtrip ... ok
test git::canonical::rules::tests::test_canonical ... ok
test git::canonical::rules::tests::test_rule_validate_success ... ok
test git::canonical::rules::tests::test_special_branches ... ok
test git::canonical::tests::test_commit_quorum_fork_of_a_fork ... ok
test git::canonical::tests::test_commit_quorum_forked_merge_commits ... ok
test git::canonical::tests::test_commit_quorum_groups ... ok
test git::canonical::tests::test_commit_quorum_linear ... ok
test git::canonical::tests::test_commit_quorum_merges ... ok
test git::canonical::tests::test_commit_quorum_single ... ok
test git::canonical::tests::test_commit_quorum_three_way_fork ... ok
test git::canonical::tests::test_commit_quorum_two_way_fork ... ok
test cob::patch::cache::tests::test_find_by_revision ... ok
test git::canonical::tests::test_quorum_different_types ... ok
test git::canonical::tests::test_tag_quorum ... ok
test git::test::test_version_from_str ... ok
test git::test::test_version_ord ... ok
test identity::did::test::test_did_encode_decode ... ok
test identity::did::test::test_did_vectors ... ok
test git::canonical::rules::tests::test_rule_validate_failures ... ok
test identity::doc::test::test_canonical_doc ... ok
test identity::doc::test::test_canonical_example ... ok
test identity::doc::test::test_duplicate_dids ... ok
test identity::doc::test::test_future_version_error ... ok
test identity::doc::test::test_is_valid_version ... ok
test identity::doc::test::test_max_delegates ... ok
test identity::doc::test::test_not_found ... ok
test identity::doc::test::test_parse_version ... ok
test identity::doc::test::test_visibility_json ... ok
test identity::doc::update::test::test_can_update_crefs ... ok
test identity::doc::update::test::test_cannot_include_default_branch_rule ... ok
test identity::doc::update::test::test_default_branch_rule_exists_after_verification ... ok
test identity::project::test::test_project_name ... ok
test node::address::store::test::test_alias ... ok
test node::address::store::test::test_disconnected ... ok
test node::address::store::test::test_disconnected_ban ... ok
test node::address::store::test::test_empty ... ok
test node::address::store::test::test_entries ... ok
test node::address::store::test::test_get_none ... ok
test node::address::store::test::test_insert_and_get ... ok
test node::address::store::test::test_insert_and_remove ... ok
test node::address::store::test::test_insert_and_update ... ok
test node::address::store::test::test_insert_duplicate ... ok
test node::address::store::test::test_node_aliases ... ok
test node::address::store::test::test_remove_nothing ... ok
test node::command::test::command_result ... ok
test node::config::test::partial ... ok
test node::db::test::test_version ... ok
test node::features::test::test_operations ... ok
test node::notifications::store::test::test_branch_notifications ... ok
test node::notifications::store::test::test_clear ... ok
test node::notifications::store::test::test_cob_notifications ... ok
test node::notifications::store::test::test_counts_by_repo ... ok
test node::notifications::store::test::test_duplicate_notifications ... ok
test node::notifications::store::test::test_notification_status ... ok
test node::policy::store::test::test_follow_and_unfollow_node ... ok
test node::policy::store::test::test_node_aliases ... ok
test node::policy::store::test::test_node_policies ... ok
test node::policy::store::test::test_node_policy ... ok
test node::policy::store::test::test_repo_policies ... ok
test node::policy::store::test::test_repo_policy ... ok
test node::policy::store::test::test_seed_and_unseed_repo ... ok
test node::policy::store::test::test_update_alias ... ok
test node::policy::store::test::test_update_scope ... ok
test node::refs::store::test::test_count ... ok
test node::refs::store::test::test_set_and_delete ... ok
test node::refs::store::test::test_set_and_get ... ok
test node::routing::test::test_count ... ok
test node::routing::test::test_entries ... ok
test node::routing::test::test_insert_and_get ... ok
test node::routing::test::test_insert_and_get_resources ... ok
test git::canonical::tests::test_quorum_properties ... ok
test node::routing::test::test_insert_and_remove ... ok
test node::routing::test::test_insert_duplicate ... ok
test node::routing::test::test_insert_existing_updated_time ... ok
test node::routing::test::test_len ... ok
test node::routing::test::test_remove_many ... ok
test node::routing::test::test_prune ... ok
test node::routing::test::test_update_existing_multi ... ok
test node::routing::test::test_remove_redundant ... ok
test node::sync::announce::test::announcer_adapts_target_to_reach ... ok
test node::sync::announce::test::all_synced_nodes_are_preferred_seeds ... ok
test node::sync::announce::test::announcer_preferred_seeds_or_replica_factor ... ok
test node::sync::announce::test::announcer_reached_max_replication_target ... ok
test node::sync::announce::test::announcer_reached_min_replication_target ... ok
test node::sync::announce::test::announcer_reached_preferred_seeds ... ok
test node::sync::announce::test::announcer_synced_with_unknown_node ... ok
test node::sync::announce::test::announcer_with_replication_factor_zero_and_preferred_seeds ... ok
test node::sync::announce::test::announcer_timed_out ... ok
test node::sync::announce::test::construct_node_appears_in_multiple_input_sets ... ok
test node::sync::announce::test::construct_only_preferred_seeds_provided ... ok
test node::sync::announce::test::cannot_construct_announcer ... ok
test node::sync::announce::test::invariant_progress_should_match_state ... ok
test node::sync::announce::test::local_node_in_multiple_sets ... ok
test node::sync::announce::test::local_node_in_preferred_seeds ... ok
test node::sync::announce::test::local_node_in_synced_set ... ok
test node::sync::announce::test::local_node_only_in_all_sets_results_in_no_seeds_error ... ok
test node::sync::announce::test::local_node_in_unsynced_set ... ok
test node::sync::announce::test::preferred_seeds_already_synced ... ok
test node::sync::announce::test::synced_with_local_node_is_ignored ... ok
test node::sync::announce::test::synced_with_same_node_multiple_times ... ok
test node::sync::announce::test::timed_out_after_reaching_success ... ok
test cob::thread::tests::prop_ordering ... ok
test node::sync::fetch::test::could_not_reach_target ... ok
test node::sync::fetch::test::all_nodes_are_fetchable ... ok
test node::sync::fetch::test::all_nodes_are_candidates ... ok
test node::sync::fetch::test::ignores_duplicates_and_local_node ... ok
test node::sync::fetch::test::reaches_target_of_max_replicas ... ok
test node::sync::fetch::test::preferred_seeds_target_returned_over_replicas ... ok
test node::sync::test::ensure_replicas_construction ... ok
test node::sync::test::replicas_constrain_to ... ok
test node::test::test_alias ... ok
test node::test::test_command_result ... ok
test node::test::test_user_agent ... ok
test node::timestamp::tests::test_timestamp_max ... ok
test node::sync::fetch::test::reaches_target_of_replicas ... ok
test node::sync::fetch::test::reaches_target_of_preferred_seeds ... ok
test profile::test::test_config ... ok
test profile::test::canonicalize_home ... ok
test rad::tests::test_checkout ... ok
test rad::tests::test_fork ... ok
test rad::tests::test_init ... ok
test storage::git::tests::test_references_of ... ok
test storage::git::tests::test_sign_refs ... ok
test storage::git::transport::local::url::test::test_url_parse ... ok
test storage::git::transport::local::url::test::test_url_to_string ... ok
test storage::git::transport::remote::url::test::test_url_parse ... ok
test storage::refs::tests::prop_canonical_roundtrip ... ok
test profile::config::test::schema ... ok
test storage::tests::test_storage ... ok
test test::assert::test::assert_with_message ... ok
test test::assert::test::test_assert_no_move ... ok
test test::assert::test::test_assert_panic_0 - should panic ... ok
test test::assert::test::test_assert_panic_1 - should panic ... ok
test test::assert::test::test_assert_panic_2 - should panic ... ok
test test::assert::test::test_assert_succeed ... ok
test test::assert::test::test_panic_message ... ok
test version::test::test_version ... ok
test storage::git::tests::test_remote_refs ... ok
test storage::refs::tests::test_rid_verification ... ok
test identity::doc::test::prop_encode_decode ... ok
test result: ok. 236 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.19s
Running unittests src/lib.rs (target/debug/deps/radicle_cli-44e05344d2797ed0)
running 38 tests
test commands::block::args::test::should_not_parse ... ok
test commands::block::args::test::should_parse_nid ... ok
test commands::block::args::test::should_parse_rid ... ok
test commands::clone::args::test::should_parse_rid_non_urn ... ok
test commands::clone::args::test::should_parse_rid_urn ... ok
test commands::clone::args::test::should_parse_rid_url ... ok
test commands::cob::args::test::should_allow_log_pretty_format ... ok
test commands::cob::args::test::should_allow_show_json_format ... ok
test commands::cob::args::test::should_allow_update_json_format ... ok
test commands::fork::args::test::should_not_parse_rid_url ... ok
test commands::cob::args::test::should_allow_log_json_format ... ok
test commands::fork::args::test::should_parse_rid_non_urn ... ok
test commands::cob::args::test::should_not_allow_show_pretty_format ... ok
test commands::fork::args::test::should_parse_rid_urn ... ok
test commands::id::args::test::should_not_parse_into_payload - should panic ... ok
test commands::cob::args::test::should_not_allow_update_pretty_format ... ok
test commands::id::args::test::should_not_clobber_payload_args ... ok
test commands::id::args::test::should_not_parse_single_payload ... ok
test commands::id::args::test::should_parse_into_payload ... ok
test commands::id::args::test::should_not_parse_single_payloads ... ok
test commands::id::args::test::should_parse_single_payload ... ok
test commands::init::args::test::should_not_parse_rid_url ... ok
test commands::id::args::test::should_parse_multiple_payloads ... ok
test commands::init::args::test::should_parse_rid_non_urn ... ok
test commands::inspect::test::test_tree ... ok
test commands::init::args::test::should_parse_rid_urn ... ok
test commands::publish::args::test::should_parse_rid_urn ... ok
test commands::publish::args::test::should_parse_rid_non_urn ... ok
test commands::publish::args::test::should_not_parse_rid_url ... ok
test terminal::args::test::should_parse_nid ... ok
test terminal::args::test::should_not_parse ... ok
test terminal::args::test::should_parse_rid ... ok
test commands::watch::args::test::should_parse_ref_str ... ok
test terminal::format::test::test_bytes ... ok
test terminal::format::test::test_strip_comments ... ok
test terminal::patch::test::test_edit_display_message ... ok
test terminal::patch::test::test_create_display_message ... ok
test terminal::patch::test::test_update_display_message ... ok
test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
Running unittests src/main.rs (target/debug/deps/rad-96f0c88a9b3761c6)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running tests/commands.rs (target/debug/deps/commands-41f405c6d3387285)
running 110 tests
test framework_home ... ok
test git_push_canonical_annotated_tags ... FAILED
test git_push_canonical_lightweight_tags ... FAILED
test git_push_and_fetch ... ok
test git_push_amend ... ok
test git_push_force_with_lease ... ok
test git_push_diverge ... ok
test git_push_rollback ... ok
test rad_auth_errors ... ok
test rad_auth ... ok
test rad_block ... ok
test git_tag ... ok
test rad_checkout ... ok
test rad_clone ... ok
test git_push_converge ... ok
test rad_clean ... ok
test rad_clone_bare ... ok
test rad_clone_connect ... ok
test rad_clone_unknown ... ok
test rad_clone_all ... ok
test rad_clone_directory ... ok
test rad_cob_multiset ... ok
test rad_cob_log ... ok
test rad_cob_migrate ... ok
test rad_clone_partial_fail ... ok
test rad_cob_operations ... ok
test rad_cob_show ... ok
test rad_cob_update ... ok
test rad_cob_update_identity ... ok
test rad_config ... ok
test rad_diff ... ok
test rad_help ... ok
test rad_id_collaboration ... ignored, slow
test rad_id ... FAILED
test rad_id_conflict ... FAILED
test rad_id_private ... ok
test rad_id_threshold ... FAILED
test rad_id_multi_delegate ... FAILED
test rad_id_threshold_soft_fork ... ok
test rad_id_unknown_field ... FAILED
test rad_id_update_delete_field ... FAILED
test rad_init ... ignored, part of many other tests
test rad_init_bare ... ok
test rad_init_detached_head ... ok
test rad_init_existing ... ok
test rad_init_existing_bare ... ok
test rad_init_no_git ... ok
test rad_init_no_seed ... ok
test rad_init_private ... ok
test rad_inbox ... ok
test rad_init_private_clone ... ok
test rad_init_private_no_seed ... ok
test rad_init_private_clone_seed ... ok
test rad_init_private_seed ... ok
test rad_fork ... ok
test rad_fetch ... ok
test rad_init_sync_not_connected ... ok
test rad_init_sync_preferred ... ok
test rad_init_with_existing_remote ... ok
test rad_inspect ... ok
test rad_issue ... ok
test rad_jj_bare ... ok
test rad_jj_colocated_patch ... ok
test rad_issue_list ... ok
test rad_key_mismatch ... ok
test rad_merge_no_ff ... ok
test rad_merge_after_update ... ok
test rad_merge_via_push ... ok
test rad_node_connect ... ok
test rad_node_connect_without_address ... ok
test rad_patch ... ok
test rad_node ... ok
test rad_patch_ahead_behind ... ok
test rad_patch_change_base ... ok
test rad_patch_checkout ... ok
test rad_patch_checkout_revision ... ok
test rad_patch_checkout_force ... ok
test rad_patch_detached_head ... ok
test rad_patch_diff ... ok
test rad_init_sync_and_clone ... ok
test rad_init_sync_timeout ... ok
test rad_patch_draft ... ok
test rad_patch_edit ... ok
test rad_patch_fetch_2 ... FAILED
test rad_patch_merge_draft ... ok
test rad_patch_fetch_1 ... ok
test rad_patch_delete ... ok
test rad_patch_revert_merge ... ok
test rad_patch_update ... ok
test rad_patch_via_push ... FAILED
test rad_patch_open_explore ... ok
test rad_publish ... FAILED
test rad_review_by_hunk ... FAILED
test rad_seed_and_follow ... ok
test rad_seed_many ... ok
test rad_remote ... ok
test rad_self ... ok
test rad_sync_without_node ... ok
test rad_push_and_pull_patches ... ok
test rad_unseed ... ok
test rad_warn_old_nodes ... ok
test rad_unseed_many ... ok
test rad_watch ... ok
test rad_sync ... ok
test test_clone_without_seeds ... ok
test test_cob_deletion ... ok
test test_cob_replication ... ok
test rad_workflow ... ok
test rad_patch_pull_update ... ok
test test_replication_via_seed ... ok
failures:
---- git_push_canonical_annotated_tags stdout ----
1767973395 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpBtegen/alice/work"]
1767973395 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpBtegen/alice/work`..
1767973396 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpBtegen/alice/work`..
1767973396 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpBtegen/alice/work`..
1767973396 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpBtegen/alice/work`..
1767973396 git_push_canonical_annotated_tags node: Opening policy database..
1767973396 git_push_canonical_annotated_tags node: Default seeding policy set to 'block (all)'
1767973396 git_push_canonical_annotated_tags node: Initializing service (Test)..
1767973396 git_push_canonical_annotated_tags node: Opening node database..
1767973396 git_push_canonical_annotated_tags node: Address book is empty. Adding bootstrap nodes..
1767973396 git_push_canonical_annotated_tags node: 0 nodes added to address book
1767973396 git_push_canonical_annotated_tags service: Init @1767973396000
1767973396 git_push_canonical_annotated_tags service: Empty refs database, populating from storage..
1767973396 git_push_canonical_annotated_tags service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973396 git_push_canonical_annotated_tags service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1767973396 git_push_canonical_annotated_tags service: Not enough available peers to connect to (available=0, wanted=8)
1767973396 git_push_canonical_annotated_tags reactor-controller: Initializing reactor thread...
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:46689..
1767973396 git_push_canonical_annotated_tags node: Binding control socket /tmp/.tmpBtegen/alice/.radicle/node/control.sock..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpBtegen/alice/.radicle..
1767973396 git_push_canonical_annotated_tags node: Opening policy database..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973396 git_push_canonical_annotated_tags node: Default seeding policy set to 'block (all)'
1767973396 git_push_canonical_annotated_tags node: Initializing service (Test)..
1767973396 git_push_canonical_annotated_tags node: Opening node database..
1767973396 git_push_canonical_annotated_tags node: Address book is empty. Adding bootstrap nodes..
1767973396 git_push_canonical_annotated_tags node: 0 nodes added to address book
1767973396 git_push_canonical_annotated_tags service: Init @1767973396000
1767973396 git_push_canonical_annotated_tags service: Empty refs database, populating from storage..
1767973396 git_push_canonical_annotated_tags service: Not enough available peers to connect to (available=0, wanted=8)
1767973396 git_push_canonical_annotated_tags reactor-controller: Initializing reactor thread...
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:38263..
1767973396 git_push_canonical_annotated_tags node: Binding control socket /tmp/.tmpBtegen/bob/.radicle/node/control.sock..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmpBtegen/bob/.radicle..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Connect(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, 0.0.0.0:46689, ConnectOptions { persistent: false, timeout: 30s })
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connecting to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:46689)..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Attempted connection to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:46689)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Registering outbound transport for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Outbound peer resource registered for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound connection from 127.0.0.1:57384..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Accepted inbound connection from 127.0.0.1:57384..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound peer resource registered
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:46689) (Outbound)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1767886996253..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (127.0.0.1:57384) (Inbound)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1767886996253..
1767973396 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1767973396 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973396000)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973396000)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973396000)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973396000)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1767973396000
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973396001)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1767973396000
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973396002)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973396001)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973396002)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1767973396 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpBtegen/bob/work..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [outbound connected] (all remotes)..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 12..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (5ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (16ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (21ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (21ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (22ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (28ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (26ms)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 12 exited with result Ok(())
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), oid: 99c549702e2bcfe02b0e68d4a2224fb7a1524529 }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: true, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973396506)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973396507)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973396506)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973396506)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973396507)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973396507)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1767973396507)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973396 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1767973396 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1767973396 test: rad clone: ✓ Target met: 1 seed(s)
1767973396 test: rad clone: ✓ Creating checkout in ./heartwood..
1767973396 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1767973396 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmpBtegen/bob/work/heartwood/
1767973396 test: rad clone: ╭────────────────────────────────────╮
1767973396 test: rad clone: │ heartwood │
1767973396 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1767973396 test: rad clone: │ 0 issues · 0 patches │
1767973396 test: rad clone: ╰────────────────────────────────────╯
1767973396 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1767973396 test: Ran command `rad clone` (status=0)
1767973396 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpBtegen"]
1767973396 test: git-push-canonical-annotated-tags.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Add canonical reference rules", "--payload", "xyz.radicle.crefs", "rules", "{ \"refs/tags/*\": { \"threshold\": 1, \"allow\": \"delegates\" }, \"refs/tags/qa/*\": { \"threshold\": 1, \"allow\": \"delegates\" }}"] in `/tmp/.tmpBtegen/alice/work`..
thread 'git_push_canonical_annotated_tags' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ✓ Identity revision [..] created
2 2 | ╭────────────────────────────────────────────────────────────────────────╮
3 3 | │ Title Add canonical reference rules │
4 4 | │ Revision c3349f07bfe6a82bbeb2989d2de4a918408f9831 │
5 5 | │ Blob 85fa09e2de93b825d5231778dbb34143004a4bca │
⋮
8 8 | │ Quorum yes │
9 9 | ├────────────────────────────────────────────────────────────────────────┤
10 10 | │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
11 11 | ╰────────────────────────────────────────────────────────────────────────╯
12 12 |
13 - @@ -1,13 +1,25 @@
14 - {
15 - "payload": {
16 - + "xyz.radicle.crefs": {
17 - + "rules": {
18 - + "refs/tags/*": {
19 - + "allow": "delegates",
20 - + "threshold": 1
21 - + },
22 - + "refs/tags/qa/*": {
23 - + "allow": "delegates",
24 - + "threshold": 1
25 - + }
26 - + }
27 - + },
28 - "xyz.radicle.project": {
29 - "defaultBranch": "master",
30 - "description": "Radicle Heartwood Protocol & Stack",
31 - "name": "heartwood"
32 - }
33 - },
34 - "delegates": [
35 - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
36 - ],
37 - "threshold": 1
38 - }
Exit status: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
1767973396 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1767973396 git_push_canonical_annotated_tags reactor::controller: Initiating reactor shutdown...
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Inbound, write_intent: false } with token 2
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1767973396 git_push_canonical_annotated_tags reactor::controller: Initiating reactor shutdown...
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- git_push_canonical_lightweight_tags stdout ----
1767973396 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpN1wSgl/alice/work"]
1767973396 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpN1wSgl/alice/work`..
1767973396 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpN1wSgl/alice/work`..
1767973396 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpN1wSgl/alice/work`..
1767973396 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpN1wSgl/alice/work`..
1767973396 git_push_canonical_lightweight_tags node: Opening policy database..
1767973396 git_push_canonical_lightweight_tags node: Default seeding policy set to 'block (all)'
1767973396 git_push_canonical_lightweight_tags node: Initializing service (Test)..
1767973396 git_push_canonical_lightweight_tags node: Opening node database..
1767973396 git_push_canonical_lightweight_tags node: Address book is empty. Adding bootstrap nodes..
1767973396 git_push_canonical_lightweight_tags node: 0 nodes added to address book
1767973396 git_push_canonical_lightweight_tags service: Init @1767973396000
1767973396 git_push_canonical_lightweight_tags service: Empty refs database, populating from storage..
1767973396 git_push_canonical_lightweight_tags service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973396 git_push_canonical_lightweight_tags service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1767973396 git_push_canonical_lightweight_tags service: Not enough available peers to connect to (available=0, wanted=8)
1767973396 git_push_canonical_lightweight_tags reactor-controller: Initializing reactor thread...
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:34749..
1767973396 git_push_canonical_lightweight_tags node: Binding control socket /tmp/.tmpN1wSgl/alice/.radicle/node/control.sock..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpN1wSgl/alice/.radicle..
1767973396 git_push_canonical_lightweight_tags node: Opening policy database..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973396 git_push_canonical_lightweight_tags node: Default seeding policy set to 'block (all)'
1767973396 git_push_canonical_lightweight_tags node: Initializing service (Test)..
1767973396 git_push_canonical_lightweight_tags node: Opening node database..
1767973396 git_push_canonical_lightweight_tags node: Address book is empty. Adding bootstrap nodes..
1767973396 git_push_canonical_lightweight_tags node: 0 nodes added to address book
1767973396 git_push_canonical_lightweight_tags service: Init @1767973396000
1767973396 git_push_canonical_lightweight_tags service: Empty refs database, populating from storage..
1767973396 git_push_canonical_lightweight_tags service: Not enough available peers to connect to (available=0, wanted=8)
1767973396 git_push_canonical_lightweight_tags reactor-controller: Initializing reactor thread...
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:33429..
1767973396 git_push_canonical_lightweight_tags node: Binding control socket /tmp/.tmpN1wSgl/bob/.radicle/node/control.sock..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmpN1wSgl/bob/.radicle..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Connect(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, 0.0.0.0:34749, ConnectOptions { persistent: false, timeout: 30s })
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connecting to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:34749)..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Attempted connection to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:34749)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Registering outbound transport for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Outbound peer resource registered for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound connection from 127.0.0.1:52596..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Accepted inbound connection from 127.0.0.1:52596..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound peer resource registered
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:34749) (Outbound)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1767886996297..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (127.0.0.1:52596) (Inbound)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1767886996297..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973396000)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973396000)
1767973396 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1767973396 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973396000)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973396000)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1767973396000
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973396001)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1767973396000
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973396002)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973396001)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973396002)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1767973396 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpN1wSgl/bob/work..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [outbound connected] (all remotes)..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 12..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (6ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (12ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (16ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (16ms)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (17ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (20ms)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (22ms)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 12 exited with result Ok(())
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), oid: 99c549702e2bcfe02b0e68d4a2224fb7a1524529 }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: true, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973396542)
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973396543)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973396542)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973396542)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973396543)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973396543)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1767973396543)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973396 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1767973396 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1767973396 test: rad clone: ✓ Target met: 1 seed(s)
1767973396 test: rad clone: ✓ Creating checkout in ./heartwood..
1767973396 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1767973396 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973396 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmpN1wSgl/bob/work/heartwood/
1767973396 test: rad clone: ╭────────────────────────────────────╮
1767973396 test: rad clone: │ heartwood │
1767973396 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1767973396 test: rad clone: │ 0 issues · 0 patches │
1767973396 test: rad clone: ╰────────────────────────────────────╯
1767973396 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1767973396 test: Ran command `rad clone` (status=0)
1767973396 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpN1wSgl"]
1767973396 test: git-push-canonical-lightweight-tags.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Add canonical reference rules", "--payload", "xyz.radicle.crefs", "rules", "{ \"refs/tags/*\": { \"threshold\": 1, \"allow\": \"delegates\" }, \"refs/tags/qa/*\": { \"threshold\": 1, \"allow\": \"delegates\" }}"] in `/tmp/.tmpN1wSgl/alice/work`..
thread 'git_push_canonical_lightweight_tags' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ✓ Identity revision [..] created
2 2 | ╭────────────────────────────────────────────────────────────────────────╮
3 3 | │ Title Add canonical reference rules │
4 4 | │ Revision c3349f07bfe6a82bbeb2989d2de4a918408f9831 │
5 5 | │ Blob 85fa09e2de93b825d5231778dbb34143004a4bca │
⋮
8 8 | │ Quorum yes │
9 9 | ├────────────────────────────────────────────────────────────────────────┤
10 10 | │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
11 11 | ╰────────────────────────────────────────────────────────────────────────╯
12 12 |
13 - @@ -1,13 +1,25 @@
14 - {
15 - "payload": {
16 - + "xyz.radicle.crefs": {
17 - + "rules": {
18 - + "refs/tags/*": {
19 - + "allow": "delegates",
20 - + "threshold": 1
21 - + },
22 - + "refs/tags/qa/*": {
23 - + "allow": "delegates",
24 - + "threshold": 1
25 - + }
26 - + }
27 - + },
28 - "xyz.radicle.project": {
29 - "defaultBranch": "master",
30 - "description": "Radicle Heartwood Protocol & Stack",
31 - "name": "heartwood"
32 - }
33 - },
34 - "delegates": [
35 - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
36 - ],
37 - "threshold": 1
38 - }
Exit status: 0
1767973396 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1767973396 git_push_canonical_lightweight_tags reactor::controller: Initiating reactor shutdown...
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Inbound, write_intent: false } with token 2
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1767973396 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973396 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1767973396 git_push_canonical_lightweight_tags reactor::controller: Initiating reactor shutdown...
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1767973396 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id stdout ----
1767973401 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp6eAVQG/alice/work"]
1767973401 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmp6eAVQG/alice/work`..
1767973401 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmp6eAVQG/alice/work`..
1767973401 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmp6eAVQG/alice/work`..
1767973401 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmp6eAVQG/alice/work`..
1767973401 rad_id node: Opening policy database..
1767973401 rad_id node: Default seeding policy set to 'block (all)'
1767973401 rad_id node: Initializing service (Test)..
1767973401 rad_id node: Opening node database..
1767973401 rad_id node: Address book is empty. Adding bootstrap nodes..
1767973401 rad_id node: 0 nodes added to address book
1767973401 rad_id service: Init @1767973401000
1767973401 rad_id service: Empty refs database, populating from storage..
1767973401 rad_id service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973401 rad_id service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1767973401 rad_id service: Not enough available peers to connect to (available=0, wanted=8)
1767973401 rad_id reactor-controller: Initializing reactor thread...
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:41159..
1767973401 rad_id node: Binding control socket /tmp/.tmp6eAVQG/alice/.radicle/node/control.sock..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmp6eAVQG/alice/.radicle..
1767973401 rad_id node: Opening policy database..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973401 rad_id node: Default seeding policy set to 'block (all)'
1767973401 rad_id node: Initializing service (Test)..
1767973401 rad_id node: Opening node database..
1767973401 rad_id node: Address book is empty. Adding bootstrap nodes..
1767973401 rad_id node: 0 nodes added to address book
1767973401 rad_id service: Init @1767973401000
1767973401 rad_id service: Empty refs database, populating from storage..
1767973401 rad_id service: Not enough available peers to connect to (available=0, wanted=8)
1767973401 rad_id reactor-controller: Initializing reactor thread...
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:33091..
1767973401 rad_id node: Binding control socket /tmp/.tmp6eAVQG/bob/.radicle/node/control.sock..
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmp6eAVQG/bob/.radicle..
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, 0.0.0.0:33091, ConnectOptions { persistent: false, timeout: 30s })
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:33091)..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:33091)
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound connection from 127.0.0.1:59248..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Accepted inbound connection from 127.0.0.1:59248..
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound peer resource registered
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:33091) (Outbound)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1767887001961..
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:59248) (Inbound)
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1767887001961..
1767973401 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1767973401 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973401000)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973401000)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973401000)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1767973401000
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973401001)
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973401000)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973401001)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1767973401000
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973401002)
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973401002)
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1767973402 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmp6eAVQG/bob/.radicle..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 13..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (5ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (10ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (13ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (18ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 13 exited with result Ok(())
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (14ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (14ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (20ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 13, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), oid: 99c549702e2bcfe02b0e68d4a2224fb7a1524529 }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: true, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402204)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402205)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402204)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402204)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402205)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402205)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1767973402205)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973402 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1767973402 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1767973402 test: rad clone: ✓ Target met: 1 seed(s)
1767973402 test: rad clone: ✓ Creating checkout in ./heartwood..
1767973402 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1767973402 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmp6eAVQG/bob/.radicle/heartwood/
1767973402 test: rad clone: ╭────────────────────────────────────╮
1767973402 test: rad clone: │ heartwood │
1767973402 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1767973402 test: rad clone: │ 0 issues · 0 patches │
1767973402 test: rad clone: ╰────────────────────────────────────╯
1767973402 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1767973402 test: Ran command `rad clone` (status=0)
1767973402 test: Running `rad fork ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmp6eAVQG/bob/.radicle..
1767973402 test: rad fork: ✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 test: Ran command `rad fork` (status=0)
1767973402 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "1"]` in /tmp/.tmp6eAVQG/bob/.radicle..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"subscribe"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"announceRefsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command AnnounceRefs(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Announcing refs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk @ e9f48ef90fe8592e1b1c95f96c21a59ca1495300 to peers (t=1767973402430)..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402430)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402430)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402430)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [outbound connected] (1 remote(s))..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `open` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 12..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched rad/id (1ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data for 1 remote(s) (6ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data refs for 1 remotes (6ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Sent done signal to remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `end-of-file` on stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload pack finished (12ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload process on stream 12 exited with result Ok(())
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closed with 0 byte(s) sent and 0 byte(s) received
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Validated 1 remote(s) (7ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Applied updates (7ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (13ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs"), oid: e9f48ef90fe8592e1b1c95f96c21a59ca1495300 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk)}, clone: false, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk successfully
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..e9f48ef refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402472)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402472)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973402472)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at e9f48ef90fe8592e1b1c95f96c21a59ca1495300 (t=1767973402472)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to e9f48ef90fe8592e1b1c95f96c21a59ca1495300
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973402 test: rad sync: ✓ Synced with 1 seed(s)
1767973402 test: Ran command `rad sync` (status=0)
1767973402 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "2"]` in /tmp/.tmp6eAVQG/bob/.radicle..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 test: rad sync: ✓ Nothing to announce, already in sync with 1 seed(s) (see `rad sync status`)
1767973402 test: Ran command `rad sync` (status=0)
1767973402 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp6eAVQG/alice/work"]
1767973402 test: rad-id.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Add Bob", "--description", "Add Bob as a delegate", "--delegate", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", "--threshold", "2"] in `/tmp/.tmp6eAVQG/alice/work`..
thread 'rad_id' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ✓ Identity revision 0ca42d376bd566631083c8913cf86bec722da392 created
2 2 | ╭────────────────────────────────────────────────────────────────────────╮
3 3 | │ Title Add Bob │
4 4 | │ Revision 0ca42d376bd566631083c8913cf86bec722da392 │
5 5 | │ Blob 053541ba7b90534b35dd8718e0ceaa408979b02b │
⋮
10 10 | │ Add Bob as a delegate │
11 11 | ├────────────────────────────────────────────────────────────────────────┤
12 12 | │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
13 13 | ╰────────────────────────────────────────────────────────────────────────╯
14 14 |
15 - @@ -1,13 +1,14 @@
16 - {
17 - "payload": {
18 - "xyz.radicle.project": {
19 - "defaultBranch": "master",
20 - "description": "Radicle Heartwood Protocol & Stack",
21 - "name": "heartwood"
22 - }
23 - },
24 - "delegates": [
25 - - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
26 - + "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
27 - + "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
28 - ],
29 - - "threshold": 1
30 - + "threshold": 2
31 - }
Exit status: 0
1767973402 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1767973402 rad_id reactor::controller: Initiating reactor shutdown...
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 2
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=8)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1767973402 rad_id reactor::controller: Initiating reactor shutdown...
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_conflict stdout ----
1767973401 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpsRWdXb/alice/work"]
1767973401 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973401 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973401 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973401 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973401 rad_id_conflict node: Opening policy database..
1767973401 rad_id_conflict node: Default seeding policy set to 'block (all)'
1767973401 rad_id_conflict node: Initializing service (Test)..
1767973401 rad_id_conflict node: Opening node database..
1767973401 rad_id_conflict node: Address book is empty. Adding bootstrap nodes..
1767973401 rad_id_conflict node: 0 nodes added to address book
1767973401 rad_id_conflict service: Init @1767973401000
1767973401 rad_id_conflict service: Empty refs database, populating from storage..
1767973401 rad_id_conflict service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973401 rad_id_conflict service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1767973401 rad_id_conflict service: Not enough available peers to connect to (available=0, wanted=8)
1767973401 rad_id_conflict reactor-controller: Initializing reactor thread...
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:34037..
1767973401 rad_id_conflict node: Binding control socket /tmp/.tmpsRWdXb/alice/.radicle/node/control.sock..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpsRWdXb/alice/.radicle..
1767973401 rad_id_conflict node: Opening policy database..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973401 rad_id_conflict node: Default seeding policy set to 'block (all)'
1767973401 rad_id_conflict node: Initializing service (Test)..
1767973401 rad_id_conflict node: Opening node database..
1767973401 rad_id_conflict node: Address book is empty. Adding bootstrap nodes..
1767973401 rad_id_conflict node: 0 nodes added to address book
1767973401 rad_id_conflict service: Init @1767973401000
1767973401 rad_id_conflict service: Empty refs database, populating from storage..
1767973401 rad_id_conflict service: Not enough available peers to connect to (available=0, wanted=8)
1767973401 rad_id_conflict reactor-controller: Initializing reactor thread...
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:40259..
1767973401 rad_id_conflict node: Binding control socket /tmp/.tmpsRWdXb/bob/.radicle/node/control.sock..
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmpsRWdXb/bob/.radicle..
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973401 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, 0.0.0.0:40259, ConnectOptions { persistent: false, timeout: 30s })
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:40259)..
1767973401 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:40259)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound connection from 127.0.0.1:48098..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Accepted inbound connection from 127.0.0.1:48098..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound peer resource registered
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:40259) (Outbound)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1767887002002..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:48098) (Inbound)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1767887002002..
1767973402 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1767973402 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973401000)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973401000)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973401000)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973401000)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1767973401000
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973401001)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1767973401000
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973401002)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973401001)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973401002)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1767973402 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpsRWdXb/bob/work..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 13..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (5ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (11ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (14ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (15ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (16ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (22ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (22ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 13 exited with result Ok(())
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 13, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), oid: 99c549702e2bcfe02b0e68d4a2224fb7a1524529 }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: true, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402248)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402249)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402248)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402248)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402249)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402249)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1767973402249)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973402 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1767973402 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1767973402 test: rad clone: ✓ Target met: 1 seed(s)
1767973402 test: rad clone: ✓ Creating checkout in ./heartwood..
1767973402 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1767973402 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmpsRWdXb/bob/work/heartwood/
1767973402 test: rad clone: ╭────────────────────────────────────╮
1767973402 test: rad clone: │ heartwood │
1767973402 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1767973402 test: rad clone: │ 0 issues · 0 patches │
1767973402 test: rad clone: ╰────────────────────────────────────╯
1767973402 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1767973402 test: Ran command `rad clone` (status=0)
1767973402 test: Running `rad fork ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpsRWdXb/bob/work..
1767973402 test: rad fork: ✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 test: Ran command `rad fork` (status=0)
1767973402 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "1"]` in /tmp/.tmpsRWdXb/bob/work..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"subscribe"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"announceRefsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command AnnounceRefs(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Announcing refs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk @ e9f48ef90fe8592e1b1c95f96c21a59ca1495300 to peers (t=1767973402472)..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402472)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402472)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402472)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [outbound connected] (1 remote(s))..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `open` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 12..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched rad/id (1ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data for 1 remote(s) (6ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data refs for 1 remotes (7ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `end-of-file` on stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Sent done signal to remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload pack finished (11ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload process on stream 12 exited with result Ok(())
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closed with 0 byte(s) sent and 0 byte(s) received
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Validated 1 remote(s) (7ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Applied updates (8ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (13ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs"), oid: e9f48ef90fe8592e1b1c95f96c21a59ca1495300 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk)}, clone: false, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk successfully
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..e9f48ef refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402507)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402507)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973402507)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at e9f48ef90fe8592e1b1c95f96c21a59ca1495300 (t=1767973402507)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to e9f48ef90fe8592e1b1c95f96c21a59ca1495300
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973402 test: rad sync: ✓ Synced with 1 seed(s)
1767973402 test: Ran command `rad sync` (status=0)
1767973402 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "2"]` in /tmp/.tmpsRWdXb/bob/.radicle..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 test: rad sync: ✓ Nothing to announce, already in sync with 1 seed(s) (see `rad sync status`)
1767973402 test: Ran command `rad sync` (status=0)
1767973402 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpsRWdXb"]
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Add Bob", "--description", "Add Bob as a delegate", "--delegate", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", "--threshold", "2", "-q"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973402 test: rad-id-conflict.md: Running `cd /tmp/.tmpsRWdXb/bob/work/heartwood`..
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["sync", "--fetch", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmpsRWdXb/bob/work/heartwood`..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 21 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 21 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 21..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 21..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched rad/id (5ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched data for 1 remote(s) (12ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched data refs for 1 remotes (12ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 21 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Validated 1 remote(s) (13ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Upload pack finished (19ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Upload process on stream 21 exited with result Ok(())
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 21, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 21 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 21 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 21 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Applied updates (14ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (20ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> storage: Setting ref: refs/rad/id -> 0ca42d376bd566631083c8913cf86bec722da392
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 21, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), old: 0656c217f917c3e06234771e9ecae53aba5e173e, new: 0ca42d376bd566631083c8913cf86bec722da392 }, Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), old: 99c549702e2bcfe02b0e68d4a2224fb7a1524529, new: 49e78ff32b2250126edd573a4eb05fbbf724ca42 }, Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), old: 0656c217f917c3e06234771e9ecae53aba5e173e, new: 0ca42d376bd566631083c8913cf86bec722da392 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0ca42d376bd566631083c8913cf86bec722da392 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: false, doc: DocAt { commit: 0ca42d376bd566631083c8913cf86bec722da392, blob: 053541ba7b90534b35dd8718e0ceaa408979b02b, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [Did("did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk")] }), threshold: Threshold(2), visibility: Public } } }) }
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0656c21..0ca42d3 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 99c5497..49e78ff refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0656c21..0ca42d3 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Command returned error: i/o error: invalid input parameter
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402651)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402651)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402651)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 49e78ff32b2250126edd573a4eb05fbbf724ca42 (t=1767973402651)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 49e78ff32b2250126edd573a4eb05fbbf724ca42
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Edit project name", "--description", "", "--payload", "xyz.radicle.project", "name", "\"heart\"", "-q"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Edit project name", "--description", "", "--payload", "xyz.radicle.project", "name", "\"wood\"", "-q"] in `/tmp/.tmpsRWdXb/bob/work/heartwood`..
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["sync", "--fetch", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"status"}` on control socket
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"]}` on control socket
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"session","nid":"z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"}` on control socket
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk","timeout":{"secs":9,"nanos":0}}` on control socket
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [outbound connected] (all remotes)..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 20 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `open` command for stream 20 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 20..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 20..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched rad/id (1ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched data for 1 remote(s) (8ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched data refs for 1 remotes (12ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Sent done signal to remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `end-of-file` on stream 20 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Validated 1 remote(s) (13ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Applied updates (13ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (20ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Upload pack finished (19ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Upload process on stream 20 exited with result Ok(())
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 20, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 20 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 20 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 20 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closed with 0 byte(s) sent and 0 byte(s) received
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> storage: Setting ref: refs/rad/id -> 0ca42d376bd566631083c8913cf86bec722da392
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 20, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Updated { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs"), old: e9f48ef90fe8592e1b1c95f96c21a59ca1495300, new: 1a7b0915028c7400d1f65b7d2fddba04de487a44 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 89b2623e7f2ddf5748661b15b9975ab0b4ee17ab }, Skipped { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {} }, namespaces: {PublicKey(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk)}, clone: false, doc: DocAt { commit: 0ca42d376bd566631083c8913cf86bec722da392, blob: 053541ba7b90534b35dd8718e0ceaa408979b02b, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [Did("did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk")] }), threshold: Threshold(2), visibility: Public } } }) }
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Found existing fetch request from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, sending result..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk successfully
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: ~ e9f48ef..1a7b091 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..89b2623 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402809)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402809)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973402809)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 1a7b0915028c7400d1f65b7d2fddba04de487a44 (t=1767973402809)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 1a7b0915028c7400d1f65b7d2fddba04de487a44
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "list"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "accept", "89b2623", "-q"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "list"] in `/tmp/.tmpsRWdXb/alice/work`..
1767973402 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["sync", "--fetch", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmpsRWdXb/bob/work/heartwood`..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 29 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 29 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 29..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 29..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Fetched rad/id (1ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Fetched data for 1 remote(s) (9ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Fetched data refs for 1 remotes (10ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 29 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Upload pack finished (16ms)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Upload process on stream 29 exited with result Ok(())
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 29, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 29 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 29 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 29 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Validated 1 remote(s) (11ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Applied updates (11ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (18ms)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> storage: Setting ref: refs/rad/id -> 89b2623e7f2ddf5748661b15b9975ab0b4ee17ab
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 29, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), old: 0ca42d376bd566631083c8913cf86bec722da392, new: 98b52d63fdde4c16a1304cc22a991634653298ea }, Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), old: 49e78ff32b2250126edd573a4eb05fbbf724ca42, new: 69fd122ccea06a6c1eaa66c96527341827a864e9 }, Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), old: 0ca42d376bd566631083c8913cf86bec722da392, new: 98b52d63fdde4c16a1304cc22a991634653298ea }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 98b52d63fdde4c16a1304cc22a991634653298ea }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: false, doc: DocAt { commit: 89b2623e7f2ddf5748661b15b9975ab0b4ee17ab, blob: 71e0b2caab71e8bfd24f806adef02e443ac72a19, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("wood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [Did("did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk")] }), threshold: Threshold(2), visibility: Public } } }) }
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0ca42d3..98b52d6 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 49e78ff..69fd122 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0ca42d3..98b52d6 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402971)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402971)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402971)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 69fd122ccea06a6c1eaa66c96527341827a864e9 (t=1767973402971)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 69fd122ccea06a6c1eaa66c96527341827a864e9
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973403 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "accept", "12d7300", "-q"] in `/tmp/.tmpsRWdXb/bob/work/heartwood`..
1767973403 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "reject", "12d7300", "-q"] in `/tmp/.tmpsRWdXb/bob/work/heartwood`..
1767973403 test: rad-id-conflict.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "show", "12d7300"] in `/tmp/.tmpsRWdXb/bob/work/heartwood`..
thread 'rad_id_conflict' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ╭────────────────────────────────────────────────────────────────────────╮
2 2 | │ Title Edit project name │
3 3 | │ Revision 12d7300d1bbba84e4e5760c8c61999bf5fefb81a │
4 4 | │ Blob e93aa3e3c5c448bacd3537a81daf1437eccd046a │
5 5 | │ Author did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi │
⋮
8 8 | ├────────────────────────────────────────────────────────────────────────┤
9 9 | │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice │
10 10 | │ ? did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob (you) │
11 11 | ╰────────────────────────────────────────────────────────────────────────╯
12 12 |
13 - @@ -1,14 +1,14 @@
14 - {
15 - "payload": {
16 - "xyz.radicle.project": {
17 - "defaultBranch": "master",
18 - "description": "Radicle Heartwood Protocol & Stack",
19 - - "name": "heartwood"
20 - + "name": "heart"
21 - }
22 - },
23 - "delegates": [
24 - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
25 - "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
26 - ],
27 - "threshold": 2
28 - }
Exit status: 0
1767973403 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1767973403 rad_id_conflict reactor::controller: Initiating reactor shutdown...
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 2
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=8)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1767973403 rad_id_conflict reactor::controller: Initiating reactor shutdown...
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_threshold stdout ----
1767973403 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp75ajoA/alice/work"]
1767973403 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmp75ajoA/alice/work`..
1767973403 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmp75ajoA/alice/work`..
1767973403 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmp75ajoA/alice/work`..
1767973403 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmp75ajoA/alice/work`..
1767973403 rad_id_threshold node: Opening policy database..
1767973403 rad_id_threshold node: Default seeding policy set to 'block (all)'
1767973403 rad_id_threshold node: Initializing service (Test)..
1767973403 rad_id_threshold node: Opening node database..
1767973403 rad_id_threshold node: Address book is empty. Adding bootstrap nodes..
1767973403 rad_id_threshold node: 0 nodes added to address book
1767973403 rad_id_threshold service: Init @1767973403000
1767973403 rad_id_threshold service: Empty refs database, populating from storage..
1767973403 rad_id_threshold service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973403 rad_id_threshold service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1767973403 rad_id_threshold service: Not enough available peers to connect to (available=0, wanted=8)
1767973403 rad_id_threshold reactor-controller: Initializing reactor thread...
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:37625..
1767973403 rad_id_threshold node: Binding control socket /tmp/.tmp75ajoA/alice/.radicle/node/control.sock..
1767973403 rad_id_threshold node: Opening policy database..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmp75ajoA/alice/.radicle..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973403 rad_id_threshold node: Default seeding policy set to 'block (all)'
1767973403 rad_id_threshold node: Initializing service (Test)..
1767973403 rad_id_threshold node: Opening node database..
1767973403 rad_id_threshold node: Address book is empty. Adding bootstrap nodes..
1767973403 rad_id_threshold node: 0 nodes added to address book
1767973403 rad_id_threshold service: Init @1767973403000
1767973403 rad_id_threshold service: Empty refs database, populating from storage..
1767973403 rad_id_threshold service: Not enough available peers to connect to (available=0, wanted=8)
1767973403 rad_id_threshold reactor-controller: Initializing reactor thread...
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Entering reactor event loop
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> node: Listening on 0.0.0.0:36699..
1767973403 rad_id_threshold node: Binding control socket /tmp/.tmp75ajoA/seed/.radicle/node/control.sock..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> node: Running node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z in /tmp/.tmp75ajoA/seed/.radicle..
1767973403 rad_id_threshold node: Opening policy database..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Control thread listening on socket..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command QueryState(..)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973403 rad_id_threshold node: Default seeding policy set to 'block (all)'
1767973403 rad_id_threshold node: Initializing service (Test)..
1767973403 rad_id_threshold node: Opening node database..
1767973403 rad_id_threshold node: Address book is empty. Adding bootstrap nodes..
1767973403 rad_id_threshold node: 0 nodes added to address book
1767973403 rad_id_threshold service: Init @1767973403000
1767973403 rad_id_threshold service: Empty refs database, populating from storage..
1767973403 rad_id_threshold service: Not enough available peers to connect to (available=0, wanted=8)
1767973403 rad_id_threshold reactor-controller: Initializing reactor thread...
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:45227..
1767973403 rad_id_threshold node: Binding control socket /tmp/.tmp75ajoA/bob/.radicle/node/control.sock..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmp75ajoA/bob/.radicle..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, followed)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Follow(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z, 0.0.0.0:36699, ConnectOptions { persistent: false, timeout: 30s })
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:36699)..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:36699)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Inbound connection from 127.0.0.1:51614..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Accepted inbound connection from 127.0.0.1:51614..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Registering transport
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Inbound peer resource registered
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:36699) (Outbound)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1767887003690..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:51614) (Inbound)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Subscribing to messages since timestamp 1767887003690..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403000)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 address(es) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403000)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403000)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973403000)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z updated at 1767973403000
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403001)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1767973403000
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403002)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403001)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403001)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, 0.0.0.0:45227, ConnectOptions { persistent: false, timeout: 30s })
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:45227)..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:45227)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound connection from 127.0.0.1:50674..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973403002)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Accepted inbound connection from 127.0.0.1:50674..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound peer resource registered
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Missing seeded inventory rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji; initiating fetch..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403001)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 13 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z on stream 13..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:45227) (Outbound)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1767887003700..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> worker: z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973403001)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Queueing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (already fetching)..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:50674) (Inbound)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1767887003700..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403000)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403000)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973403000)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973403000)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1767973403000
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403001)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1767973403000
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403002)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973403001)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973403002)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Connect(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z, 0.0.0.0:36699, ConnectOptions { persistent: false, timeout: 30s })
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connecting to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:36699)..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Attempted connection to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:36699)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Inbound connection from 127.0.0.1:51618..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Registering outbound transport for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Outbound peer resource registered for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Accepted inbound connection from 127.0.0.1:51618..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Registering transport
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Inbound peer resource registered
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched rad/id (5ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:36699) (Outbound)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1767887003719..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (127.0.0.1:51618) (Inbound)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Subscribing to messages since timestamp 1767887003721..
1767973403 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to route to [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z))]
1767973403 test: Found unexpected route for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: (rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403000)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 address(es) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403000)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403000)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973403000)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z updated at 1767973403000
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403001)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1767973403000
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403001)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403001)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973403001)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched data for 1 remote(s) (24ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched data refs for 1 remotes (27ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 13 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Validated 1 remote(s) (28ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Applied updates (28ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (40ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (41ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 13 exited with result Ok(())
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z closing with 0 byte(s) sent and 0 byte(s) received
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `close` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received fetch result from worker for stream 13, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), oid: 99c549702e2bcfe02b0e68d4a2224fb7a1524529 }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: true, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403751)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403751)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403752)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Skipping refs announcement relay to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [inbound connected]: peer isn't subscribed to rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Dequeued fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from session z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403751)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403751)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403751)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403751)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403752)
1767973403 test: Found unexpected route for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: (rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Opened new stream with id 21 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403752)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1767973403752)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 21 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Worker processing incoming fetch for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z on stream 21..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 21..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Fetched rad/id (1ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Fetched data for 1 remote(s) (4ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Fetched data refs for 1 remotes (4ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 21 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Upload pack finished (11ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Upload process on stream 21 exited with result Ok(())
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 21, remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 21 of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z closing with 0 byte(s) sent and 0 byte(s) received
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `close` command for stream 21 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Stream 21 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Validated 1 remote(s) (5ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Applied updates (6ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (15ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received fetch result from worker for stream 21, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), oid: 99c549702e2bcfe02b0e68d4a2224fb7a1524529 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: false, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973403 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp75ajoA"]
1767973403 test: rad-id-threshold.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Add Bob", "--description", "Add Bob as a delegate", "--delegate", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", "--threshold", "2"] in `/tmp/.tmp75ajoA/alice/work`..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Nothing to announce, no refs were updated..
1767973403 test: rad-id-threshold.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Add Bob", "--description", "Add Bob as a delegate", "--delegate", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"] in `/tmp/.tmp75ajoA/alice/work`..
thread 'rad_id_threshold' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ✓ Identity revision 7be665f9fccba97abb21b2fa85a6fd3181c72858 created
2 2 | ╭────────────────────────────────────────────────────────────────────────╮
3 3 | │ Title Add Bob │
4 4 | │ Revision 7be665f9fccba97abb21b2fa85a6fd3181c72858 │
5 5 | │ Blob 93d3009787e5d8a481dffc4dd248ea46af592466 │
⋮
10 10 | │ Add Bob as a delegate │
11 11 | ├────────────────────────────────────────────────────────────────────────┤
12 12 | │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
13 13 | ╰────────────────────────────────────────────────────────────────────────╯
14 14 |
15 - @@ -1,13 +1,14 @@
16 - {
17 - "payload": {
18 - "xyz.radicle.project": {
19 - "defaultBranch": "master",
20 - "description": "Radicle Heartwood Protocol & Stack",
21 - "name": "heartwood"
22 - }
23 - },
24 - "delegates": [
25 - - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
26 - + "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
27 - + "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
28 - ],
29 - "threshold": 1
30 - }
Exit status: 0
1767973403 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1767973403 rad_id_threshold reactor::controller: Initiating reactor shutdown...
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Disconnecting peer: connection reset
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Inbound, write_intent: false } with token 3
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Transport handover for disconnecting peer
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 3
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=7)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 test: Node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z shutting down..
1767973403 rad_id_threshold reactor::controller: Initiating reactor shutdown...
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Shutdown
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"shutdown"}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Shutdown requested..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 2
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (connection reset)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=8)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> pool: Worker pool shutting down..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> node: Node shutdown completed for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1767973403 rad_id_threshold reactor::controller: Initiating reactor shutdown...
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_multi_delegate stdout ----
1767973402 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpR58Hbi/alice/work"]
1767973402 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpR58Hbi/alice/work`..
1767973402 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpR58Hbi/alice/work`..
1767973402 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpR58Hbi/alice/work`..
1767973402 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpR58Hbi/alice/work`..
1767973402 rad_id_multi_delegate node: Opening policy database..
1767973402 rad_id_multi_delegate node: Default seeding policy set to 'block (all)'
1767973402 rad_id_multi_delegate node: Initializing service (Test)..
1767973402 rad_id_multi_delegate node: Opening node database..
1767973402 rad_id_multi_delegate node: Address book is empty. Adding bootstrap nodes..
1767973402 rad_id_multi_delegate node: 0 nodes added to address book
1767973402 rad_id_multi_delegate service: Init @1767973402000
1767973402 rad_id_multi_delegate service: Empty refs database, populating from storage..
1767973402 rad_id_multi_delegate service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973402 rad_id_multi_delegate service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1767973402 rad_id_multi_delegate service: Not enough available peers to connect to (available=0, wanted=8)
1767973402 rad_id_multi_delegate reactor-controller: Initializing reactor thread...
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:45663..
1767973402 rad_id_multi_delegate node: Binding control socket /tmp/.tmpR58Hbi/alice/.radicle/node/control.sock..
1767973402 rad_id_multi_delegate node: Opening policy database..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpR58Hbi/alice/.radicle..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973402 rad_id_multi_delegate node: Default seeding policy set to 'block (all)'
1767973402 rad_id_multi_delegate node: Initializing service (Test)..
1767973402 rad_id_multi_delegate node: Opening node database..
1767973402 rad_id_multi_delegate node: Address book is empty. Adding bootstrap nodes..
1767973402 rad_id_multi_delegate node: 0 nodes added to address book
1767973402 rad_id_multi_delegate service: Init @1767973402000
1767973402 rad_id_multi_delegate service: Empty refs database, populating from storage..
1767973402 rad_id_multi_delegate service: Not enough available peers to connect to (available=0, wanted=8)
1767973402 rad_id_multi_delegate reactor-controller: Initializing reactor thread...
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:42199..
1767973402 rad_id_multi_delegate node: Binding control socket /tmp/.tmpR58Hbi/bob/.radicle/node/control.sock..
1767973402 rad_id_multi_delegate node: Opening policy database..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmpR58Hbi/bob/.radicle..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973402 rad_id_multi_delegate node: Default seeding policy set to 'block (all)'
1767973402 rad_id_multi_delegate node: Initializing service (Test)..
1767973402 rad_id_multi_delegate node: Opening node database..
1767973402 rad_id_multi_delegate node: Address book is empty. Adding bootstrap nodes..
1767973402 rad_id_multi_delegate node: 0 nodes added to address book
1767973402 rad_id_multi_delegate service: Init @1767973402000
1767973402 rad_id_multi_delegate service: Empty refs database, populating from storage..
1767973402 rad_id_multi_delegate service: Not enough available peers to connect to (available=0, wanted=8)
1767973402 rad_id_multi_delegate reactor-controller: Initializing reactor thread...
1767973402 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Entering reactor event loop
1767973402 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> node: Listening on 0.0.0.0:36613..
1767973402 rad_id_multi_delegate node: Binding control socket /tmp/.tmpR58Hbi/eve/.radicle/node/control.sock..
1767973402 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> node: Running node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z in /tmp/.tmpR58Hbi/eve/.radicle..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973402 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Control thread listening on socket..
1767973402 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973402 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command QueryState(..)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Follow(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, 0.0.0.0:42199, ConnectOptions { persistent: false, timeout: 30s })
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:42199)..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:42199)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound connection from 127.0.0.1:33496..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Accepted inbound connection from 127.0.0.1:33496..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound peer resource registered
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:42199) (Outbound)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1767887002905..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:33496) (Inbound)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1767887002905..
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402000)
1767973402 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1767973402 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402000)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402000)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973402000)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1767973402000
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973402001)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1767973402000
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402002)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973402001)
1767973402 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973402002)
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973402 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command QueryState(..)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Connect(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, 0.0.0.0:45663, ConnectOptions { persistent: false, timeout: 30s })
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Connecting to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:45663)..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Attempted connection to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:45663)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound connection from 127.0.0.1:49266..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Registering outbound transport for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Registering transport
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Outbound peer resource registered for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Accepted inbound connection from 127.0.0.1:49266..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound peer resource registered
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:45663) (Outbound)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Subscribing to messages since timestamp 1767887003113..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (127.0.0.1:49266) (Inbound)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1767887003113..
1767973403 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1767973403 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402000)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 address(es) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973402000)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973402000)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973402000)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z updated at 1767973402000
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973402001)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1767973402000
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973402002)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973402001)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973402002)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 test: Node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z has converged
1767973403 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpR58Hbi/bob/work..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 13..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (5ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (14ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (18ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (25ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 13 exited with result Ok(())
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (18ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (19ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (26ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 13, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), oid: 99c549702e2bcfe02b0e68d4a2224fb7a1524529 }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: true, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403364)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403365)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403364)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973403364)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403365)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973403365)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1767973403365)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973403 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1767973403 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1767973403 test: rad clone: ✓ Target met: 1 seed(s)
1767973403 test: rad clone: ✓ Creating checkout in ./heartwood..
1767973403 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1767973403 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmpR58Hbi/bob/work/heartwood/
1767973403 test: rad clone: ╭────────────────────────────────────╮
1767973403 test: rad clone: │ heartwood │
1767973403 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1767973403 test: rad clone: │ 0 issues · 0 patches │
1767973403 test: rad clone: ╰────────────────────────────────────╯
1767973403 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1767973403 test: Ran command `rad clone` (status=0)
1767973403 test: Running `rad fork ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpR58Hbi/bob/work..
1767973403 test: rad fork: ✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 test: Ran command `rad fork` (status=0)
1767973403 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "1"]` in /tmp/.tmpR58Hbi/bob/work..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"subscribe"}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"announceRefsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command AnnounceRefs(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Announcing refs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk @ e9f48ef90fe8592e1b1c95f96c21a59ca1495300 to peers (t=1767973403582)..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403582)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403582)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973403582)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [outbound connected] (1 remote(s))..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `open` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 12..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched rad/id (1ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data for 1 remote(s) (7ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data refs for 1 remotes (7ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Sent done signal to remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `end-of-file` on stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Validated 1 remote(s) (8ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Applied updates (8ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (14ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload pack finished (14ms)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload process on stream 12 exited with result Ok(())
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closed with 0 byte(s) sent and 0 byte(s) received
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs"), oid: e9f48ef90fe8592e1b1c95f96c21a59ca1495300 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk)}, clone: false, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk successfully
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..e9f48ef refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973403618)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping refs announcement relay to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z [inbound connected]: peer isn't subscribed to rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403618)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973403618)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at e9f48ef90fe8592e1b1c95f96c21a59ca1495300 (t=1767973403618)
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to e9f48ef90fe8592e1b1c95f96c21a59ca1495300
1767973403 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973403 test: rad sync: ✓ Synced with 1 seed(s)
1767973403 test: Ran command `rad sync` (status=0)
1767973403 test: Waiting for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973403 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpR58Hbi/eve/work..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"status"}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"]}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command QueryState(..)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [outbound connected] (all remotes)..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 12 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Worker processing incoming fetch for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z on stream 12..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> worker: z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched rad/id (6ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched data for 2 remote(s) (18ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched data refs for 2 remotes (22ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 12 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Upload pack finished (28ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Upload process on stream 12 exited with result Ok(())
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z closing with 0 byte(s) sent and 0 byte(s) received
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `close` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Validated 2 remote(s) (24ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Applied updates (25ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (32ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), oid: 99c549702e2bcfe02b0e68d4a2224fb7a1524529 }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs"), oid: e9f48ef90fe8592e1b1c95f96c21a59ca1495300 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Created { name: RefString("refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)}, clone: true, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..e9f48ef refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403769)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 2 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403770)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403769)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403769)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 2 remote(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403770)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403770)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1767973403770)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973403 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1767973403 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1767973403 test: rad clone: ✓ Target met: 1 seed(s)
1767973403 test: rad clone: ✓ Creating checkout in ./heartwood..
1767973403 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1767973403 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmpR58Hbi/eve/work/heartwood/
1767973403 test: rad clone: ╭────────────────────────────────────╮
1767973403 test: rad clone: │ heartwood │
1767973403 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1767973403 test: rad clone: │ 0 issues · 0 patches │
1767973403 test: rad clone: ╰────────────────────────────────────╯
1767973403 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1767973403 test: Ran command `rad clone` (status=0)
1767973403 test: Running `rad fork ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpR58Hbi/eve/work..
1767973403 test: rad fork: ✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 test: Ran command `rad fork` (status=0)
1767973403 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "1"]` in /tmp/.tmpR58Hbi/eve/work..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"status"}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"]}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"subscribe"}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"announceRefsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"]}` on control socket
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command AnnounceRefs(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Announcing refs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z @ c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba to peers (t=1767973403976)..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973403976)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973403976)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1767973403976)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z [inbound connected] (1 remote(s))..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `open` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 13..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched rad/id (1ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched data for 1 remote(s) (6ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched data refs for 1 remotes (6ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Sent done signal to remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `end-of-file` on stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Validated 1 remote(s) (7ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Applied updates (7ms)
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (13ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Upload pack finished (14ms)
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Upload process on stream 13 exited with result Ok(())
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received fetch result from worker for stream 13, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1767973403 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 13 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z closed with 0 byte(s) sent and 0 byte(s) received
1767973403 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/sigrefs"), oid: c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba }, Created { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Created { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z)}, clone: false, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z successfully
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..c9a828f refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973404010)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1767973404010)
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973404010)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973404010)
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973404010)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1767973404010)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Command returned error: i/o error: Broken pipe (os error 32)
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba (t=1767973404010)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (1 remote(s))..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 21 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 21 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 21..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 21..
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched rad/id (1ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched data for 1 remote(s) (6ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched data refs for 1 remotes (6ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 21 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Upload pack finished (10ms)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Upload process on stream 21 exited with result Ok(())
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 21, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 21 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 21 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 21 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Validated 1 remote(s) (6ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Applied updates (7ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (11ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 21, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Created { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/sigrefs"), oid: c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba }, Created { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Created { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {Qualified(RefString("refs/heads/master")): f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354} }, namespaces: {PublicKey(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z)}, clone: false, doc: DocAt { commit: 0656c217f917c3e06234771e9ecae53aba5e173e, blob: d96f425412c9f8ad5d9a9a05c9831d0728e2338d, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [] }), threshold: Threshold(1), visibility: Public } } }) }
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..c9a828f refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973404044)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973404044)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973404044)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973404 test: rad sync: ✓ Synced with 1 seed(s)
1767973404 test: Ran command `rad sync` (status=0)
1767973404 test: Waiting for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973404 test: Node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973404 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973404 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973404 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be in sync with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Found 2 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be in sync with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Found 2 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpR58Hbi"]
1767973404 test: rad-id-multi-delegate.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--repo", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--title", "Add Bob", "--description", "", "--threshold", "2", "--delegate", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", "--no-confirm", "-q"] in `/tmp/.tmpR58Hbi/alice/work`..
1767973404 test: rad-id-multi-delegate.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["watch", "--repo", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--node", "z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z", "-r", "refs/rad/sigrefs", "-t", "c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba", "-i", "500", "--timeout", "5000"] in `/tmp/.tmpR58Hbi/bob/work`..
1767973404 test: rad-id-multi-delegate.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["sync", "--fetch", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmpR58Hbi/bob/work`..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 29 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 29 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#5> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 29..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#5> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 29..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Fetched rad/id (7ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Fetched data for 2 remote(s) (16ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Fetched data refs for 2 remotes (17ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 29 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#5> worker: Upload pack finished (26ms)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#5> worker: Upload process on stream 29 exited with result Ok(())
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 29, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 29 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 29 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 29 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Validated 2 remote(s) (19ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Applied updates (19ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (28ms)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> storage: Setting ref: refs/rad/id -> 069e7d58faa9a7473d27f5510d676af33282796f
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 29, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Initiator { rid: RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), result: Ok(FetchResult { updated: [Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), old: 0656c217f917c3e06234771e9ecae53aba5e173e, new: 069e7d58faa9a7473d27f5510d676af33282796f }, Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs"), old: 99c549702e2bcfe02b0e68d4a2224fb7a1524529, new: 1daf3049e7baa4c9576b322203b519a63ee83c4f }, Updated { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e"), old: 0656c217f917c3e06234771e9ecae53aba5e173e, new: 069e7d58faa9a7473d27f5510d676af33282796f }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id"), oid: 069e7d58faa9a7473d27f5510d676af33282796f }, Skipped { name: RefString("refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }, Skipped { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/sigrefs"), oid: c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba }, Skipped { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/heads/master"), oid: f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 }, Skipped { name: RefString("refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/root"), oid: 0656c217f917c3e06234771e9ecae53aba5e173e }], canonical: UpdatedCanonicalRefs { inner: {} }, namespaces: {PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi), PublicKey(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z)}, clone: false, doc: DocAt { commit: 069e7d58faa9a7473d27f5510d676af33282796f, blob: 053541ba7b90534b35dd8718e0ceaa408979b02b, doc: Doc { version: Version(1), payload: {PayloadId(TypeName("xyz.radicle.project")): Payload { value: Object {"defaultBranch": String("master"), "description": String("Radicle Heartwood Protocol & Stack"), "name": String("heartwood")} }}, delegates: Delegates(NonEmpty { head: Did("did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"), tail: [Did("did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk")] }), threshold: Threshold(2), visibility: Public } } }) }
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0656c21..069e7d5 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 99c5497..1daf304 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0656c21..069e7d5 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 2 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1767973404167)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 2 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1767973404167)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1767973404167)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 1daf3049e7baa4c9576b322203b519a63ee83c4f (t=1767973404167)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 1daf3049e7baa4c9576b322203b519a63ee83c4f
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1767973404 test: rad-id-multi-delegate.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "--repo", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmpR58Hbi/bob/work`..
1767973404 test: rad-id-multi-delegate.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["inspect", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--sigrefs"] in `/tmp/.tmpR58Hbi/bob/work`..
1767973404 test: rad-id-multi-delegate.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["inspect", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--delegates"] in `/tmp/.tmpR58Hbi/bob/work`..
1767973404 test: rad-id-multi-delegate.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--repo", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--title", "Add Eve", "--description", "", "--delegate", "did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z", "--no-confirm"] in `/tmp/.tmpR58Hbi/bob/work`..
thread 'rad_id_multi_delegate' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ✓ Identity revision 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 created
2 2 | ╭────────────────────────────────────────────────────────────────────────╮
3 3 | │ Title Add Eve │
4 4 | │ Revision 3cd3c7f9900de0fcb19705856a7cc339a38fb0b3 │
5 5 | │ Blob 74581605d1f75396c331487a10ca61c4815ed685 │
⋮
9 9 | ├────────────────────────────────────────────────────────────────────────┤
10 10 | │ ✓ did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk bob (you) │
11 11 | │ ? did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice │
12 12 | ╰────────────────────────────────────────────────────────────────────────╯
13 13 |
14 - @@ -1,14 +1,15 @@
15 - {
16 - "payload": {
17 - "xyz.radicle.project": {
18 - "defaultBranch": "master",
19 - "description": "Radicle Heartwood Protocol & Stack",
20 - "name": "heartwood"
21 - }
22 - },
23 - "delegates": [
24 - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
25 - - "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
26 - + "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk",
27 - + "did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"
28 - ],
29 - "threshold": 2
30 - }
Exit status: 0
1767973404 test: Node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z shutting down..
1767973404 rad_id_multi_delegate reactor::controller: Initiating reactor shutdown...
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"shutdown"}` on control socket
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Shutdown
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Shutdown requested..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Inbound, write_intent: false } with token 3
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (connection reset)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z..
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> pool: Worker pool shutting down..
1767973404 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> node: Node shutdown completed for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1767973404 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1767973404 rad_id_multi_delegate reactor::controller: Initiating reactor shutdown...
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 2
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=8)
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1767973404 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1767973404 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1767973404 rad_id_multi_delegate reactor::controller: Initiating reactor shutdown...
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_unknown_field stdout ----
1767973404 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpJbUkuW/alice/work"]
1767973404 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpJbUkuW/alice/work`..
1767973404 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpJbUkuW/alice/work`..
1767973404 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpJbUkuW/alice/work`..
1767973404 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpJbUkuW/alice/work`..
1767973404 rad_id_unknown_field node: Opening policy database..
1767973404 rad_id_unknown_field node: Default seeding policy set to 'block (all)'
1767973404 rad_id_unknown_field node: Initializing service (Test)..
1767973404 rad_id_unknown_field node: Opening node database..
1767973404 rad_id_unknown_field node: Address book is empty. Adding bootstrap nodes..
1767973404 rad_id_unknown_field node: 0 nodes added to address book
1767973404 rad_id_unknown_field service: Init @1767973404000
1767973404 rad_id_unknown_field service: Empty refs database, populating from storage..
1767973404 rad_id_unknown_field service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1767973404 rad_id_unknown_field service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1767973404 rad_id_unknown_field service: Not enough available peers to connect to (available=0, wanted=8)
1767973404 rad_id_unknown_field reactor-controller: Initializing reactor thread...
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:46549..
1767973404 rad_id_unknown_field node: Binding control socket /tmp/.tmpJbUkuW/alice/.radicle/node/control.sock..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpJbUkuW/alice/.radicle..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1767973404 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpJbUkuW/alice/work"]
1767973404 test: rad-id-unknown-field.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Add emoji alias", "--description", "Adding alias field", "--payload", "xyz.radicle.project", "alias", "\"❤\u{fe0f}🪵\""] in `/tmp/.tmpJbUkuW/alice/work`..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
thread 'rad_id_unknown_field' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ✓ Identity revision 05100d3f0a73b9373681677158615a53ba51940e created
2 2 | ╭────────────────────────────────────────────────────────────────────────╮
3 3 | │ Title Add emoji alias │
4 4 | │ Revision 05100d3f0a73b9373681677158615a53ba51940e │
5 5 | │ Blob a0f421c928dcfc6eca129fc2ea1f50877de7dc20 │
⋮
10 10 | │ Adding alias field │
11 11 | ├────────────────────────────────────────────────────────────────────────┤
12 12 | │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
13 13 | ╰────────────────────────────────────────────────────────────────────────╯
14 14 |
15 - @@ -1,13 +1,14 @@
16 - {
17 - "payload": {
18 - "xyz.radicle.project": {
19 - + "alias": "❤️🪵",
20 - "defaultBranch": "master",
21 - "description": "Radicle Heartwood Protocol & Stack",
22 - "name": "heartwood"
23 - }
24 - },
25 - "delegates": [
26 - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
27 - ],
28 - "threshold": 1
29 - }
Exit status: 0
1767973404 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1767973404 rad_id_unknown_field reactor::controller: Initiating reactor shutdown...
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1767973404 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_update_delete_field stdout ----
1767973404 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpm5J3tH/alice/work"]
1767973404 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpm5J3tH/alice/work`..
1767973404 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpm5J3tH/alice/work`..
1767973404 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpm5J3tH/alice/work`..
1767973404 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpm5J3tH/alice/work`..
1767973404 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpm5J3tH/alice/work"]
1767973404 test: rad-id-update-delete-field.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--title", "Add field", "--description", "Add a new 'web' field", "--payload", "xyz.radicle.project", "web", "\"https://acme.example\""] in `/tmp/.tmpm5J3tH/alice/work`..
thread 'rad_id_update_delete_field' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ✓ Identity revision a8a9fee6c4f83578ab132d375f1da0c81282bef3 created
2 2 | ╭────────────────────────────────────────────────────────────────────────╮
3 3 | │ Title Add field │
4 4 | │ Revision a8a9fee6c4f83578ab132d375f1da0c81282bef3 │
5 5 | │ Blob fbe268d13e60f1f3a1972e0ccd592f3cdecf08b5 │
⋮
10 10 | │ Add a new 'web' field │
11 11 | ├────────────────────────────────────────────────────────────────────────┤
12 12 | │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
13 13 | ╰────────────────────────────────────────────────────────────────────────╯
14 14 |
15 - @@ -1,13 +1,14 @@
16 - {
17 - "payload": {
18 - "xyz.radicle.project": {
19 - "defaultBranch": "master",
20 - "description": "Radicle Heartwood Protocol & Stack",
21 - - "name": "heartwood"
22 - + "name": "heartwood",
23 - + "web": "https://acme.example"
24 - }
25 - },
26 - "delegates": [
27 - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
28 - ],
29 - "threshold": 1
30 - }
Exit status: 0
---- rad_patch_fetch_2 stdout ----
1767973413 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpemVHcY/alice/work"]
1767973413 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpemVHcY/alice/work"]
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["checkout", "-b", "alice/1", "-q"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["commit", "--allow-empty", "-m", "Changes #1", "-q"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["push", "rad", "-o", "patch.message=Changes", "HEAD:refs/patches"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["checkout", "master", "-q"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["branch", "-D", "alice/1", "-q"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["update-ref", "-d", "refs/remotes/rad/alice/1"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["update-ref", "-d", "refs/remotes/rad/patches/5e2dedcc5d515fcbc1cca483d3376609fe889bfb"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["gc", "--prune=now"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["branch", "-r"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["pull"] in `/tmp/.tmpemVHcY/alice/work`..
1767973413 test: rad-patch-fetch-2.md: Running `git` with ["branch", "-r"] in `/tmp/.tmpemVHcY/alice/work`..
thread 'rad_patch_fetch_2' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 - rad/HEAD -> rad/master
2 1 | rad/master
3 2 | rad/patches/5e2dedcc5d515fcbc1cca483d3376609fe889bfb
Exit status: 0
---- rad_patch_via_push stdout ----
1767973414 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpeROAmh/alice/work"]
1767973414 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpeROAmh/alice/work"]
1767973414 test: rad-patch-via-push.md: Running `git` with ["checkout", "-b", "feature/1"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-patch-via-push.md: Running `git` with ["commit", "-a", "-m", "Add things", "-q", "--allow-empty"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-patch-via-push.md: Running `git` with ["push", "-o", "patch.message=Add things #1", "-o", "patch.message=See commits for details.", "rad", "HEAD:refs/patches"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-patch-via-push.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["patch", "show", "6035d2f582afbe01ff23ea87528ae523d76875b6"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-patch-via-push.md: Running `git` with ["branch", "-vv"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-patch-via-push.md: Running `git` with ["status", "--short", "--branch"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-patch-via-push.md: Running `git` with ["fetch"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-patch-via-push.md: Running `git` with ["push"] in `/tmp/.tmpeROAmh/alice/work`..
1767973414 test: rad-patch-via-push.md: Running `git` with ["show-ref"] in `/tmp/.tmpeROAmh/alice/work`..
thread 'rad_patch_via_push' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | 42d894a83c9c356552a57af09ccdbd5587a99045 refs/heads/feature/1
2 2 | f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/heads/master
3 - f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/remotes/rad/HEAD
4 3 | f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354 refs/remotes/rad/master
5 4 | 42d894a83c9c356552a57af09ccdbd5587a99045 refs/remotes/rad/patches/6035d2f582afbe01ff23ea87528ae523d76875b6
Exit status: 0
---- rad_publish stdout ----
1767973414 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpo6PX2k/alice/work"]
1767973414 test: rad-init-private.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "radicle heartwood protocol & stack", "--no-confirm", "--private"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: rad-init-private.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: rad-init-private.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["seed"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpo6PX2k/alice/work"]
1767973414 test: rad-publish.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["inspect", "--visibility"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: rad-publish.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: rad-publish.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["publish"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: rad-publish.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["inspect", "--visibility"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: rad-publish.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: rad-publish.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["publish"] in `/tmp/.tmpo6PX2k/alice/work`..
1767973414 test: rad-publish.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["id", "update", "--visibility", "private", "--title", "Privatise", "--description", "Reverting the rad publish event"] in `/tmp/.tmpo6PX2k/alice/work`..
thread 'rad_publish' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 1 | ✓ Identity revision 774cc1e72641d97d7dc9377745b7f454a9171747 created
2 2 | ╭────────────────────────────────────────────────────────────────────────╮
3 3 | │ Title Privatise │
4 4 | │ Revision 774cc1e72641d97d7dc9377745b7f454a9171747 │
5 5 | │ Blob 88f759a4d46e9535766fccec0cbfe1fed6160b1a │
⋮
10 10 | │ Reverting the rad publish event │
11 11 | ├────────────────────────────────────────────────────────────────────────┤
12 12 | │ ✓ did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi alice (you) │
13 13 | ╰────────────────────────────────────────────────────────────────────────╯
14 14 |
15 - @@ -1,13 +1,16 @@
16 - {
17 - "payload": {
18 - "xyz.radicle.project": {
19 - "defaultBranch": "master",
20 - "description": "radicle heartwood protocol & stack",
21 - "name": "heartwood"
22 - }
23 - },
24 - "delegates": [
25 - "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
26 - ],
27 - - "threshold": 1
28 - + "threshold": 1,
29 - + "visibility": {
30 - + "type": "private"
31 - + }
32 - }
Exit status: 0
---- rad_review_by_hunk stdout ----
1767973415 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpWFpTCf/alice/work"]
1767973415 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["init"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["ls"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-init.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: Creating directory /tmp/.tmpWFpTCf/alice/work..
1767973415 test: Writing 149 bytes to /tmp/.tmpWFpTCf/alice/work/MENU.txt..
1767973415 test: Creating directory /tmp/.tmpWFpTCf/alice/work..
1767973415 test: Writing 38 bytes to /tmp/.tmpWFpTCf/alice/work/INSTRUCTIONS.txt..
1767973415 test: Creating directory /tmp/.tmpWFpTCf/alice/work..
1767973415 test: Writing 8 bytes to /tmp/.tmpWFpTCf/alice/work/.gitignore..
1767973415 test: Creating directory /tmp/.tmpWFpTCf/alice/work..
1767973415 test: Writing 44 bytes to /tmp/.tmpWFpTCf/alice/work/DISCLAIMER.txt..
1767973415 test: Using PATH ["/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpWFpTCf/alice/work"]
1767973415 test: rad-review-by-hunk.md: Running `git` with ["add", "MENU.txt", "INSTRUCTIONS.txt", ".gitignore"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `git` with ["commit", "-q", "-a", "-m", "Add files"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `git` with ["push", "rad", "master"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `sed` with ["-i", "$a Garlic Green Beans", "MENU.txt"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `sed` with ["-i", "3i\\Baked Brie", "MENU.txt"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `sed` with ["-i", "s/French Fries/French Fries!/", "MENU.txt"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `rm` with [".gitignore"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `mkdir` with ["notes"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `mv` with ["INSTRUCTIONS.txt", "notes/"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `git` with ["checkout", "-q", "-b", "patch/1"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `git` with ["add", "."] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `git` with ["status", "--short"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `git` with ["commit", "-q", "-m", "Update files"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `git` with ["push", "rad", "HEAD:refs/patches"] in `/tmp/.tmpWFpTCf/alice/work`..
1767973415 test: rad-review-by-hunk.md: Running `/0748f2bf-aff8-467c-b04a-e5ea53a01521/w/target/debug/rad` with ["patch", "review", "--patch", "-U5", "7a2ac7e2841cc1e7394f99f107555a499b1d3f23", "--no-announce"] in `/tmp/.tmpWFpTCf/alice/work`..
thread 'rad_review_by_hunk' panicked at crates/radicle-cli-test/src/lib.rs:503:36:
--- Expected
++++ actual: stdout
1 - ╭──────────────────────╮
2 - │ .gitignore ❲deleted❳ │
3 - ├──────────────────────┤
4 - │ @@ -1,1 +0,0 @@ │
5 - │ 1 - *.draft │
6 - ╰──────────────────────╯
7 - ╭──────────────────────────────────────────────────────────╮
8 - │ DISCLAIMER.txt ❲created❳ │
9 - ├──────────────────────────────────────────────────────────┤
10 - │ @@ -0,0 +1,1 @@ │
11 - │ 1 + All food is served as-is, with no warranty! │
12 - ╰──────────────────────────────────────────────────────────╯
13 - ╭─────────────────────────────╮
14 - │ MENU.txt │
15 - ├─────────────────────────────┤
16 - │ @@ -1,7 +1,8 @@ │
17 - │ 1 1 Classics │
18 - │ 2 2 -------- │
19 - │ 3 + Baked Brie │
20 - │ 3 4 Salmon Tartare │
21 - │ 4 5 Mac & Cheese │
22 - │ 5 6 │
23 - │ 6 7 Comfort Food │
24 - │ 7 8 ------------ │
25 - ╰─────────────────────────────╯
26 - ╭──────────────────────────────────╮
27 - │ MENU.txt │
28 - ├──────────────────────────────────┤
29 - │ @@ -9,6 +10,7 @@ Reuben Sandwich │
30 - │ 9 10 Club Sandwich │
31 - │ 10 11 Fried Shrimp Basket │
32 - │ 11 12 │
33 - │ 12 13 Sides │
34 - │ 13 14 ----- │
35 - │ 14 - French Fries │
36 - │ 15 + French Fries! │
37 - │ 16 + Garlic Green Beans │
38 - ╰──────────────────────────────────╯
39 - ╭────────────────────────────────────────────────────╮
40 - │ INSTRUCTIONS.txt -> notes/INSTRUCTIONS.txt ❲moved❳ │
41 - ╰────────────────────────────────────────────────────╯
1 + ✗ Error: The command `rad patch review --patch` is obsolete and has been removed.
Exit status: 1
failures:
git_push_canonical_annotated_tags
git_push_canonical_lightweight_tags
rad_id
rad_id_conflict
rad_id_multi_delegate
rad_id_threshold
rad_id_unknown_field
rad_id_update_delete_field
rad_patch_fetch_2
rad_patch_via_push
rad_publish
rad_review_by_hunk
test result: FAILED. 96 passed; 12 failed; 2 ignored; 0 measured; 0 filtered out; finished in 65.24s
error: test failed, to rerun pass `-p radicle-cli --test commands`
Running unittests src/lib.rs (target/debug/deps/radicle_cli_test-271eee1f80c41c0d)
running 3 tests
test tests::test_parse ... ok
test tests::test_run ... ok
test tests::test_example_spaced_brackets ... ok
test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_cob-84c4e41a69174119)
running 8 tests
test object::tests::test_serde ... ok
test tests::git::roundtrip ... ok
test tests::invalid_parse_refstr ... ok
test tests::git::traverse_cobs ... ok
test type_name::test::valid_typenames ... ok
test tests::git::update_cob ... ok
test tests::parse_refstr ... ok
test tests::git::list_cobs ... ok
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
Running unittests src/lib.rs (target/debug/deps/radicle_core-ef9dfc09b2e6d61d)
running 2 tests
test repo::test::assert_prop_roundtrip_parse ... ok
test repo::serde_impls::test::assert_prop_roundtrip_serde_json ... ok
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_crypto-2cdf91f3179b3527)
running 12 tests
test ssh::keystore::tests::test_init_no_passphrase ... ok
test ssh::fmt::test::test_key ... ok
test ssh::fmt::test::test_fingerprint ... ok
test ssh::test::test_agent_encoding_remove ... ok
test ssh::test::prop_encode_decode_sk ... ok
test ssh::test::test_agent_encoding_sign ... ok
test tests::prop_encode_decode ... ok
test tests::test_e25519_dh ... ok
test tests::test_encode_decode ... ok
test tests::prop_key_equality ... ok
test ssh::keystore::tests::test_signer ... ok
test ssh::keystore::tests::test_init_passphrase ... ok
test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.87s
Running unittests src/lib.rs (target/debug/deps/radicle_dag-05f7457e7194a495)
running 20 tests
test tests::test_contains ... ok
test tests::test_dependencies ... ok
test tests::test_cycle ... ok
test tests::test_complex ... ok
test tests::test_fold_diamond ... ok
test tests::test_fold_multiple_roots ... ok
test tests::test_diamond ... ok
test tests::test_fold_reject ... ok
test tests::test_fold_sorting_2 ... ok
test tests::test_get ... ok
test tests::test_is_empty ... ok
test tests::test_merge_1 ... ok
test tests::test_len ... ok
test tests::test_merge_2 ... ok
test tests::test_prune_1 ... ok
test tests::test_prune_2 ... ok
test tests::test_fold_sorting_1 ... ok
test tests::test_prune_by_sorting ... ok
test tests::test_siblings ... ok
test tests::test_remove ... ok
test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_fetch-55beca16093fba7c)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_git_metadata-ccdb6d430095148e)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_git_ref_format-b808ac22aa3ddce7)
running 9 tests
test test::component ... ok
test test::component_invalid - should panic ... ok
test test::qualified ... ok
test test::pattern ... ok
test test::qualified_invalid - should panic ... ok
test test::qualified_pattern_invalid - should panic ... ok
test test::qualified_pattern ... ok
test test::refname ... ok
test test::refname_invalid - should panic ... ok
test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_localtime-b324a722f6463902)
running 1 test
test serde_impls::test::test_localtime ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_node-01418340137b57ac)
running 74 tests
test reactor::timer::tests::test_next ... ok
test reactor::timer::tests::test_wake ... ok
test reactor::timer::tests::test_wake_exact ... ok
test control::tests::test_control_socket ... ok
test fingerprint::tests::matching ... ok
test control::tests::test_seed_unseed ... ok
test tests::e2e::missing_default_branch ... ok
test tests::e2e::test_catchup_on_refs_announcements ... ok
test tests::e2e::missing_delegate_default_branch ... ok
test tests::e2e::test_background_foreground_fetch ... ok
test tests::e2e::test_channel_reader_limit ... ok
test tests::e2e::test_clone ... ok
test tests::e2e::test_dont_fetch_owned_refs ... ok
test tests::e2e::test_connection_crossing ... ok
test tests::e2e::test_fetch_followed_remotes ... ok
test tests::e2e::test_concurrent_fetches ... ok
test tests::e2e::test_fetch_preserve_owned_refs ... ok
test tests::e2e::test_fetch_unseeded ... ok
test tests::e2e::test_fetch_up_to_date ... ok
test tests::e2e::test_inventory_sync_basic ... ok
test tests::e2e::test_fetch_emits_canonical_ref_update ... ok
test tests::e2e::test_large_fetch ... ok
test tests::e2e::test_migrated_clone ... ok
test tests::e2e::test_missing_remote ... ok
test tests::e2e::test_multiple_offline_inits ... ok
test tests::e2e::test_non_fastforward_sigrefs ... ok
test tests::e2e::test_outdated_delegate_sigrefs ... ok
test tests::e2e::test_outdated_sigrefs ... ok
test tests::e2e::test_replication ... ok
test tests::e2e::test_replication_invalid ... ok
test tests::e2e::test_inventory_sync_bridge ... ok
test tests::e2e::test_replication_ref_in_sigrefs ... ok
test tests::e2e::test_inventory_sync_ring ... ok
test tests::e2e::test_inventory_sync_star ... ok
test tests::test_announcement_rebroadcast ... ok
test tests::test_announcement_rebroadcast_duplicates ... ok
test tests::test_announcement_rebroadcast_timestamp_filtered ... ok
test tests::test_announcement_relay ... ok
test tests::test_connection_kept_alive ... ok
test tests::test_disconnecting_unresponsive_peer ... ok
test tests::test_fetch_missing_inventory_on_gossip ... ok
test tests::test_fetch_missing_inventory_on_schedule ... ok
test tests::test_inbound_connection ... ok
test tests::test_inventory_decode ... ok
test tests::test_init_and_seed ... ok
test tests::test_inventory_relay ... ok
test tests::test_inventory_relay_bad_timestamp ... ok
test tests::test_inventory_sync ... ok
test tests::test_maintain_connections ... ok
test tests::test_maintain_connections_failed_attempt ... ok
test tests::test_maintain_connections_transient ... ok
test tests::test_outbound_connection ... ok
test tests::test_persistent_peer_connect ... ok
test tests::test_inventory_pruning ... ok
test tests::test_persistent_peer_reconnect_success ... ok
test tests::test_persistent_peer_reconnect_attempt ... ok
test tests::test_ping_response ... ok
test tests::test_queued_fetch_from_ann_same_rid ... ok
test tests::test_queued_fetch_from_command_same_rid ... ok
test tests::test_redundant_connect ... ok
test tests::test_queued_fetch_max_capacity ... ok
test tests::test_refs_announcement_followed ... ok
test tests::test_refs_announcement_fetch_trusted_no_inventory ... ok
test tests::test_refs_announcement_no_subscribe ... ok
test tests::test_refs_announcement_offline ... ok
test tests::test_refs_announcement_relay_private ... ok
test tests::test_refs_announcement_relay_public ... ok
test tests::test_refs_synced_event ... ok
test tests::test_seed_repo_subscribe ... ok
test tests::test_seeding ... ok
test wire::test::test_pong_message_with_extension ... ok
test wire::test::test_inventory_ann_with_extension ... ok
test tests::prop_inventory_exchange_dense ... ok
test tests::test_announcement_message_amplification ... ok
test result: ok. 74 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 16.88s
Running unittests src/main.rs (target/debug/deps/radicle_node-5f2550719b5c8458)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_oid-d6586171c5e5bfc1)
running 10 tests
test fmt::test::zero ... ok
test fmt::test::fixture ... ok
test git2::test::zero ... ok
test gix::test::zero ... ok
test str::test::fixture ... ok
test str::test::git2_roundtrip ... ok
test str::test::zero ... ok
test fmt::test::gix ... ok
test fmt::test::git2 ... ok
test str::test::gix_roundrip ... ok
test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_protocol-be1e4f2918a857c6)
running 46 tests
test deserializer::test::test_unparsed ... ok
test deserializer::test::test_decode_next ... ok
test service::filter::test::compatible ... ok
test deserializer::test::prop_decode_next ... ok
test service::filter::test::test_parameters ... ok
test service::limiter::test::test_limitter_different_rates ... ok
test service::limiter::test::test_limitter_multi ... ok
test service::limiter::test::test_limitter_refill ... ok
test service::filter::test::test_sizes ... ok
test service::gossip::store::test::test_announced ... ok
test service::message::tests::test_ref_remote_limit ... ok
test wire::frame::test::test_encode_git_large ... ok
test wire::frame::test::test_stream_id ... ok
test service::message::tests::test_inventory_limit ... ok
test wire::message::tests::prop_roundtrip_address ... ok
test service::message::tests::prop_refs_announcement_signing ... ok
test wire::message::tests::prop_zero_bytes_encode_decode ... ok
test wire::message::tests::test_inv_ann_max_size ... ok
test wire::message::tests::test_node_ann_max_size ... ok
test wire::message::tests::test_ping_encode_size_overflow - should panic ... ok
test wire::message::tests::test_pingpong_encode_max_size ... ok
test wire::message::tests::test_pong_encode_size_overflow - should panic ... ok
test wire::message::tests::prop_roundtrip_message ... ok
test wire::tests::prop_oid ... ok
test wire::tests::prop_roundtrip_filter ... ok
test wire::tests::prop_roundtrip_publickey ... ok
test wire::tests::prop_roundtrip_refs ... ok
test wire::tests::prop_roundtrip_repoid ... ok
test wire::message::tests::test_refs_ann_max_size ... ok
test wire::tests::prop_roundtrip_tuple ... ok
test wire::tests::prop_roundtrip_u16 ... ok
test wire::tests::prop_roundtrip_u32 ... ok
test wire::tests::prop_roundtrip_u64 ... ok
test wire::tests::prop_roundtrip_vec ... ok
test wire::tests::prop_signature ... ok
test wire::tests::prop_roundtrip_signed_refs ... ok
test wire::tests::test_alias ... ok
test wire::tests::prop_string ... ok
test wire::tests::test_bounded_vec_limit ... ok
test wire::tests::test_filter_invalid ... ok
test wire::tests::test_string ... ok
test wire::varint::test::prop_roundtrip_varint ... ok
test wire::varint::test::test_encode_overflow - should panic ... ok
test wire::varint::test::test_encoding ... ok
test wire::message::tests::prop_message_decoder ... ok
test service::message::tests::test_node_announcement_validate ... ok
test result: ok. 46 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.33s
Running unittests src/main.rs (target/debug/deps/git_remote_rad-a3c965e5bee2f18f)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/main.rs (target/debug/deps/radicle_schemars-3814598870a0c326)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_signals-bb66f1d798396f61)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_ssh-ced840136c32d8e4)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_systemd-36e3b0b1253d2879)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/lib.rs (target/debug/deps/radicle_term-fac874e5460320c3)
running 21 tests
test ansi::tests::wrapping ... ok
test cell::test::test_width ... ok
test ansi::tests::colors_enabled ... ok
test ansi::tests::colors_disabled ... ok
test element::test::test_truncate ... ok
test element::test::test_width ... ok
test table::test::test_table ... ok
test table::test::test_table_border_maximized ... ok
test table::test::test_table_border ... ok
test element::test::test_spaced ... ok
test table::test::test_table_border_truncated ... ok
test table::test::test_table_truncate ... ok
test table::test::test_truncate ... ok
test table::test::test_table_unicode_truncate ... ok
test textarea::test::test_wrapping ... ok
test textarea::test::test_wrapping_fenced_block ... ok
test textarea::test::test_wrapping_code_block ... ok
test table::test::test_table_unicode ... ok
test textarea::test::test_wrapping_paragraphs ... ok
test vstack::test::test_vstack ... ok
test vstack::test::test_vstack_maximize ... ok
test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle
running 1 test
test crates/radicle/src/cob/patch/encoding/review.rs - cob::patch::encoding::review::Review (line 23) ... ignored
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cli
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cli_test
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_cob
running 1 test
test crates/radicle-cob/src/backend/stable.rs - backend::stable::with_advanced_timestamp (line 56) ... ignored
test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_core
running 2 tests
test crates/radicle-core/src/node.rs - node (line 9) ... FAILED
test crates/radicle-core/src/node.rs - node (line 5) ... FAILED
failures:
---- crates/radicle-core/src/node.rs - node (line 9) stdout ----
error[E0425]: cannot find value `z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi` in this scope
--> crates/radicle-core/src/node.rs:10:1
|
3 | z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not found in this scope
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0425`.
Couldn't compile the test.
---- crates/radicle-core/src/node.rs - node (line 5) stdout ----
error: expected expression, found keyword `type`
--> crates/radicle-core/src/node.rs:6:45
|
3 | MULTIBASE(base58-btc, MULTICODEC(public-key-type, raw-public-key-bytes))
| ^^^^ expected expression
error[E0425]: cannot find value `base58` in this scope
--> crates/radicle-core/src/node.rs:6:11
|
3 | MULTIBASE(base58-btc, MULTICODEC(public-key-type, raw-public-key-bytes))
| ^^^^^^ not found in this scope
error[E0425]: cannot find value `btc` in this scope
--> crates/radicle-core/src/node.rs:6:18
|
3 | MULTIBASE(base58-btc, MULTICODEC(public-key-type, raw-public-key-bytes))
| ^^^ not found in this scope
error[E0425]: cannot find function, tuple struct or tuple variant `MULTIBASE` in this scope
--> crates/radicle-core/src/node.rs:6:1
|
3 | MULTIBASE(base58-btc, MULTICODEC(public-key-type, raw-public-key-bytes))
| ^^^^^^^^^ not found in this scope
error: aborting due to 4 previous errors
For more information about this error, try `rustc --explain E0425`.
Couldn't compile the test.
failures:
crates/radicle-core/src/node.rs - node (line 5)
crates/radicle-core/src/node.rs - node (line 9)
test result: FAILED. 0 passed; 2 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
error: doctest failed, to rerun pass `-p radicle-core --doc`
Doc-tests radicle_crypto
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_dag
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_fetch
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_git_metadata
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_git_ref_format
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_localtime
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_node
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_oid
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_protocol
running 6 tests
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::max (line 96) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::truncate (line 50) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::push (line 122) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::collect_from (line 30) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::unbound (line 149) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::with_capacity (line 66) ... ok
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s
Doc-tests radicle_signals
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_ssh
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_systemd
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests radicle_term
running 1 test
test crates/radicle-term/src/table.rs - table (line 4) ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s
error: 2 targets failed:
`-p radicle-cli --test commands`
`-p radicle-core --doc`
Exit code: 101
{
"response": "finished",
"result": "failure"
}