rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 heartwood0ac3efb8da70e1f1bd53f74d2741baab1e87bc6f
{
"request": "trigger",
"version": 1,
"event_type": "patch",
"repository": {
"id": "rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5",
"name": "heartwood",
"description": "Radicle Heartwood Protocol & Stack",
"private": false,
"default_branch": "master",
"delegates": [
"did:key:z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT",
"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"
]
},
"action": "Created",
"patch": {
"id": "68333e7fc06318e3d7e5c4796fadfd398203a4aa",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"title": "Remove dependency `radicle-surf`",
"state": {
"status": "archived",
"conflicts": []
},
"before": "af3f07627b05dac4a68b102e2908da23b061a631",
"after": "0ac3efb8da70e1f1bd53f74d2741baab1e87bc6f",
"commits": [
"0ac3efb8da70e1f1bd53f74d2741baab1e87bc6f"
],
"target": "3fc92f83fe089263c470b328414d923227cf0e4a",
"labels": [],
"assignees": [],
"revisions": [
{
"id": "68333e7fc06318e3d7e5c4796fadfd398203a4aa",
"author": {
"id": "did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"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:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM",
"alias": null
},
"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": "2705033a-7b69-4de2-ac6a-3c2c533c9dfa"
},
"info_url": "https://cci.rad.levitte.org//2705033a-7b69-4de2-ac6a-3c2c533c9dfa.html"
}
Started at: 2026-09-07 22:29:14.210580+02:00
Commands:
$ rad clone rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5 .
✓ Creating checkout in ./...
✓ Remote cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT added
✓ Remote-tracking branch cloudhead@z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT/master created for z6MksFqXN3Yhqk8pTJdUGLwATkRfQvwZXPqR2qMEhbS9wzpT
✓ Remote fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM added
✓ Remote-tracking branch fintohaps@z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM/master created for z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM
✓ 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/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/
╭────────────────────────────────────╮
│ heartwood │
│ Radicle Heartwood Protocol & Stack │
│ 189 issues · 38 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 0ac3efb8da70e1f1bd53f74d2741baab1e87bc6f
HEAD is now at 0ac3efb8 POC: removing radicle-surf dependency
Exit code: 0
$ rad patch show 68333e7fc06318e3d7e5c4796fadfd398203a4aa -p
╭─────────────────────────────────────────────────────────────────────────────────╮
│ Title Remove dependency `radicle-surf` │
│ Patch 68333e7fc06318e3d7e5c4796fadfd398203a4aa │
│ Author fintohaps z6Mkire…SQZ3voM │
│ Head 0ac3efb8da70e1f1bd53f74d2741baab1e87bc6f │
│ Base af3f07627b05dac4a68b102e2908da23b061a631 │
│ Target master │
│ Branches patch/68333e7 │
│ Commits ahead 1, behind 632 │
│ Status archived │
│ │
│ 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 @ af3f076..0ac3efb by fintohaps z6Mkire…SQZ3voM 7 months ago │
│ ↑ Revision 1bc488a @ 02318f1..3ae269d by lorenz z6MkkPv…WX5sTEz 7 months 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 2705033a-7b69-4de2-ac6a-3c2c533c9dfa -v /opt/radcis/ci.rad.levitte.org/cci/state/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/s:/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/s:ro -v /opt/radcis/ci.rad.levitte.org/cci/state/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w:/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w -w /2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w -v /opt/radcis/ci.rad.levitte.org/.radicle:/${id}/.radicle:ro -e RAD_HOME=/${id}/.radicle rust:trixie bash /2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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 addr2line v0.24.2
Downloaded amplify_derive v4.0.0
Downloaded ahash v0.8.11
Downloaded aes-gcm v0.10.3
Downloaded aho-corasick v1.1.3
Downloaded hmac v0.12.1
Downloaded itoa v1.0.11
Downloaded idna_adapter v1.2.0
Downloaded gix-odb v0.70.0
Downloaded icu_provider_macros v1.5.0
Downloaded icu_locid_transform_data v1.5.1
Downloaded equivalent v1.0.1
Downloaded generic-array v0.14.7
Downloaded fast-glob v0.3.3
Downloaded data-encoding-macro-internal v0.1.12
Downloaded block-buffer v0.10.4
Downloaded noise-framework v0.4.0
Downloaded gix-hashtable v0.9.0
Downloaded cpufeatures v0.2.12
Downloaded gix-ref v0.53.1
Downloaded nonempty v0.9.0
Downloaded gix-revwalk v0.21.0
Downloaded num v0.4.3
Downloaded percent-encoding v2.3.1
Downloaded opaque-debug v0.3.1
Downloaded gix-lock v18.0.0
Downloaded git-ref-format-core v0.6.0
Downloaded num-integer v0.1.46
Downloaded num-rational v0.4.2
Downloaded erased-serde v0.4.6
Downloaded pem-rfc7468 v0.7.0
Downloaded ref-cast v1.0.24
Downloaded overload v0.1.1
Downloaded qcheck v1.0.0
Downloaded ref-cast-impl v1.0.24
Downloaded p256 v0.13.2
Downloaded serde_derive_internals v0.29.1
Downloaded rfc6979 v0.4.0
Downloaded outref v0.5.2
Downloaded sha1 v0.10.6
Downloaded same-file v1.0.6
Downloaded num-bigint v0.4.6
Downloaded sqlite v0.32.0
Downloaded sval_dynamic v2.14.1
Downloaded ssh-encoding v0.2.0
Downloaded schemars_derive v1.0.4
Downloaded sval_fmt v2.14.1
Downloaded sval_serde v2.14.1
Downloaded spki v0.7.3
Downloaded sval_buffer v2.14.1
Downloaded sval v2.14.1
Downloaded spin v0.9.8
Downloaded test-log v0.2.18
Downloaded thiserror-impl v2.0.17
Downloaded thiserror-impl v1.0.69
Downloaded shell-words v1.1.0
Downloaded tree-sitter-highlight v0.24.4
Downloaded thiserror v2.0.17
Downloaded typeid v1.0.3
Downloaded regex-automata v0.1.10
Downloaded value-bag-serde1 v1.11.1
Downloaded zerofrom v0.1.6
Downloaded write16 v1.0.0
Downloaded tinyvec v1.6.0
Downloaded vsimd v0.8.0
Downloaded writeable v0.5.5
Downloaded zerovec-derive v0.10.3
Downloaded bloomy v1.2.0
Downloaded tree-sitter-css v0.23.1
Downloaded walkdir v2.5.0
Downloaded unit-prefix v0.5.1
Downloaded value-bag-sval2 v1.11.1
Downloaded uuid-simd v0.8.0
Downloaded chrono v0.4.38
Downloaded uuid v1.16.0
Downloaded serde_json v1.0.140
Downloaded tree-sitter-go v0.23.4
Downloaded zerofrom-derive v0.1.6
Downloaded unicode-segmentation v1.11.0
Downloaded siphasher v1.0.1
Downloaded synstructure v0.13.1
Downloaded regex v1.11.1
Downloaded unicode-normalization v0.1.23
Downloaded zerocopy v0.7.35
Downloaded zeroize v1.7.0
Downloaded tracing-subscriber v0.3.19
Downloaded zlib-rs v0.5.2
Downloaded tree-sitter-c v0.23.2
Downloaded value-bag v1.11.1
Downloaded signals_receipts v0.2.0
Downloaded socket2 v0.5.7
Downloaded tree-sitter-md v0.3.2
Downloaded gix-transport v0.48.0
Downloaded toml v0.9.5
Downloaded jiff-static v0.2.15
Downloaded memchr v2.7.2
Downloaded tree-sitter-bash v0.23.3
Downloaded jsonschema v0.30.0
Downloaded zerovec v0.10.4
Downloaded hashbrown v0.14.3
Downloaded hashbrown v0.15.5
Downloaded libm v0.2.8
Downloaded tree-sitter-ruby v0.23.1
Downloaded git2 v0.19.0
Downloaded regex-automata v0.4.9
Downloaded vcpkg v0.2.15
Downloaded icu_properties_data v1.5.1
Downloaded gimli v0.31.1
Downloaded unicode-width v0.2.1
Downloaded object v0.36.7
Downloaded itertools v0.14.0
Downloaded tree-sitter-rust v0.23.2
Downloaded inquire v0.7.5
Downloaded sha1-checked v0.10.0
Downloaded idna v1.0.3
Downloaded gix-pack v0.60.0
Downloaded tokio v1.47.1
Downloaded tree-sitter-typescript v0.23.2
Downloaded sha3 v0.10.8
Downloaded icu_collections v1.5.0
Downloaded serde v1.0.219
Downloaded indicatif v0.18.0
Downloaded heapless v0.8.0
Downloaded fraction v0.15.3
Downloaded rustix v1.0.7
Downloaded pretty_assertions v1.4.0
Downloaded similar v2.5.0
Downloaded sharded-slab v0.1.7
Downloaded serde_derive v1.0.219
Downloaded regex-syntax v0.8.5
Downloaded jiff v0.2.15
Downloaded icu_locid v1.5.0
Downloaded syn v2.0.106
Downloaded libc v0.2.174
Downloaded parking_lot_core v0.9.12
Downloaded gix-object v0.50.2
Downloaded gix-diff v0.53.0
Downloaded getrandom v0.3.3
Downloaded yoke v0.7.5
Downloaded winnow v0.7.13
Downloaded tree-sitter-python v0.23.4
Downloaded tree-sitter v0.24.4
Downloaded syn v1.0.109
Downloaded snapbox v0.4.17
Downloaded smallvec v1.15.1
Downloaded sem_safe v0.2.0
Downloaded regex-syntax v0.6.29
Downloaded referencing v0.30.0
Downloaded log v0.4.27
Downloaded icu_normalizer_data v1.5.1
Downloaded gix-protocol v0.51.0
Downloaded unicode-width v0.1.11
Downloaded tree-sitter-toml-ng v0.6.0
Downloaded tracing-log v0.2.0
Downloaded timeago v0.4.2
Downloaded toml_datetime v0.7.0
Downloaded thiserror v1.0.69
Downloaded sval_nested v2.14.1
Downloaded paste v1.0.15
Downloaded gix-url v0.32.0
Downloaded gix-traverse v0.47.0
Downloaded sha2 v0.10.8
Downloaded serde-untagged v0.1.7
Downloaded primeorder v0.13.6
Downloaded gix-hash v0.19.0
Downloaded portable-atomic v1.11.0
Downloaded lock_api v0.4.14
Downloaded libz-rs-sys v0.5.2
Downloaded gix-features v0.43.1
Downloaded url v2.5.4
Downloaded poly1305 v0.8.0
Downloaded getrandom v0.2.15
Downloaded p384 v0.13.0
Downloaded unicode-ident v1.0.12
Downloaded tracing v0.1.41
Downloaded ssh-key v0.6.6
Downloaded phf v0.11.3
Downloaded yansi v0.5.1
Downloaded tracing-core v0.1.34
Downloaded version_check v0.9.4
Downloaded typenum v1.17.0
Downloaded sval_ref v2.14.1
Downloaded mio v0.8.11
Downloaded tree-sitter-html v0.23.2
Downloaded tempfile v3.23.0
Downloaded gix-tempfile v18.0.0
Downloaded yoke-derive v0.7.5
Downloaded utf8parse v0.2.1
Downloaded utf8_iter v1.0.4
Downloaded libgit2-sys v0.17.0+1.8.1
Downloaded utf16_iter v1.0.5
Downloaded ff v0.13.0
Downloaded universal-hash v0.5.1
Downloaded unicode-display-width v0.3.0
Downloaded memmap2 v0.9.8
Downloaded group v0.13.0
Downloaded gix-revision v0.35.0
Downloaded gix-packetline v0.19.1
Downloaded fluent-uri v0.3.2
Downloaded tree-sitter-language v0.1.2
Downloaded tree-sitter-json v0.24.8
Downloaded toml_writer v1.0.2
Downloaded tinyvec_macros v0.1.1
Downloaded tinystr v0.7.6
Downloaded thread_local v1.1.9
Downloaded systemd-journal-logger v2.2.2
Downloaded socks5-client v0.4.1
Downloaded siphasher v0.3.11
Downloaded signature v2.2.0
Downloaded signature v1.6.4
Downloaded snapbox-macros v0.3.8
Downloaded p521 v0.13.3
Downloaded test-log-macros v0.2.18
Downloaded schemars v1.0.4
Downloaded linux-raw-sys v0.9.4
Downloaded clap_builder v4.5.44
Downloaded signal-hook v0.3.18
Downloaded jobserver v0.1.31
Downloaded gix-commitgraph v0.29.0
Downloaded ryu v1.0.17
Downloaded rsa v0.9.6
Downloaded gix-refspec v0.31.0
Downloaded gix-fs v0.16.1
Downloaded prodash v30.0.1
Downloaded subtle v2.5.0
Downloaded hash32 v0.3.1
Downloaded signal-hook-registry v1.4.5
Downloaded shlex v1.3.0
Downloaded lexopt v0.3.0
Downloaded crossterm v0.29.0
Downloaded sval_json v2.14.1
Downloaded structured-logger v1.0.4
Downloaded sqlite3-src v0.5.1
Downloaded streaming-iterator v0.1.9
Downloaded signal-hook-mio v0.2.4
Downloaded num-bigint-dig v0.8.4
Downloaded strsim v0.11.1
Downloaded stable_deref_trait v1.2.0
Downloaded ssh-cipher v0.2.0
Downloaded rand v0.8.5
Downloaded sqlite3-sys v0.15.2
Downloaded emojis v0.6.4
Downloaded scrypt v0.11.0
Downloaded pbkdf2 v0.12.2
Downloaded scopeguard v1.2.0
Downloaded salsa20 v0.10.2
Downloaded maybe-async v0.2.10
Downloaded litrs v0.4.1
Downloaded icu_properties v1.5.1
Downloaded gix-quote v0.6.0
Downloaded rustc-demangle v0.1.26
Downloaded serde_spanned v1.0.0
Downloaded serde_fmt v1.0.3
Downloaded sec1 v0.7.3
Downloaded gix-command v0.6.2
Downloaded crossterm v0.25.0
Downloaded quote v1.0.41
Downloaded proc-macro2 v1.0.101
Downloaded ghash v0.5.1
Downloaded flate2 v1.1.1
Downloaded fancy-regex v0.14.0
Downloaded crypto-bigint v0.5.5
Downloaded chacha20poly1305 v0.10.1
Downloaded rand_core v0.6.4
Downloaded pkcs1 v0.7.5
Downloaded miniz_oxide v0.8.8
Downloaded icu_locid_transform v1.5.0
Downloaded iana-time-zone v0.1.60
Downloaded cyphernet v0.5.2
Downloaded derive_more-impl v2.0.1
Downloaded clap v4.5.44
Downloaded polyval v0.6.2
Downloaded pkcs8 v0.10.2
Downloaded phf_shared v0.11.3
Downloaded parking_lot v0.12.5
Downloaded os_info v3.12.0
Downloaded num-traits v0.2.19
Downloaded litemap v0.7.5
Downloaded fxhash v0.2.1
Downloaded ppv-lite86 v0.2.17
Downloaded pkg-config v0.3.30
Downloaded pin-project-lite v0.2.16
Downloaded der v0.7.9
Downloaded crossbeam-channel v0.5.15
Downloaded once_cell v1.21.3
Downloaded gix-utils v0.3.0
Downloaded elliptic-curve v0.13.8
Downloaded rand_chacha v0.3.1
Downloaded qcheck-macros v1.0.0
Downloaded matchers v0.1.0
Downloaded gix-negotiate v0.21.0
Downloaded clap_complete v4.5.60
Downloaded num-complex v0.4.6
Downloaded inout v0.1.3
Downloaded const-oid v0.9.6
Downloaded keccak v0.1.5
Downloaded num-cmp v0.1.0
Downloaded nu-ansi-term v0.46.0
Downloaded ed25519 v1.5.3
Downloaded diff v0.1.13
Downloaded crossbeam-utils v0.8.19
Downloaded form_urlencoded v1.2.1
Downloaded email_address v0.2.9
Downloaded ctr v0.9.2
Downloaded convert_case v0.7.1
Downloaded cipher v0.4.4
Downloaded num-iter v0.1.45
Downloaded fastrand v2.3.0
Downloaded faster-hex v0.10.0
Downloaded libz-sys v1.1.16
Downloaded clap_lex v0.7.5
Downloaded normalize-line-endings v0.3.0
Downloaded multibase v0.9.1
Downloaded anstream v0.6.13
Downloaded errno v0.3.13
Downloaded dunce v1.0.5
Downloaded displaydoc v0.2.5
Downloaded newline-converter v0.3.0
Downloaded lazy_static v1.5.0
Downloaded human-panic v2.0.3
Downloaded home v0.5.9
Downloaded heck v0.5.0
Downloaded gix-trace v0.1.13
Downloaded gix-shallow v0.5.0
Downloaded gix-sec v0.12.0
Downloaded gix-prompt v0.11.1
Downloaded gix-config-value v0.15.1
Downloaded gix-chunk v0.4.11
Downloaded gix-actor v0.35.4
Downloaded derive_more v2.0.1
Downloaded amplify_syn v2.0.1
Downloaded gix-date v0.10.5
Downloaded ct-codecs v1.1.1
Downloaded colored v2.1.0
Downloaded colorchoice v1.0.0
Downloaded clap_derive v4.5.41
Downloaded chacha20 v0.9.1
Downloaded bytesize v2.0.1
Downloaded mio v1.0.4
Downloaded indexmap v2.2.6
Downloaded icu_normalizer v1.5.0
Downloaded gix-validate v0.10.0
Downloaded escargot v0.5.10
Downloaded env_filter v0.1.3
Downloaded either v1.11.0
Downloaded ecdsa v0.16.9
Downloaded ec25519 v0.1.0
Downloaded dyn-clone v1.0.17
Downloaded data-encoding-macro v0.1.14
Downloaded data-encoding v2.5.0
Downloaded cyphergraphy v0.3.0
Downloaded cypheraddr v0.4.0
Downloaded crypto-common v0.1.6
Downloaded crc32fast v1.5.0
Downloaded console v0.16.0
Downloaded cfg-if v1.0.0
Downloaded byteorder v1.5.0
Downloaded ascii v1.1.0
Downloaded autocfg v1.2.0
Downloaded anstyle v1.0.11
Downloaded amplify_num v0.5.2
Downloaded bstr v1.12.0
Downloaded bit-set v0.8.0
Downloaded bcrypt-pbkdf v0.10.0
Downloaded gix-path v0.10.20
Downloaded env_logger v0.11.8
Downloaded document-features v0.2.11
Downloaded base16ct v0.2.0
Downloaded digest v0.10.7
Downloaded cbc v0.1.2
Downloaded blowfish v0.9.1
Downloaded block-padding v0.3.3
Downloaded anstyle-query v1.0.2
Downloaded bytes v1.10.1
Downloaded arc-swap v1.7.1
Downloaded icu_provider v1.5.0
Downloaded gix-credentials v0.30.0
Downloaded bytecount v0.6.8
Downloaded base64ct v1.6.0
Downloaded base64 v0.21.7
Downloaded base32 v0.4.0
Downloaded backtrace v0.3.75
Downloaded bit-vec v0.8.0
Downloaded anyhow v1.0.82
Downloaded anstyle-parse v0.2.3
Downloaded cc v1.2.2
Downloaded borrow-or-share v0.2.2
Downloaded bitflags v2.9.1
Downloaded bitflags v1.3.2
Downloaded base64 v0.22.1
Downloaded base-x v0.2.11
Downloaded aes v0.8.4
Downloaded aead v0.5.2
Downloaded adler2 v2.0.0
Downloaded amplify v4.6.0
Compiling libc v0.2.174
Compiling proc-macro2 v1.0.101
Compiling quote v1.0.41
Compiling unicode-ident v1.0.12
Checking cfg-if v1.0.0
Compiling version_check v0.9.4
Compiling shlex v1.3.0
Checking memchr v2.7.2
Checking getrandom v0.2.15
Compiling syn v2.0.106
Compiling typenum v1.17.0
Compiling jobserver v0.1.31
Compiling generic-array v0.14.7
Compiling cc v1.2.2
Checking rand_core v0.6.4
Compiling serde v1.0.219
Checking aho-corasick v1.1.3
Checking crypto-common v0.1.6
Checking regex-syntax v0.8.5
Checking smallvec v1.15.1
Compiling thiserror v2.0.17
Checking subtle v2.5.0
Checking cpufeatures v0.2.12
Checking stable_deref_trait v1.2.0
Checking once_cell v1.21.3
Compiling parking_lot_core v0.9.12
Checking scopeguard v1.2.0
Checking fastrand v2.3.0
Checking lock_api v0.4.14
Checking block-buffer v0.10.4
Checking parking_lot v0.12.5
Checking digest v0.10.7
Checking tinyvec_macros v0.1.1
Checking byteorder v1.5.0
Checking tinyvec v1.6.0
Checking regex-automata v0.4.9
Checking gix-trace v0.1.13
Compiling typeid v1.0.3
Checking home v0.5.9
Checking unicode-normalization v0.1.23
Compiling crc32fast v1.5.0
Checking bitflags v2.9.1
Checking gix-utils v0.3.0
Checking zlib-rs v0.5.2
Compiling synstructure v0.13.1
Compiling serde_derive v1.0.219
Compiling thiserror-impl v2.0.17
Checking libz-rs-sys v0.5.2
Checking same-file v1.0.6
Checking walkdir v2.5.0
Checking bstr v1.12.0
Checking flate2 v1.1.1
Checking prodash v30.0.1
Checking itoa v1.0.11
Compiling zerofrom-derive v0.1.6
Compiling yoke-derive v0.7.5
Checking gix-validate v0.10.0
Checking gix-path v0.10.20
Checking gix-features v0.43.1
Compiling heapless v0.8.0
Compiling zerovec-derive v0.10.3
Checking zerofrom v0.1.6
Checking yoke v0.7.5
Checking hash32 v0.3.1
Checking zeroize v1.7.0
Compiling displaydoc v0.2.5
Checking faster-hex v0.10.0
Compiling rustix v1.0.7
Checking zerovec v0.10.4
Checking sha1 v0.10.6
Checking block-padding v0.3.3
Checking linux-raw-sys v0.9.4
Compiling icu_locid_transform_data v1.5.1
Checking writeable v0.5.5
Checking litemap v0.7.5
Compiling pkg-config v0.3.30
Checking tinystr v0.7.6
Checking icu_locid v1.5.0
Checking inout v0.1.3
Checking erased-serde v0.4.6
Checking serde_fmt v1.0.3
Checking sha1-checked v0.10.0
Compiling icu_provider_macros v1.5.0
Checking value-bag-serde1 v1.11.1
Compiling syn v1.0.109
Checking value-bag v1.11.1
Compiling icu_properties_data v1.5.1
Compiling getrandom v0.3.3
Checking log v0.4.27
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 icu_collections v1.5.0
Checking utf16_iter v1.0.5
Checking utf8_iter v1.0.4
Checking icu_properties v1.5.1
Checking write16 v1.0.0
Checking percent-encoding v2.3.1
Checking sha2 v0.10.8
Checking universal-hash v0.5.1
Checking equivalent v1.0.1
Checking opaque-debug v0.3.1
Checking hashbrown v0.14.3
Compiling serde_json v1.0.140
Checking form_urlencoded v1.2.1
Checking indexmap v2.2.6
Checking tempfile v3.23.0
Compiling autocfg v1.2.0
Compiling vcpkg v0.2.15
Checking icu_normalizer v1.5.0
Compiling ref-cast v1.0.24
Checking ryu v1.0.17
Checking idna_adapter v1.2.0
Compiling libz-sys v1.1.16
Checking idna v1.0.3
Checking url v2.5.4
Compiling amplify_syn v2.0.1
Compiling num-traits v0.2.19
Compiling ref-cast-impl v1.0.24
Checking signature v1.6.4
Checking ed25519 v1.5.3
Checking aead v0.5.2
Checking ascii v1.1.0
Compiling thiserror v1.0.69
Checking amplify_num v0.5.2
Checking dyn-clone v1.0.17
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
Checking hmac v0.12.1
Compiling serde_derive_internals v0.29.1
Checking keccak v0.1.5
Checking base64ct v1.6.0
Checking amplify v4.6.0
Checking pem-rfc7468 v0.7.0
Checking sha3 v0.10.8
Checking pbkdf2 v0.12.2
Compiling schemars_derive v1.0.4
Checking cyphergraphy v0.3.0
Checking ghash v0.5.1
Checking aes v0.8.4
Checking ctr v0.9.2
Checking rand v0.8.5
Compiling crossbeam-utils v0.8.19
Checking base32 v0.4.0
Compiling data-encoding v2.5.0
Checking cypheraddr v0.4.0
Checking schemars v1.0.4
Compiling data-encoding-macro-internal v0.1.12
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 cbc v0.1.2
Checking blowfish v0.9.1
Checking bcrypt-pbkdf v0.10.0
Checking ssh-cipher v0.2.0
Checking data-encoding-macro v0.1.14
Checking noise-framework v0.4.0
Checking socks5-client v0.4.1
Checking signature v2.2.0
Checking base-x v0.2.11
Checking multibase v0.9.1
Checking ssh-key v0.6.6
Checking cyphernet v0.5.2
Checking crossbeam-channel v0.5.15
Checking radicle-ssh v0.10.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-ssh)
Checking jiff v0.2.15
Checking lazy_static v1.5.0
Checking anstyle-query v1.0.2
Checking siphasher v1.0.1
Checking nonempty v0.9.0
Checking radicle-git-metadata v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-git-metadata)
Checking radicle-dag v0.10.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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 gix-date v0.10.5
Checking anstyle-parse v0.2.3
Checking gix-actor v0.35.4
Checking radicle-git-ref-format v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-git-ref-format)
Checking iana-time-zone v0.1.60
Checking colorchoice v1.0.0
Checking anstyle v1.0.11
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 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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 tree-sitter-language v0.1.2
Checking base64 v0.21.7
Checking fast-glob v0.3.3
Checking gix-chunk v0.4.11
Checking gix-commitgraph v0.29.0
Checking gix-fs v0.16.1
Checking gix-tempfile v18.0.0
Checking mio v1.0.4
Checking gix-revwalk v0.21.0
Checking gix-quote v0.6.0
Checking sem_safe v0.2.0
Checking errno v0.3.13
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 adler2 v2.0.0
Checking gimli v0.31.1
Checking miniz_oxide v0.8.8
Checking gix-prompt v0.11.1
Checking addr2line v0.24.2
Checking radicle-signals v0.11.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-signals)
Checking gix-revision v0.35.0
Checking gix-traverse v0.47.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
Checking regex v1.11.1
Compiling maybe-async v0.2.10
Compiling portable-atomic v1.11.0
Checking arc-swap v1.7.1
Checking gix-odb v0.70.0
Checking gix-protocol v0.51.0
Compiling derive_more-impl v2.0.1
Checking uuid v1.16.0
Checking bitflags v1.3.2
Compiling litrs v0.4.1
Checking bytes v1.10.1
Checking unicode-width v0.2.1
Compiling document-features v0.2.11
Checking derive_more v2.0.1
Checking console v0.16.0
Checking crossterm v0.25.0
Checking newline-converter v0.3.0
Checking snapbox-macros v0.3.8
Checking salsa20 v0.10.2
Checking fxhash v0.2.1
Checking similar v2.5.0
Checking unit-prefix v0.5.1
Checking clap_lex v0.7.5
Compiling heck v0.5.0
Checking siphasher v0.3.11
Checking unicode-width v0.1.11
Checking strsim v0.11.1
Checking normalize-line-endings v0.3.0
Checking streaming-iterator v0.1.9
Checking snapbox v0.4.17
Checking clap_builder v4.5.44
Checking inquire v0.7.5
Compiling clap_derive v4.5.41
Checking sqlite3-sys v0.15.2
Checking sqlite v0.32.0
Checking radicle-crypto v0.14.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-crypto)
Checking bloomy v1.2.0
Checking indicatif v0.18.0
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-typescript v0.23.2
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-ruby v0.23.1
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-python v0.23.4
Compiling tree-sitter-rust v0.23.2
Compiling anyhow v1.0.82
Checking toml_writer v1.0.2
Checking pin-project-lite v0.2.16
Checking toml v0.9.5
Checking tokio v1.47.1
Checking clap v4.5.44
Checking os_info v3.12.0
Checking diff v0.1.13
Compiling radicle-node v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-node)
Checking yansi v0.5.1
Compiling radicle-cli v0.17.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli)
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 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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
Checking timeago v0.4.2
Compiling escargot v0.5.10
Checking lexopt v0.3.0
Checking num-bigint v0.4.6
Compiling ahash v0.8.11
Checking num-iter v0.1.45
Checking num-complex v0.4.6
Checking env_filter v0.1.3
Checking bit-vec v0.8.0
Checking borrow-or-share v0.2.2
Checking zerocopy v0.7.35
Checking num-rational v0.4.2
Checking fluent-uri v0.3.2
Checking num v0.4.3
Checking bit-set v0.8.0
Checking env_logger v0.11.8
Checking phf_shared v0.11.3
Compiling test-log-macros v0.2.18
Checking outref v0.5.2
Compiling radicle-remote-helper v0.14.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-remote-helper)
Checking vsimd v0.8.0
Compiling paste v1.0.15
Checking uuid-simd v0.8.0
Checking test-log v0.2.18
Checking phf v0.11.3
Checking referencing v0.30.0
Checking fancy-regex v0.14.0
Checking fraction v0.15.3
Checking email_address v0.2.9
Checking bytecount v0.6.8
Checking base64 v0.22.1
Checking num-cmp v0.1.0
Checking emojis v0.6.4
Checking jsonschema v0.30.0
Checking git2 v0.19.0
Checking radicle-oid v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-oid)
Checking radicle-term v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-term)
Checking radicle-cob v0.17.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cob)
Checking radicle v0.20.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle)
Checking radicle-fetch v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-fetch)
Checking radicle-cli-test v0.13.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli-test)
Checking radicle-protocol v0.4.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-protocol)
Checking radicle-schemars v0.6.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 51.89s
+ 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 aho-corasick v1.1.3
Compiling crypto-common v0.1.6
Compiling regex-syntax v0.8.5
Compiling smallvec v1.15.1
Compiling thiserror v2.0.17
Compiling subtle v2.5.0
Compiling stable_deref_trait v1.2.0
Compiling cpufeatures v0.2.12
Compiling once_cell v1.21.3
Compiling fastrand v2.3.0
Compiling scopeguard v1.2.0
Compiling lock_api v0.4.14
Compiling parking_lot_core v0.9.12
Compiling regex-automata v0.4.9
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 gix-trace v0.1.13
Compiling home v0.5.9
Compiling bitflags v2.9.1
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 gix-utils v0.3.0
Compiling walkdir v2.5.0
Compiling prodash v30.0.1
Compiling serde_fmt v1.0.3
Compiling itoa v1.0.11
Compiling value-bag-serde1 v1.11.1
Compiling zerofrom v0.1.6
Compiling bstr v1.12.0
Compiling value-bag v1.11.1
Compiling gix-validate v0.10.0
Compiling gix-path v0.10.20
Compiling yoke v0.7.5
Compiling log v0.4.27
Compiling hash32 v0.3.1
Compiling zeroize v1.7.0
Compiling libz-rs-sys v0.5.2
Compiling zerovec v0.10.4
Compiling flate2 v1.1.1
Compiling gix-features v0.43.1
Compiling heapless v0.8.0
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 faster-hex v0.10.0
Compiling linux-raw-sys v0.9.4
Compiling icu_locid v1.5.0
Compiling inout v0.1.3
Compiling sha1-checked v0.10.0
Compiling gix-hash v0.19.0
Compiling icu_locid_transform_data v1.5.1
Compiling cipher v0.4.4
Compiling icu_provider v1.5.0
Compiling icu_properties_data v1.5.1
Compiling getrandom v0.3.3
Compiling rustix v1.0.7
Compiling icu_locid_transform v1.5.0
Compiling icu_collections 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 icu_properties v1.5.1
Compiling sha2 v0.10.8
Compiling universal-hash v0.5.1
Compiling hashbrown v0.14.3
Compiling equivalent v1.0.1
Compiling opaque-debug v0.3.1
Compiling form_urlencoded v1.2.1
Compiling ryu v1.0.17
Compiling tempfile v3.23.0
Compiling indexmap v2.2.6
Compiling icu_normalizer v1.5.0
Compiling libz-sys v1.1.16
Compiling serde_json v1.0.140
Compiling idna_adapter v1.2.0
Compiling signature v1.6.4
Compiling idna v1.0.3
Compiling ed25519 v1.5.3
Compiling ref-cast v1.0.24
Compiling aead v0.5.2
Compiling url v2.5.4
Compiling amplify_num v0.5.2
Compiling dyn-clone v1.0.17
Compiling ascii v1.1.0
Compiling ct-codecs v1.1.1
Compiling num-traits v0.2.19
Compiling ec25519 v0.1.0
Compiling amplify v4.6.0
Compiling poly1305 v0.8.0
Compiling chacha20 v0.9.1
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 base64ct v1.6.0
Compiling keccak v0.1.5
Compiling pbkdf2 v0.12.2
Compiling sha3 v0.10.8
Compiling pem-rfc7468 v0.7.0
Compiling ghash v0.5.1
Compiling ctr v0.9.2
Compiling aes v0.8.4
Compiling rand v0.8.5
Compiling base32 v0.4.0
Compiling cypheraddr v0.4.0
Compiling qcheck v1.0.0
Compiling aes-gcm v0.10.3
Compiling ssh-encoding v0.2.0
Compiling schemars v1.0.4
Compiling chacha20poly1305 v0.10.1
Compiling git-ref-format-core v0.6.0
Compiling cbc v0.1.2
Compiling blowfish v0.9.1
Compiling data-encoding v2.5.0
Compiling bcrypt-pbkdf v0.10.0
Compiling data-encoding-macro v0.1.14
Compiling ssh-cipher v0.2.0
Compiling noise-framework v0.4.0
Compiling socks5-client v0.4.1
Compiling crossbeam-utils v0.8.19
Compiling base-x v0.2.11
Compiling signature v2.2.0
Compiling ssh-key v0.6.6
Compiling crossbeam-channel v0.5.15
Compiling multibase v0.9.1
Compiling cyphernet v0.5.2
Compiling radicle-ssh v0.10.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-ssh)
Compiling lazy_static v1.5.0
Compiling jiff v0.2.15
Compiling anstyle-query v1.0.2
Compiling siphasher v1.0.1
Compiling radicle-dag v0.10.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-dag)
Compiling nonempty v0.9.0
Compiling radicle-git-metadata v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-git-metadata)
Compiling winnow v0.7.13
Compiling utf8parse v0.2.1
Compiling hashbrown v0.15.5
Compiling gix-hashtable v0.9.0
Compiling gix-date v0.10.5
Compiling gix-actor v0.35.4
Compiling anstyle-parse v0.2.3
Compiling radicle-git-ref-format v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-git-ref-format)
Compiling anstyle v1.0.11
Compiling iana-time-zone v0.1.60
Compiling colorchoice v1.0.0
Compiling anstream v0.6.13
Compiling chrono v0.4.38
Compiling gix-object v0.50.2
Compiling colored v2.1.0
Compiling radicle-localtime v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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 fast-glob v0.3.3
Compiling base64 v0.21.7
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 shell-words v1.1.0
Compiling unicode-segmentation v1.11.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 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-signals)
Compiling addr2line v0.24.2
Compiling object v0.36.7
Compiling gix-revision v0.35.0
Compiling gix-traverse v0.47.0
Compiling gix-diff v0.53.0
Compiling gix-packetline v0.19.1
Compiling mio v0.8.11
Compiling sqlite3-sys v0.15.2
Compiling tree-sitter v0.24.4
Compiling sqlite v0.32.0
Compiling rustc-demangle v0.1.26
Compiling radicle-crypto v0.14.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-crypto)
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 gix-refspec v0.31.0
Compiling gix-credentials v0.30.0
Compiling gix-shallow v0.5.0
Compiling gix-ref v0.53.1
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-protocol v0.51.0
Compiling gix-odb v0.70.0
Compiling derive_more-impl v2.0.1
Compiling uuid v1.16.0
Compiling bytes v1.10.1
Compiling unicode-width v0.2.1
Compiling bitflags v1.3.2
Compiling crossterm v0.25.0
Compiling console v0.16.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 unicode-width v0.1.11
Compiling similar v2.5.0
Compiling strsim v0.11.1
Compiling siphasher v0.3.11
Compiling normalize-line-endings v0.3.0
Compiling streaming-iterator v0.1.9
Compiling clap_lex v0.7.5
Compiling unit-prefix v0.5.1
Compiling indicatif v0.18.0
Compiling clap_builder v4.5.44
Compiling snapbox v0.4.17
Compiling bloomy v1.2.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 toml_datetime v0.7.0
Compiling serde_spanned v1.0.0
Compiling tree-sitter-rust v0.23.2
Compiling tree-sitter-python v0.23.4
Compiling tree-sitter-go v0.23.4
Compiling tree-sitter-toml-ng v0.6.0
Compiling tree-sitter-md v0.3.2
Compiling tree-sitter-html v0.23.2
Compiling tree-sitter-c v0.23.2
Compiling tree-sitter-json v0.24.8
Compiling tree-sitter-css v0.23.1
Compiling tree-sitter-bash v0.23.3
Compiling tree-sitter-typescript v0.23.2
Compiling tree-sitter-ruby v0.23.1
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 yansi v0.5.1
Compiling diff v0.1.13
Compiling radicle-node v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-node)
Compiling radicle-cli v0.17.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli)
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 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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 timeago v0.4.2
Compiling lexopt v0.3.0
Compiling escargot v0.5.10
Compiling num-bigint v0.4.6
Compiling num-iter v0.1.45
Compiling num-complex v0.4.6
Compiling env_filter v0.1.3
Compiling bit-vec v0.8.0
Compiling num-rational v0.4.2
Compiling borrow-or-share v0.2.2
Compiling zerocopy v0.7.35
Compiling num v0.4.3
Compiling ahash v0.8.11
Compiling fluent-uri v0.3.2
Compiling bit-set v0.8.0
Compiling env_logger v0.11.8
Compiling phf_shared v0.11.3
Compiling radicle-remote-helper v0.14.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-remote-helper)
Compiling outref v0.5.2
Compiling vsimd v0.8.0
Compiling test-log v0.2.18
Compiling referencing v0.30.0
Compiling phf v0.11.3
Compiling uuid-simd v0.8.0
Compiling fancy-regex v0.14.0
Compiling fraction v0.15.3
Compiling email_address v0.2.9
Compiling bytecount v0.6.8
Compiling base64 v0.22.1
Compiling num-cmp v0.1.0
Compiling emojis v0.6.4
Compiling jsonschema v0.30.0
Compiling git2 v0.19.0
Compiling radicle-oid v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-oid)
Compiling radicle-term v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-term)
Compiling radicle-cob v0.17.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cob)
Compiling radicle v0.20.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle)
Compiling radicle-fetch v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-fetch)
Compiling radicle-protocol v0.4.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-protocol)
Compiling radicle-cli-test v0.13.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli-test)
Compiling radicle-schemars v0.6.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-schemars)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 12s
+ cargo doc --workspace --no-deps --all-features
Checking regex-automata v0.4.9
Compiling syn v1.0.109
Checking idna v1.0.3
Checking radicle-ssh v0.10.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-ssh)
Compiling num-traits v0.2.19
Checking url v2.5.4
Checking radicle-dag v0.10.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-dag)
Checking radicle-git-metadata v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-git-metadata)
Checking git2 v0.19.0
Checking chrono v0.4.38
Checking bstr v1.12.0
Checking gix-validate v0.10.0
Checking gix-path v0.10.20
Compiling amplify_syn v2.0.1
Checking git-ref-format-core v0.6.0
Checking gix-features v0.43.1
Checking gix-hash v0.19.0
Compiling data-encoding-macro-internal v0.1.12
Checking gix-date v0.10.5
Checking radicle-git-ref-format v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-git-ref-format)
Checking gix-actor v0.35.4
Compiling amplify_derive v4.0.0
Checking data-encoding-macro v0.1.14
Checking gix-hashtable v0.9.0
Checking multibase v0.9.1
Checking gix-object v0.50.2
Checking radicle-oid v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-oid)
Checking gix-commitgraph v0.29.0
Checking radicle-localtime v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-localtime)
Checking gix-fs v0.16.1
Checking gix-quote v0.6.0
Checking gix-tempfile v18.0.0
Checking gix-command v0.6.2
Checking gix-lock v18.0.0
Checking gix-url v0.32.0
Checking gix-config-value v0.15.1
Checking gix-revwalk v0.21.0
Checking gix-diff v0.53.0
Checking gix-traverse v0.47.0
Checking gix-prompt v0.11.1
Checking gix-revision v0.35.0
Checking radicle-signals v0.11.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-signals)
Checking gix-packetline v0.19.1
Checking regex v1.11.1
Checking gix-transport v0.48.0
Checking gix-refspec v0.31.0
Checking amplify v4.6.0
Checking tree-sitter v0.24.4
Checking gix-pack v0.60.0
Checking gix-credentials v0.30.0
Checking cyphergraphy v0.3.0
Checking gix-negotiate v0.21.0
Checking gix-ref v0.53.1
Checking cypheraddr v0.4.0
Checking noise-framework v0.4.0
Checking gix-shallow v0.5.0
Checking socks5-client v0.4.1
Checking uuid v1.16.0
Checking cyphernet v0.5.2
Checking radicle-crypto v0.14.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-crypto)
Compiling radicle-cli v0.17.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli)
Checking human-panic v2.0.3
Checking tree-sitter-toml-ng v0.6.0
Checking radicle-term v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-term)
Checking gix-protocol v0.51.0
Checking gix-odb v0.70.0
Checking radicle-cob v0.17.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cob)
Checking tree-sitter-highlight v0.24.4
Checking radicle-systemd v0.11.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-systemd)
Documenting radicle-systemd v0.11.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-systemd)
Documenting radicle-cob v0.17.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cob)
Checking radicle v0.20.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle)
Documenting radicle v0.20.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle)
Documenting radicle-crypto v0.14.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-crypto)
Documenting radicle-term v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-term)
Documenting radicle-signals v0.11.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-signals)
Documenting radicle-oid v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-oid)
Documenting radicle-git-ref-format v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-git-ref-format)
Documenting radicle-localtime v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-localtime)
Documenting radicle-ssh v0.10.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-ssh)
Documenting radicle-dag v0.10.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-dag)
Documenting radicle-git-metadata v0.1.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-git-metadata)
Checking radicle-fetch v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-fetch)
Documenting radicle-cli v0.17.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli)
Documenting radicle-schemars v0.6.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-schemars)
Checking radicle-protocol v0.4.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-protocol)
Documenting radicle-protocol v0.4.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-protocol)
Documenting radicle-node v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-node)
Documenting radicle-fetch v0.16.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-fetch)
Documenting radicle-cli-test v0.13.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli-test)
Documenting radicle-remote-helper v0.14.0 (/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-remote-helper)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.15s
Generated /2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/doc/radicle/index.html and 19 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-7cc67cebd7b07c93)
running 237 tests
test canonical::formatter::test::ascii_control_characters ... ok
test canonical::formatter::test::ordered_nested_object ... ok
test cob::cache::migrations::_2::tests::test_migration_2 ... ok
test canonical::formatter::test::securesystemslib_asserts ... ok
test cob::cache::tests::test_check_version ... ok
test cob::cache::tests::test_migrate_to ... ok
test cob::cache::migrations::_2::tests::test_patch_json_deserialization ... ok
test cob::common::test::test_color ... ok
test cob::common::test::test_title ... ok
test cob::common::test::test_emojis ... 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::identity::test::test_identity_updates_concurrent_outdated ... ok
test cob::issue::test::test_embeds_edit ... 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_concurrency ... ok
test cob::issue::test::test_invalid_cob ... ok
test cob::issue::test::test_issue_comment_redact ... ok
test cob::issue::test::test_issue_all ... ok
test cob::issue::test::test_issue_create_and_assign ... ok
test cob::issue::test::test_issue_comment ... 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_reassign ... ok
test cob::issue::test::test_issue_create_and_unassign ... ok
test cob::issue::test::test_issue_edit ... ok
test cob::issue::test::test_issue_edit_description ... ok
test cob::issue::test::test_issue_multilines ... 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_label ... 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::patch::cache::tests::test_list ... ok
test cob::patch::cache::tests::test_list_by_status ... ok
test cob::issue::test::test_issue_reply ... 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::cache::tests::test_remove ... ok
test cob::patch::cache::tests::test_counts ... ok
test cob::patch::test::test_patch_create_and_get ... ok
test cob::patch::test::test_patch_discussion ... ok
test cob::patch::test::test_patch_merge ... ok
test cob::patch::test::test_patch_review ... ok
test cob::patch::test::test_patch_redact ... ok
test cob::patch::test::test_patch_review_comment ... ok
test cob::patch::test::test_patch_review_edit ... ok
test cob::patch::test::test_patch_review_duplicate ... 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::patch::test::test_patch_review_revision_redact ... ok
test cob::stream::tests::test_all_from ... ok
test cob::stream::tests::test_all_until ... ok
test cob::stream::tests::test_all_from_until ... ok
test cob::stream::tests::test_regression_from_until ... ok
test cob::stream::tests::test_from_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::patch::test::test_patch_update ... ok
test git::canonical::quorum::test::merge_base_commutative ... ok
test git::canonical::quorum::test::test_merge_bases ... ok
test cob::thread::tests::test_timeline ... 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 git::canonical::tests::test_quorum_different_types ... ok
test git::canonical::rules::tests::test_rule_validate_failures ... 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 identity::doc::id::test::prop_from_str ... ok
test cob::thread::tests::prop_ordering ... 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 git::canonical::tests::test_quorum_properties ... ok
test node::features::test::test_operations ... ok
test node::notifications::store::test::test_branch_notifications ... ok
test node::db::test::test_version ... 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::policy::store::test::test_follow_and_unfollow_node ... ok
test node::notifications::store::test::test_notification_status ... 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_node_aliases ... 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_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_insert_and_get_resources ... ok
test node::routing::test::test_remove_many ... ok
test node::routing::test::test_remove_redundant ... ok
test node::routing::test::test_update_existing_multi ... ok
test node::sync::announce::test::all_synced_nodes_are_preferred_seeds ... ok
test node::sync::announce::test::announcer_adapts_target_to_reach ... ok
test node::routing::test::test_prune ... 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::cannot_construct_announcer ... 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::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_unsynced_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_synced_set ... ok
test node::sync::announce::test::synced_with_local_node_is_ignored ... ok
test node::sync::announce::test::preferred_seeds_already_synced ... 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 node::sync::fetch::test::all_nodes_are_candidates ... ok
test node::sync::fetch::test::all_nodes_are_fetchable ... ok
test node::sync::fetch::test::could_not_reach_target ... ok
test node::sync::fetch::test::ignores_duplicates_and_local_node ... ok
test node::sync::fetch::test::preferred_seeds_target_returned_over_replicas ... ok
test node::sync::fetch::test::reaches_target_of_preferred_seeds ... ok
test node::sync::fetch::test::reaches_target_of_max_replicas ... ok
test node::sync::fetch::test::reaches_target_of_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 profile::test::canonicalize_home ... ok
test profile::test::test_config ... ok
test cob::patch::cache::tests::test_find_by_revision ... ok
test rad::tests::test_checkout ... ok
test rad::tests::test_init ... ok
test rad::tests::test_fork ... ok
test storage::git::tests::test_references_of ... ok
test profile::config::test::schema ... 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 storage::git::tests::test_sign_refs ... 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. 237 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.54s
Running unittests src/lib.rs (target/debug/deps/radicle_cli-7b12fa36e63fe2a3)
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_url ... ok
test commands::clone::args::test::should_parse_rid_urn ... ok
test commands::cob::args::test::should_allow_log_pretty_format ... ok
test commands::cob::args::test::should_allow_log_json_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::cob::args::test::should_not_allow_show_pretty_format ... ok
test commands::cob::args::test::should_not_allow_update_pretty_format ... ok
test commands::fork::args::test::should_not_parse_rid_url ... ok
test commands::fork::args::test::should_parse_rid_non_urn ... 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::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::init::args::test::should_not_parse_rid_url ... ok
test commands::id::args::test::should_not_parse_single_payloads ... ok
test commands::id::args::test::should_parse_single_payload ... ok
test commands::id::args::test::should_parse_multiple_payloads ... ok
test commands::inspect::test::test_tree ... ok
test commands::init::args::test::should_parse_rid_non_urn ... ok
test commands::init::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 commands::publish::args::test::should_parse_rid_urn ... ok
test terminal::args::test::should_not_parse ... ok
test terminal::args::test::should_parse_nid ... ok
test commands::watch::args::test::should_parse_ref_str ... ok
test terminal::args::test::should_parse_rid ... 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-4f8659fc7c8c433a)
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-65f2d5b579fbabfb)
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_all ... ok
test rad_clone_unknown ... ok
test rad_cob_log ... ok
test rad_cob_multiset ... ok
test rad_clone_directory ... 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_diff ... ok
test rad_config ... ok
test rad_cob_update_identity ... 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_fetch ... ok
test rad_fork ... ok
test rad_init_private_seed ... 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_init_sync_and_clone ... ok
test rad_init_sync_timeout ... ok
test rad_patch_diff ... 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_open_explore ... ok
test rad_patch_via_push ... FAILED
test rad_publish ... FAILED
test rad_review_by_hunk ... FAILED
test rad_seed_and_follow ... ok
test rad_remote ... ok
test rad_self ... ok
test rad_seed_many ... 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 ----
1788813147 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp5IGeta/alice/work"]
1788813147 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmp5IGeta/alice/work`..
1788813148 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmp5IGeta/alice/work`..
1788813148 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmp5IGeta/alice/work`..
1788813148 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmp5IGeta/alice/work`..
1788813148 git_push_canonical_annotated_tags node: Opening policy database..
1788813148 git_push_canonical_annotated_tags node: Default seeding policy set to 'block (all)'
1788813148 git_push_canonical_annotated_tags node: Initializing service (Test)..
1788813148 git_push_canonical_annotated_tags node: Opening node database..
1788813148 git_push_canonical_annotated_tags node: Address book is empty. Adding bootstrap nodes..
1788813148 git_push_canonical_annotated_tags node: 0 nodes added to address book
1788813148 git_push_canonical_annotated_tags service: Init @1788813148000
1788813148 git_push_canonical_annotated_tags service: Empty refs database, populating from storage..
1788813148 git_push_canonical_annotated_tags service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813148 git_push_canonical_annotated_tags service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1788813148 git_push_canonical_annotated_tags service: Not enough available peers to connect to (available=0, wanted=8)
1788813148 git_push_canonical_annotated_tags reactor-controller: Initializing reactor thread...
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:35769..
1788813148 git_push_canonical_annotated_tags node: Binding control socket /tmp/.tmp5IGeta/alice/.radicle/node/control.sock..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmp5IGeta/alice/.radicle..
1788813148 git_push_canonical_annotated_tags node: Opening policy database..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813148 git_push_canonical_annotated_tags node: Default seeding policy set to 'block (all)'
1788813148 git_push_canonical_annotated_tags node: Initializing service (Test)..
1788813148 git_push_canonical_annotated_tags node: Opening node database..
1788813148 git_push_canonical_annotated_tags node: Address book is empty. Adding bootstrap nodes..
1788813148 git_push_canonical_annotated_tags node: 0 nodes added to address book
1788813148 git_push_canonical_annotated_tags service: Init @1788813148000
1788813148 git_push_canonical_annotated_tags service: Empty refs database, populating from storage..
1788813148 git_push_canonical_annotated_tags service: Not enough available peers to connect to (available=0, wanted=8)
1788813148 git_push_canonical_annotated_tags reactor-controller: Initializing reactor thread...
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:37097..
1788813148 git_push_canonical_annotated_tags node: Binding control socket /tmp/.tmp5IGeta/bob/.radicle/node/control.sock..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmp5IGeta/bob/.radicle..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Connect(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, 0.0.0.0:35769, ConnectOptions { persistent: false, timeout: 30s })
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connecting to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:35769)..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Attempted connection to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:35769)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Registering outbound transport for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Outbound peer resource registered for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound connection from 127.0.0.1:44108..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Accepted inbound connection from 127.0.0.1:44108..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound peer resource registered
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (127.0.0.1:44108) (Inbound)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1788726748154..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:35769) (Outbound)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1788726748156..
1788813148 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1788813148 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813148000)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813148000)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813148000)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813148000)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1788813148000
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813148001)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1788813148000
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813148002)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813148001)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813148002)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1788813148 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmp5IGeta/bob/work..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [outbound connected] (all remotes)..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 12..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (7ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (16ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (23ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (23ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (24ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (30ms)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (30ms)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 12 exited with result Ok(())
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813148 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 } } }) }
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813148416)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813148417)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813148416)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813148416)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813148417)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813148417)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1788813148417)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813148 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1788813148 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1788813148 test: rad clone: ✓ Target met: 1 seed(s)
1788813148 test: rad clone: ✓ Creating checkout in ./heartwood..
1788813148 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1788813148 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmp5IGeta/bob/work/heartwood/
1788813148 test: rad clone: ╭────────────────────────────────────╮
1788813148 test: rad clone: │ heartwood │
1788813148 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1788813148 test: rad clone: │ 0 issues · 0 patches │
1788813148 test: rad clone: ╰────────────────────────────────────╯
1788813148 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1788813148 test: Ran command `rad clone` (status=0)
1788813148 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp5IGeta"]
1788813148 test: git-push-canonical-annotated-tags.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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/.tmp5IGeta/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 + diff --git a/radicle.json b/radicle.json
14 + index 600d27b..9e22a95 100644
15 + --- a/radicle.json
16 + +++ b/radicle.json
13 17 | @@ -1,13 +1,25 @@
14 18 | {
15 19 | "payload": {
16 20 | + "xyz.radicle.crefs": {
17 21 | + "rules": {
⋮
34 38 | "delegates": [
35 39 | "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
36 40 | ],
37 41 | "threshold": 1
38 42 | }
Exit status: 0
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
1788813148 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1788813148 git_push_canonical_annotated_tags reactor::controller: Initiating reactor shutdown...
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Inbound, write_intent: false } with token 2
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1788813148 git_push_canonical_annotated_tags reactor::controller: Initiating reactor shutdown...
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- git_push_canonical_lightweight_tags stdout ----
1788813147 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp13LzNP/alice/work"]
1788813147 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmp13LzNP/alice/work`..
1788813148 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmp13LzNP/alice/work`..
1788813148 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmp13LzNP/alice/work`..
1788813148 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmp13LzNP/alice/work`..
1788813148 git_push_canonical_lightweight_tags node: Opening policy database..
1788813148 git_push_canonical_lightweight_tags node: Default seeding policy set to 'block (all)'
1788813148 git_push_canonical_lightweight_tags node: Initializing service (Test)..
1788813148 git_push_canonical_lightweight_tags node: Opening node database..
1788813148 git_push_canonical_lightweight_tags node: Address book is empty. Adding bootstrap nodes..
1788813148 git_push_canonical_lightweight_tags node: 0 nodes added to address book
1788813148 git_push_canonical_lightweight_tags service: Init @1788813148000
1788813148 git_push_canonical_lightweight_tags service: Empty refs database, populating from storage..
1788813148 git_push_canonical_lightweight_tags service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813148 git_push_canonical_lightweight_tags service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1788813148 git_push_canonical_lightweight_tags service: Not enough available peers to connect to (available=0, wanted=8)
1788813148 git_push_canonical_lightweight_tags reactor-controller: Initializing reactor thread...
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:34005..
1788813148 git_push_canonical_lightweight_tags node: Binding control socket /tmp/.tmp13LzNP/alice/.radicle/node/control.sock..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmp13LzNP/alice/.radicle..
1788813148 git_push_canonical_lightweight_tags node: Opening policy database..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813148 git_push_canonical_lightweight_tags node: Default seeding policy set to 'block (all)'
1788813148 git_push_canonical_lightweight_tags node: Initializing service (Test)..
1788813148 git_push_canonical_lightweight_tags node: Opening node database..
1788813148 git_push_canonical_lightweight_tags node: Address book is empty. Adding bootstrap nodes..
1788813148 git_push_canonical_lightweight_tags node: 0 nodes added to address book
1788813148 git_push_canonical_lightweight_tags service: Init @1788813148000
1788813148 git_push_canonical_lightweight_tags service: Empty refs database, populating from storage..
1788813148 git_push_canonical_lightweight_tags service: Not enough available peers to connect to (available=0, wanted=8)
1788813148 git_push_canonical_lightweight_tags reactor-controller: Initializing reactor thread...
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:37425..
1788813148 git_push_canonical_lightweight_tags node: Binding control socket /tmp/.tmp13LzNP/bob/.radicle/node/control.sock..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmp13LzNP/bob/.radicle..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Connect(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, 0.0.0.0:34005, ConnectOptions { persistent: false, timeout: 30s })
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connecting to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:34005)..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Attempted connection to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:34005)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Registering outbound transport for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Outbound peer resource registered for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound connection from 127.0.0.1:53556..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Accepted inbound connection from 127.0.0.1:53556..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound peer resource registered
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:34005) (Outbound)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1788726748211..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (127.0.0.1:53556) (Inbound)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1788726748212..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813148000)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813148000)
1788813148 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1788813148 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813148000)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813148000)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1788813148000
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813148001)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1788813148000
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813148002)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813148001)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813148002)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1788813148 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmp13LzNP/bob/work..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [outbound connected] (all remotes)..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 12..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (5ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (10ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (14ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (17ms)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 12 exited with result Ok(())
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (14ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (15ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (19ms)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813148 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 } } }) }
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813148458)
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813148459)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813148458)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813148458)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813148459)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813148459)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1788813148459)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813148 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1788813148 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1788813148 test: rad clone: ✓ Target met: 1 seed(s)
1788813148 test: rad clone: ✓ Creating checkout in ./heartwood..
1788813148 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1788813148 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813148 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmp13LzNP/bob/work/heartwood/
1788813148 test: rad clone: ╭────────────────────────────────────╮
1788813148 test: rad clone: │ heartwood │
1788813148 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1788813148 test: rad clone: │ 0 issues · 0 patches │
1788813148 test: rad clone: ╰────────────────────────────────────╯
1788813148 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1788813148 test: Ran command `rad clone` (status=0)
1788813148 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp13LzNP"]
1788813148 test: git-push-canonical-lightweight-tags.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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/.tmp13LzNP/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 + diff --git a/radicle.json b/radicle.json
14 + index 600d27b..9e22a95 100644
15 + --- a/radicle.json
16 + +++ b/radicle.json
13 17 | @@ -1,13 +1,25 @@
14 18 | {
15 19 | "payload": {
16 20 | + "xyz.radicle.crefs": {
17 21 | + "rules": {
⋮
34 38 | "delegates": [
35 39 | "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
36 40 | ],
37 41 | "threshold": 1
38 42 | }
Exit status: 0
1788813148 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1788813148 git_push_canonical_lightweight_tags reactor::controller: Initiating reactor shutdown...
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Inbound, write_intent: false } with token 2
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1788813148 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813148 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1788813148 git_push_canonical_lightweight_tags reactor::controller: Initiating reactor shutdown...
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1788813148 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id stdout ----
1788813153 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpK99Ji7/alice/work"]
1788813153 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpK99Ji7/alice/work`..
1788813154 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmpK99Ji7/alice/work`..
1788813154 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmpK99Ji7/alice/work`..
1788813154 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpK99Ji7/alice/work`..
1788813154 rad_id node: Opening policy database..
1788813154 rad_id node: Default seeding policy set to 'block (all)'
1788813154 rad_id node: Initializing service (Test)..
1788813154 rad_id node: Opening node database..
1788813154 rad_id node: Address book is empty. Adding bootstrap nodes..
1788813154 rad_id node: 0 nodes added to address book
1788813154 rad_id service: Init @1788813154000
1788813154 rad_id service: Empty refs database, populating from storage..
1788813154 rad_id service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813154 rad_id service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1788813154 rad_id service: Not enough available peers to connect to (available=0, wanted=8)
1788813154 rad_id reactor-controller: Initializing reactor thread...
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:46799..
1788813154 rad_id node: Binding control socket /tmp/.tmpK99Ji7/alice/.radicle/node/control.sock..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpK99Ji7/alice/.radicle..
1788813154 rad_id node: Opening policy database..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813154 rad_id node: Default seeding policy set to 'block (all)'
1788813154 rad_id node: Initializing service (Test)..
1788813154 rad_id node: Opening node database..
1788813154 rad_id node: Address book is empty. Adding bootstrap nodes..
1788813154 rad_id node: 0 nodes added to address book
1788813154 rad_id service: Init @1788813154000
1788813154 rad_id service: Empty refs database, populating from storage..
1788813154 rad_id service: Not enough available peers to connect to (available=0, wanted=8)
1788813154 rad_id reactor-controller: Initializing reactor thread...
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:45097..
1788813154 rad_id node: Binding control socket /tmp/.tmpK99Ji7/bob/.radicle/node/control.sock..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmpK99Ji7/bob/.radicle..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, 0.0.0.0:45097, ConnectOptions { persistent: false, timeout: 30s })
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:45097)..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:45097)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound connection from 127.0.0.1:40590..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Accepted inbound connection from 127.0.0.1:40590..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound peer resource registered
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:45097) (Outbound)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1788726754120..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:40590) (Inbound)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1788726754123..
1788813154 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1788813154 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154000)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154000)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813154000)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154000)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1788813154000
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1788813154000
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154002)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154001)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813154002)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154001)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1788813154 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpK99Ji7/bob/.radicle..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 13..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (5ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (11ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (15ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (15ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (16ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (22ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (25ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 13 exited with result Ok(())
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813154 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 } } }) }
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154370)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154371)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154370)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154370)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154371)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154371)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1788813154371)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813154 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1788813154 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1788813154 test: rad clone: ✓ Target met: 1 seed(s)
1788813154 test: rad clone: ✓ Creating checkout in ./heartwood..
1788813154 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1788813154 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmpK99Ji7/bob/.radicle/heartwood/
1788813154 test: rad clone: ╭────────────────────────────────────╮
1788813154 test: rad clone: │ heartwood │
1788813154 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1788813154 test: rad clone: │ 0 issues · 0 patches │
1788813154 test: rad clone: ╰────────────────────────────────────╯
1788813154 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1788813154 test: Ran command `rad clone` (status=0)
1788813154 test: Running `rad fork ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpK99Ji7/bob/.radicle..
1788813154 test: rad fork: ✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 test: Ran command `rad fork` (status=0)
1788813154 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "1"]` in /tmp/.tmpK99Ji7/bob/.radicle..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"subscribe"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"announceRefsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command AnnounceRefs(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Announcing refs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk @ e9f48ef90fe8592e1b1c95f96c21a59ca1495300 to peers (t=1788813154598)..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154598)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154598)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154598)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [outbound connected] (1 remote(s))..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `open` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 12..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched rad/id (10ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data for 1 remote(s) (23ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data refs for 1 remotes (24ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Sent done signal to remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Validated 1 remote(s) (24ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Applied updates (24ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (36ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `end-of-file` on stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload pack finished (47ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload process on stream 12 exited with result Ok(())
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closed with 0 byte(s) sent and 0 byte(s) received
1788813154 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 } } }) }
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk successfully
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..e9f48ef refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154660)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154660)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813154660)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at e9f48ef90fe8592e1b1c95f96c21a59ca1495300 (t=1788813154660)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to e9f48ef90fe8592e1b1c95f96c21a59ca1495300
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813154 test: rad sync: ✓ Synced with 1 seed(s)
1788813154 test: Ran command `rad sync` (status=0)
1788813154 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "2"]` in /tmp/.tmpK99Ji7/bob/.radicle..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 test: rad sync: ✓ Nothing to announce, already in sync with 1 seed(s) (see `rad sync status`)
1788813154 test: Ran command `rad sync` (status=0)
1788813154 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpK99Ji7/alice/work"]
1788813154 test: rad-id.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "update", "--title", "Add Bob", "--description", "Add Bob as a delegate", "--delegate", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", "--threshold", "2"] in `/tmp/.tmpK99Ji7/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 + diff --git a/radicle.json b/radicle.json
16 + index 600d27b..97b8a94 100644
17 + --- a/radicle.json
18 + +++ b/radicle.json
15 19 | @@ -1,13 +1,14 @@
16 20 | {
17 21 | "payload": {
18 22 | "xyz.radicle.project": {
19 23 | "defaultBranch": "master",
⋮
27 31 | + "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
28 32 | ],
29 33 | - "threshold": 1
30 34 | + "threshold": 2
31 35 | }
Exit status: 0
1788813154 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1788813154 rad_id reactor::controller: Initiating reactor shutdown...
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 2
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=8)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1788813154 rad_id reactor::controller: Initiating reactor shutdown...
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_conflict stdout ----
1788813153 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp71Ii0U/alice/work"]
1788813153 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813154 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813154 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813154 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813154 rad_id_conflict node: Opening policy database..
1788813154 rad_id_conflict node: Default seeding policy set to 'block (all)'
1788813154 rad_id_conflict node: Initializing service (Test)..
1788813154 rad_id_conflict node: Opening node database..
1788813154 rad_id_conflict node: Address book is empty. Adding bootstrap nodes..
1788813154 rad_id_conflict node: 0 nodes added to address book
1788813154 rad_id_conflict service: Init @1788813154000
1788813154 rad_id_conflict service: Empty refs database, populating from storage..
1788813154 rad_id_conflict service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813154 rad_id_conflict service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1788813154 rad_id_conflict service: Not enough available peers to connect to (available=0, wanted=8)
1788813154 rad_id_conflict reactor-controller: Initializing reactor thread...
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:35401..
1788813154 rad_id_conflict node: Binding control socket /tmp/.tmp71Ii0U/alice/.radicle/node/control.sock..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmp71Ii0U/alice/.radicle..
1788813154 rad_id_conflict node: Opening policy database..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813154 rad_id_conflict node: Default seeding policy set to 'block (all)'
1788813154 rad_id_conflict node: Initializing service (Test)..
1788813154 rad_id_conflict node: Opening node database..
1788813154 rad_id_conflict node: Address book is empty. Adding bootstrap nodes..
1788813154 rad_id_conflict node: 0 nodes added to address book
1788813154 rad_id_conflict service: Init @1788813154000
1788813154 rad_id_conflict service: Empty refs database, populating from storage..
1788813154 rad_id_conflict service: Not enough available peers to connect to (available=0, wanted=8)
1788813154 rad_id_conflict reactor-controller: Initializing reactor thread...
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:44407..
1788813154 rad_id_conflict node: Binding control socket /tmp/.tmp71Ii0U/bob/.radicle/node/control.sock..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmp71Ii0U/bob/.radicle..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, 0.0.0.0:44407, ConnectOptions { persistent: false, timeout: 30s })
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:44407)..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:44407)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound connection from 127.0.0.1:43460..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Accepted inbound connection from 127.0.0.1:43460..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound peer resource registered
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:44407) (Outbound)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1788726754163..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:43460) (Inbound)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1788726754163..
1788813154 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1788813154 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154000)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154000)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154000)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813154000)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1788813154000
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154002)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1788813154000
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154001)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813154002)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154001)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1788813154 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmp71Ii0U/bob/work..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 13..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (5ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (11ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (14ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (19ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 13 exited with result Ok(())
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (15ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (15ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (21ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 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 } } }) }
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154410)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154411)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154410)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154410)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154411)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154411)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1788813154411)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813154 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1788813154 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1788813154 test: rad clone: ✓ Target met: 1 seed(s)
1788813154 test: rad clone: ✓ Creating checkout in ./heartwood..
1788813154 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1788813154 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmp71Ii0U/bob/work/heartwood/
1788813154 test: rad clone: ╭────────────────────────────────────╮
1788813154 test: rad clone: │ heartwood │
1788813154 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1788813154 test: rad clone: │ 0 issues · 0 patches │
1788813154 test: rad clone: ╰────────────────────────────────────╯
1788813154 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1788813154 test: Ran command `rad clone` (status=0)
1788813154 test: Running `rad fork ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmp71Ii0U/bob/work..
1788813154 test: rad fork: ✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 test: Ran command `rad fork` (status=0)
1788813154 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "1"]` in /tmp/.tmp71Ii0U/bob/work..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"subscribe"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"announceRefsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command AnnounceRefs(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Announcing refs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk @ e9f48ef90fe8592e1b1c95f96c21a59ca1495300 to peers (t=1788813154637)..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154637)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154637)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154637)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [outbound connected] (1 remote(s))..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `open` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 12..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched rad/id (1ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data for 1 remote(s) (8ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data refs for 1 remotes (8ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Sent done signal to remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Validated 1 remote(s) (8ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Applied updates (9ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (14ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `end-of-file` on stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload pack finished (17ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload process on stream 12 exited with result Ok(())
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closed with 0 byte(s) sent and 0 byte(s) received
1788813154 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 } } }) }
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk successfully
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..e9f48ef refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154685)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154685)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813154685)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at e9f48ef90fe8592e1b1c95f96c21a59ca1495300 (t=1788813154685)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to e9f48ef90fe8592e1b1c95f96c21a59ca1495300
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813154 test: rad sync: ✓ Synced with 1 seed(s)
1788813154 test: Ran command `rad sync` (status=0)
1788813154 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "2"]` in /tmp/.tmp71Ii0U/bob/.radicle..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 test: rad sync: ✓ Nothing to announce, already in sync with 1 seed(s) (see `rad sync status`)
1788813154 test: Ran command `rad sync` (status=0)
1788813154 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmp71Ii0U"]
1788813154 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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/.tmp71Ii0U/alice/work`..
1788813154 test: rad-id-conflict.md: Running `cd /tmp/.tmp71Ii0U/bob/work/heartwood`..
1788813154 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["sync", "--fetch", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmp71Ii0U/bob/work/heartwood`..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 21 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 21 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 21..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 21..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched rad/id (6ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched data for 1 remote(s) (14ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched data refs for 1 remotes (14ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 21 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Upload pack finished (20ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Upload process on stream 21 exited with result Ok(())
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 21, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 21 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 21 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 21 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Validated 1 remote(s) (15ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Applied updates (16ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (22ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> storage: Setting ref: refs/rad/id -> 0ca42d376bd566631083c8913cf86bec722da392
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 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 } } }) }
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0656c21..0ca42d3 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 99c5497..49e78ff refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0656c21..0ca42d3 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Command returned error: i/o error: invalid input parameter
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154823)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154823)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813154823)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 49e78ff32b2250126edd573a4eb05fbbf724ca42 (t=1788813154823)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 49e78ff32b2250126edd573a4eb05fbbf724ca42
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813154 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "update", "--title", "Edit project name", "--description", "", "--payload", "xyz.radicle.project", "name", "\"heart\"", "-q"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813154 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "update", "--title", "Edit project name", "--description", "", "--payload", "xyz.radicle.project", "name", "\"wood\"", "-q"] in `/tmp/.tmp71Ii0U/bob/work/heartwood`..
1788813154 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["sync", "--fetch", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"status"}` on control socket
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"]}` on control socket
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"session","nid":"z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"}` on control socket
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk","timeout":{"secs":9,"nanos":0}}` on control socket
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [outbound connected] (all remotes)..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 20 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `open` command for stream 20 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 20..
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 20..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched rad/id (1ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched data for 1 remote(s) (7ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched data refs for 1 remotes (11ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Sent done signal to remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `end-of-file` on stream 20 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Upload pack finished (18ms)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Upload process on stream 20 exited with result Ok(())
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 20, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 20 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 20 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 20 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closed with 0 byte(s) sent and 0 byte(s) received
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Validated 1 remote(s) (12ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Applied updates (13ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (19ms)
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> storage: Setting ref: refs/rad/id -> 0ca42d376bd566631083c8913cf86bec722da392
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813154 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 } } }) }
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Found existing fetch request from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, sending result..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk successfully
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: ~ e9f48ef..1a7b091 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..89b2623 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813154 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813154974)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813154974)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813154974)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 1a7b0915028c7400d1f65b7d2fddba04de487a44 (t=1788813154974)
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 1a7b0915028c7400d1f65b7d2fddba04de487a44
1788813154 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813155 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "list"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813155 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "accept", "89b2623", "-q"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813155 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "list"] in `/tmp/.tmp71Ii0U/alice/work`..
1788813155 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["sync", "--fetch", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmp71Ii0U/bob/work/heartwood`..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 29 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 29 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 29..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 29..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Fetched rad/id (1ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Fetched data for 1 remote(s) (10ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Fetched data refs for 1 remotes (10ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 29 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Validated 1 remote(s) (11ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Upload pack finished (18ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Upload process on stream 29 exited with result Ok(())
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Applied updates (12ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (19ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 29, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 29 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 29 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 29 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> storage: Setting ref: refs/rad/id -> 89b2623e7f2ddf5748661b15b9975ab0b4ee17ab
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#4> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 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 } } }) }
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0ca42d3..98b52d6 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 49e78ff..69fd122 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0ca42d3..98b52d6 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155146)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155146)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155146)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 69fd122ccea06a6c1eaa66c96527341827a864e9 (t=1788813155146)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 69fd122ccea06a6c1eaa66c96527341827a864e9
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813155 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "accept", "12d7300", "-q"] in `/tmp/.tmp71Ii0U/bob/work/heartwood`..
1788813155 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "reject", "12d7300", "-q"] in `/tmp/.tmp71Ii0U/bob/work/heartwood`..
1788813155 test: rad-id-conflict.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "show", "12d7300"] in `/tmp/.tmp71Ii0U/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 + diff --git a/radicle.json b/radicle.json
14 + index 97b8a94..d906266 100644
15 + --- a/radicle.json
16 + +++ b/radicle.json
13 17 | @@ -1,14 +1,14 @@
14 18 | {
15 19 | "payload": {
16 20 | "xyz.radicle.project": {
17 21 | "defaultBranch": "master",
⋮
24 28 | "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
25 29 | "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
26 30 | ],
27 31 | "threshold": 2
28 32 | }
Exit status: 0
1788813155 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1788813155 rad_id_conflict reactor::controller: Initiating reactor shutdown...
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 2
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=8)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1788813155 rad_id_conflict reactor::controller: Initiating reactor shutdown...
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_threshold stdout ----
1788813155 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpTjXT2O/alice/work"]
1788813155 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpTjXT2O/alice/work`..
1788813155 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmpTjXT2O/alice/work`..
1788813155 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmpTjXT2O/alice/work`..
1788813155 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpTjXT2O/alice/work`..
1788813155 rad_id_threshold node: Opening policy database..
1788813155 rad_id_threshold node: Default seeding policy set to 'block (all)'
1788813155 rad_id_threshold node: Initializing service (Test)..
1788813155 rad_id_threshold node: Opening node database..
1788813155 rad_id_threshold node: Address book is empty. Adding bootstrap nodes..
1788813155 rad_id_threshold node: 0 nodes added to address book
1788813155 rad_id_threshold service: Init @1788813155000
1788813155 rad_id_threshold service: Empty refs database, populating from storage..
1788813155 rad_id_threshold service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813155 rad_id_threshold service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1788813155 rad_id_threshold service: Not enough available peers to connect to (available=0, wanted=8)
1788813155 rad_id_threshold reactor-controller: Initializing reactor thread...
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:36189..
1788813155 rad_id_threshold node: Binding control socket /tmp/.tmpTjXT2O/alice/.radicle/node/control.sock..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpTjXT2O/alice/.radicle..
1788813155 rad_id_threshold node: Opening policy database..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813155 rad_id_threshold node: Default seeding policy set to 'block (all)'
1788813155 rad_id_threshold node: Initializing service (Test)..
1788813155 rad_id_threshold node: Opening node database..
1788813155 rad_id_threshold node: Address book is empty. Adding bootstrap nodes..
1788813155 rad_id_threshold node: 0 nodes added to address book
1788813155 rad_id_threshold service: Init @1788813155000
1788813155 rad_id_threshold service: Empty refs database, populating from storage..
1788813155 rad_id_threshold service: Not enough available peers to connect to (available=0, wanted=8)
1788813155 rad_id_threshold reactor-controller: Initializing reactor thread...
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Entering reactor event loop
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> node: Listening on 0.0.0.0:46665..
1788813155 rad_id_threshold node: Binding control socket /tmp/.tmpTjXT2O/seed/.radicle/node/control.sock..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> node: Running node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z in /tmp/.tmpTjXT2O/seed/.radicle..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Control thread listening on socket..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command QueryState(..)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813155 rad_id_threshold node: Opening policy database..
1788813155 rad_id_threshold node: Default seeding policy set to 'block (all)'
1788813155 rad_id_threshold node: Initializing service (Test)..
1788813155 rad_id_threshold node: Opening node database..
1788813155 rad_id_threshold node: Address book is empty. Adding bootstrap nodes..
1788813155 rad_id_threshold node: 0 nodes added to address book
1788813155 rad_id_threshold service: Init @1788813155000
1788813155 rad_id_threshold service: Empty refs database, populating from storage..
1788813155 rad_id_threshold service: Not enough available peers to connect to (available=0, wanted=8)
1788813155 rad_id_threshold reactor-controller: Initializing reactor thread...
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:35299..
1788813155 rad_id_threshold node: Binding control socket /tmp/.tmpTjXT2O/bob/.radicle/node/control.sock..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmpTjXT2O/bob/.radicle..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, followed)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Follow(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z, 0.0.0.0:46665, ConnectOptions { persistent: false, timeout: 30s })
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:46665)..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:46665)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Inbound connection from 127.0.0.1:39260..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Accepted inbound connection from 127.0.0.1:39260..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Registering transport
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Inbound peer resource registered
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:46665) (Outbound)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1788726755888..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:39260) (Inbound)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Subscribing to messages since timestamp 1788726755888..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 address(es) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z updated at 1788813155000
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155001)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1788813155000
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155002)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155001)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155001)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155002)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, 0.0.0.0:35299, ConnectOptions { persistent: false, timeout: 30s })
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:35299)..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:35299)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound connection from 127.0.0.1:45152..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Accepted inbound connection from 127.0.0.1:45152..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound peer resource registered
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Missing seeded inventory rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji; initiating fetch..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155001)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 13 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z on stream 13..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> worker: z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:35299) (Outbound)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1788726755901..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:45152) (Inbound)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1788726755900..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155001)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Queueing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (already fetching)..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1788813155000
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155001)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1788813155000
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155002)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155001)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155002)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Connect(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z, 0.0.0.0:46665, ConnectOptions { persistent: false, timeout: 30s })
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connecting to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:46665)..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Attempted connection to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:46665)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Inbound connection from 127.0.0.1:39266..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Registering outbound transport for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Outbound peer resource registered for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Accepted inbound connection from 127.0.0.1:39266..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Registering transport
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Inbound peer resource registered
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (0.0.0.0:46665) (Outbound)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1788726755921..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (127.0.0.1:39266) (Inbound)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Subscribing to messages since timestamp 1788726755921..
1788813155 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to route to [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z))]
1788813155 test: Found unexpected route for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: (rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155000)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 address(es) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155000)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1788813155000
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155001)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z updated at 1788813155000
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155001)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155001)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155001)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched rad/id (21ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched data for 1 remote(s) (28ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched data refs for 1 remotes (37ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 13 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Validated 1 remote(s) (38ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (50ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 13 exited with result Ok(())
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z closing with 0 byte(s) sent and 0 byte(s) received
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `close` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Applied updates (38ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (53ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 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 } } }) }
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155967)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155967)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155968)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Skipping refs announcement relay to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [inbound connected]: peer isn't subscribed to rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Dequeued fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from session z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155967)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155967)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155967)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155967)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155968)
1788813155 test: Found unexpected route for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: (rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Opened new stream with id 21 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155968)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1788813155968)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 21 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Worker processing incoming fetch for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z on stream 21..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 21..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Fetched rad/id (1ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Fetched data for 1 remote(s) (3ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Fetched data refs for 1 remotes (4ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 21 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Validated 1 remote(s) (4ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Applied updates (4ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (14ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Upload pack finished (12ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Upload process on stream 21 exited with result Ok(())
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 21, remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 21 of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z closing with 0 byte(s) sent and 0 byte(s) received
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `close` command for stream 21 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Stream 21 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813156 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 } } }) }
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813156 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpTjXT2O"]
1788813156 test: rad-id-threshold.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "update", "--title", "Add Bob", "--description", "Add Bob as a delegate", "--delegate", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk", "--threshold", "2"] in `/tmp/.tmpTjXT2O/alice/work`..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Nothing to announce, no refs were updated..
1788813156 test: rad-id-threshold.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "update", "--title", "Add Bob", "--description", "Add Bob as a delegate", "--delegate", "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"] in `/tmp/.tmpTjXT2O/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 + diff --git a/radicle.json b/radicle.json
16 + index 600d27b..b30194b 100644
17 + --- a/radicle.json
18 + +++ b/radicle.json
15 19 | @@ -1,13 +1,14 @@
16 20 | {
17 21 | "payload": {
18 22 | "xyz.radicle.project": {
19 23 | "defaultBranch": "master",
⋮
26 30 | + "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi",
27 31 | + "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"
28 32 | ],
29 33 | "threshold": 1
30 34 | }
Exit status: 0
1788813156 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1788813156 rad_id_threshold reactor::controller: Initiating reactor shutdown...
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Disconnecting peer: connection reset
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Inbound, write_intent: false } with token 3
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Transport handover for disconnecting peer
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 3
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=7)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813156 test: Node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z shutting down..
1788813156 rad_id_threshold reactor::controller: Initiating reactor shutdown...
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Shutdown
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"shutdown"}` on control socket
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Shutdown requested..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 2
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (connection reset)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=8)
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> pool: Worker pool shutting down..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> node: Node shutdown completed for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1788813156 rad_id_threshold reactor::controller: Initiating reactor shutdown...
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_multi_delegate stdout ----
1788813154 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpEGv1mh/alice/work"]
1788813154 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpEGv1mh/alice/work`..
1788813155 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmpEGv1mh/alice/work`..
1788813155 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmpEGv1mh/alice/work`..
1788813155 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpEGv1mh/alice/work`..
1788813155 rad_id_multi_delegate node: Opening policy database..
1788813155 rad_id_multi_delegate node: Default seeding policy set to 'block (all)'
1788813155 rad_id_multi_delegate node: Initializing service (Test)..
1788813155 rad_id_multi_delegate node: Opening node database..
1788813155 rad_id_multi_delegate node: Address book is empty. Adding bootstrap nodes..
1788813155 rad_id_multi_delegate node: 0 nodes added to address book
1788813155 rad_id_multi_delegate service: Init @1788813155000
1788813155 rad_id_multi_delegate service: Empty refs database, populating from storage..
1788813155 rad_id_multi_delegate service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813155 rad_id_multi_delegate service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1788813155 rad_id_multi_delegate service: Not enough available peers to connect to (available=0, wanted=8)
1788813155 rad_id_multi_delegate reactor-controller: Initializing reactor thread...
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:46287..
1788813155 rad_id_multi_delegate node: Binding control socket /tmp/.tmpEGv1mh/alice/.radicle/node/control.sock..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpEGv1mh/alice/.radicle..
1788813155 rad_id_multi_delegate node: Opening policy database..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813155 rad_id_multi_delegate node: Default seeding policy set to 'block (all)'
1788813155 rad_id_multi_delegate node: Initializing service (Test)..
1788813155 rad_id_multi_delegate node: Opening node database..
1788813155 rad_id_multi_delegate node: Address book is empty. Adding bootstrap nodes..
1788813155 rad_id_multi_delegate node: 0 nodes added to address book
1788813155 rad_id_multi_delegate service: Init @1788813155000
1788813155 rad_id_multi_delegate service: Empty refs database, populating from storage..
1788813155 rad_id_multi_delegate service: Not enough available peers to connect to (available=0, wanted=8)
1788813155 rad_id_multi_delegate reactor-controller: Initializing reactor thread...
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Entering reactor event loop
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> node: Listening on 0.0.0.0:33469..
1788813155 rad_id_multi_delegate node: Binding control socket /tmp/.tmpEGv1mh/bob/.radicle/node/control.sock..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Running node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk in /tmp/.tmpEGv1mh/bob/.radicle..
1788813155 rad_id_multi_delegate node: Opening policy database..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Control thread listening on socket..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813155 rad_id_multi_delegate node: Default seeding policy set to 'block (all)'
1788813155 rad_id_multi_delegate node: Initializing service (Test)..
1788813155 rad_id_multi_delegate node: Opening node database..
1788813155 rad_id_multi_delegate node: Address book is empty. Adding bootstrap nodes..
1788813155 rad_id_multi_delegate node: 0 nodes added to address book
1788813155 rad_id_multi_delegate service: Init @1788813155000
1788813155 rad_id_multi_delegate service: Empty refs database, populating from storage..
1788813155 rad_id_multi_delegate service: Not enough available peers to connect to (available=0, wanted=8)
1788813155 rad_id_multi_delegate reactor-controller: Initializing reactor thread...
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Entering reactor event loop
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> node: Listening on 0.0.0.0:38891..
1788813155 rad_id_multi_delegate node: Binding control socket /tmp/.tmpEGv1mh/eve/.radicle/node/control.sock..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> node: Running node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z in /tmp/.tmpEGv1mh/eve/.radicle..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Control thread listening on socket..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command QueryState(..)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Follow(z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Connect(z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk, 0.0.0.0:33469, ConnectOptions { persistent: false, timeout: 30s })
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connecting to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:33469)..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Attempted connection to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:33469)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound connection from 127.0.0.1:59964..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Registering outbound transport for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Outbound peer resource registered for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Accepted inbound connection from 127.0.0.1:59964..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Registering transport
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Inbound peer resource registered
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (0.0.0.0:33469) (Outbound)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1788726755090..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (127.0.0.1:59964) (Inbound)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Subscribing to messages since timestamp 1788726755090..
1788813155 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1788813155 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 address(es) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155000)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1788813155000
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155002)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk updated at 1788813155000
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 0 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155001)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155002)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155001)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has converged
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command QueryState(..)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Connect(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, 0.0.0.0:46287, ConnectOptions { persistent: false, timeout: 30s })
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Connecting to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:46287)..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Attempted connection to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:46287)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Registering outbound transport for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Registering transport
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Outbound peer resource registered for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound connection from 127.0.0.1:40648..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Accepted inbound connection from 127.0.0.1:40648..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Registering transport
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Inbound peer resource registered
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Session established with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Connected to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (0.0.0.0:46287) (Outbound)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Subscribing to messages since timestamp 1788726755298..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Handshake with ProtocolArtifact { session: "<omitted>", state: "<omitted>" } is complete
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Session established with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Connected to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (127.0.0.1:40648) (Inbound)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Subscribing to messages since timestamp 1788726755299..
1788813155 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has converged
1788813155 test: Node has missing routes: [(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji), PublicKey(z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi))]
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received node announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 address(es) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155000)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received node announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 0 address(es) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155000)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Address store entry for node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z updated at 1788813155000
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 0 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155001)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Address store entry for node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi updated at 1788813155000
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received inventory announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi with 1 item(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155002)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155001)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155002)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received subscription filter from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 test: Node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z has converged
1788813155 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpEGv1mh/bob/work..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 13..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched rad/id (5ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data for 1 remote(s) (11ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Fetched data refs for 1 remotes (15ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Validated 1 remote(s) (15ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Applied updates (16ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (31ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 13 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload pack finished (34ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#0> worker: Upload process on stream 13 exited with result Ok(())
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 13, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813155 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 } } }) }
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155569)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155570)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk with 1 item(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155569)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155569)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155570)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155570)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1788813155570)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813155 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1788813155 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1788813155 test: rad clone: ✓ Target met: 1 seed(s)
1788813155 test: rad clone: ✓ Creating checkout in ./heartwood..
1788813155 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1788813155 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmpEGv1mh/bob/work/heartwood/
1788813155 test: rad clone: ╭────────────────────────────────────╮
1788813155 test: rad clone: │ heartwood │
1788813155 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1788813155 test: rad clone: │ 0 issues · 0 patches │
1788813155 test: rad clone: ╰────────────────────────────────────╯
1788813155 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1788813155 test: Ran command `rad clone` (status=0)
1788813155 test: Running `rad fork ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpEGv1mh/bob/work..
1788813155 test: rad fork: ✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 test: Ran command `rad fork` (status=0)
1788813155 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "1"]` in /tmp/.tmpEGv1mh/bob/work..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"subscribe"}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"announceRefsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command AnnounceRefs(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Announcing refs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk @ e9f48ef90fe8592e1b1c95f96c21a59ca1495300 to peers (t=1788813155775)..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155775)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155775)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813155775)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk [outbound connected] (1 remote(s))..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `open` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 12..
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched rad/id (1ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data for 1 remote(s) (8ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Fetched data refs for 1 remotes (8ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `end-of-file` on stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Sent done signal to remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Validated 1 remote(s) (8ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Applied updates (9ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (15ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#1> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload pack finished (17ms)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#1> worker: Upload process on stream 12 exited with result Ok(())
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received fetch result from worker for stream 12, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 12 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closed with 0 byte(s) sent and 0 byte(s) received
1788813155 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 } } }) }
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk successfully
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..e9f48ef refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping refs announcement relay to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z [inbound connected]: peer isn't subscribed to rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813155812)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155812)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813155812)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at e9f48ef90fe8592e1b1c95f96c21a59ca1495300 (t=1788813155812)
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to e9f48ef90fe8592e1b1c95f96c21a59ca1495300
1788813155 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813155 test: rad sync: ✓ Synced with 1 seed(s)
1788813155 test: Ran command `rad sync` (status=0)
1788813155 test: Waiting for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813155 test: Running `rad clone ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpEGv1mh/eve/work..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"status"}` on control socket
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"seed","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","scope":"all"}` on control socket
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Seed(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending subscription filter to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received subscription filter from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"]}` on control socket
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command QueryState(..)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [outbound connected] (all remotes)..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Opened new stream with id 12 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 12 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Worker processing incoming fetch for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z on stream 12..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> worker: z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z cloning from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 12..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched rad/id (5ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched data for 2 remote(s) (13ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Fetched data refs for 2 remotes (18ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 12 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Validated 2 remote(s) (19ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Applied updates (20ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> fetch: Finished clone of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (28ms)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: refs/heads/master -> f2de534b5e81d7c6e2dcaf58c3dd91573c0a0354
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> storage: Setting ref: HEAD -> refs/heads/master
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#0> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Upload pack finished (30ms)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#2> worker: Upload process on stream 12 exited with result Ok(())
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 12, remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 12 of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z closing with 0 byte(s) sent and 0 byte(s) received
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `close` command for stream 12 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Stream 12 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813155 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 } } }) }
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..99c5497 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..e9f48ef refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Updating and announcing inventory for cloned repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155962)
1788813155 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 2 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813155963)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received inventory announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z with 1 item(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155962)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155962)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Routing table updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with seed z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 2 remote(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813155963)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813155963)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 99c549702e2bcfe02b0e68d4a2224fb7a1524529 (t=1788813155963)
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 99c549702e2bcfe02b0e68d4a2224fb7a1524529
1788813155 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813156 test: rad clone: ✓ Seeding policy updated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with scope 'all'
1788813156 test: rad clone: Fetching rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from the network, found 1 potential seed(s).
1788813156 test: rad clone: ✓ Target met: 1 seed(s)
1788813156 test: rad clone: ✓ Creating checkout in ./heartwood..
1788813156 test: rad clone: ✓ Remote alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi added
1788813156 test: rad clone: ✓ Remote-tracking branch alice@z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/master created for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 test: rad clone: ✓ Repository successfully cloned under /tmp/.tmpEGv1mh/eve/work/heartwood/
1788813156 test: rad clone: ╭────────────────────────────────────╮
1788813156 test: rad clone: │ heartwood │
1788813156 test: rad clone: │ Radicle Heartwood Protocol & Stack │
1788813156 test: rad clone: │ 0 issues · 0 patches │
1788813156 test: rad clone: ╰────────────────────────────────────╯
1788813156 test: rad clone: Run `cd ./heartwood` to go to the repository directory.
1788813156 test: Ran command `rad clone` (status=0)
1788813156 test: Running `rad fork ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"]` in /tmp/.tmpEGv1mh/eve/work..
1788813156 test: rad fork: ✓ Forked repository rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 test: Ran command `rad fork` (status=0)
1788813156 test: Running `rad sync ["rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--announce", "--replicas", "1"]` in /tmp/.tmpEGv1mh/eve/work..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"status"}` on control socket
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"]}` on control socket
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Found 1 connected seed(s) and 0 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"subscribe"}` on control socket
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"announceRefsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"]}` on control socket
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received command AnnounceRefs(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Announcing refs rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z @ c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba to peers (t=1788813156177)..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Sending refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813156177)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813156177)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to be broadcast in 0 millisecond(s) (t=1788813156177)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z [inbound connected] (1 remote(s))..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Opened new stream with id 13 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `open` command for stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Worker processing incoming fetch for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi on stream 13..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> worker: z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi pulling from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 13..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched rad/id (1ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched data for 1 remote(s) (7ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Fetched data refs for 1 remotes (7ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Sent done signal to remote z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received `end-of-file` on stream 13 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Upload pack finished (13ms)
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <worker#1> worker: Upload process on stream 13 exited with result Ok(())
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Received fetch result from worker for stream 13, remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Stream 13 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closing with 0 byte(s) sent and 0 byte(s) received
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> wire: Peer z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `close` command for stream 13 from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 13 of z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z closed with 0 byte(s) sent and 0 byte(s) received
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Validated 1 remote(s) (7ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Applied updates (8ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (14ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813156 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 } } }) }
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z successfully
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..c9a828f refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (t=1788813156212)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Sending refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813156212)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813156212)
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Received refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813156212)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813156212)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Command returned error: i/o error: Broken pipe (os error 32)
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Stored announcement from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be broadcast in 0 millisecond(s) (t=1788813156212)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (1 remote(s))..
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 21 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Refs announcement of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba (t=1788813156212)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 21 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 21..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 21..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Updating sync status of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched rad/id (1ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched data for 1 remote(s) (6ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Fetched data refs for 1 remotes (6ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 21 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Upload pack finished (11ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#4> worker: Upload process on stream 21 exited with result Ok(())
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 21, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 21 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 21 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 21 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Validated 1 remote(s) (7ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Applied updates (7ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (13ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> storage: Setting ref: refs/rad/id -> 0656c217f917c3e06234771e9ecae53aba5e173e
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#2> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813156 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 } } }) }
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..c9a828f refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..f2de534 refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/heads/master for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: * 0000000..0656c21 refs/namespaces/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z/refs/rad/root for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813156246)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 1 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813156246)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813156246)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813156 test: rad sync: ✓ Synced with 1 seed(s)
1788813156 test: Ran command `rad sync` (status=0)
1788813156 test: Waiting for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813156 test: Node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813156 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to have rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi has rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji/z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be in sync with z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Found 2 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 test: Waiting for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi to be in sync with z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Found 2 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpEGv1mh"]
1788813156 test: rad-id-multi-delegate.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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/.tmpEGv1mh/alice/work`..
1788813156 test: rad-id-multi-delegate.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["watch", "--repo", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--node", "z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z", "-r", "refs/rad/sigrefs", "-t", "c9a828fc2fb01f893d6e6e9e17b9092dea2b3aba", "-i", "500", "--timeout", "5000"] in `/tmp/.tmpEGv1mh/bob/work`..
1788813156 test: rad-id-multi-delegate.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["sync", "--fetch", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmpEGv1mh/bob/work`..
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"status"}` on control socket
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"seedsFor","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","namespaces":["z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk"]}` on control socket
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Seeds(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found 1 connected seed(s) and 1 disconnected seed(s) for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"session","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"}` on control socket
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command QueryState(..)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"fetch","rid":"rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji","nid":"z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi","timeout":{"secs":9,"nanos":0}}` on control socket
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Received command Fetch(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetch initiated for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi [inbound connected] (all remotes)..
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Opened new stream with id 29 for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji and remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `open` command for stream 29 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: Worker processing outgoing fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> worker: z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk pulling from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#5> worker: Worker processing incoming fetch for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk on stream 29..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#5> worker: Spawning upload-pack process for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji on stream 29..
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Fetched rad/id (9ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Fetched data for 2 remote(s) (17ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Fetched data refs for 2 remotes (17ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Sent done signal to remote z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Validated 2 remote(s) (19ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received `end-of-file` on stream 29 from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <upload-pack> worker: Exiting upload-pack reader thread for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#5> worker: Upload pack finished (30ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <worker#5> worker: Upload process on stream 29 exited with result Ok(())
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Applied updates (21ms)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> fetch: Finished pull of rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji (32ms)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Received fetch result from worker for stream 29, remote z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk: Responder { rid: Some(RepoId(rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji)), result: Ok(()) }
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Stream 29 of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk closing with 0 byte(s) sent and 0 byte(s) received
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from us successfully
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Received `close` command for stream 29 from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> wire: Stream 29 of z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi closed with 0 byte(s) sent and 0 byte(s) received
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> storage: Setting ref: refs/rad/id -> 069e7d58faa9a7473d27f5510d676af33282796f
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <worker#3> cob: Loading object of type xyz.radicle.id at 0656c217f917c3e06234771e9ecae53aba5e173e
1788813156 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 } } }) }
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Found existing fetch request from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi, sending result..
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sent fetch result for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi..
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Fetched rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji from z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi successfully
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0656c21..069e7d5 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/id for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 99c5497..1daf304 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/rad/sigrefs for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Ref updated: ~ 0656c21..069e7d5 refs/namespaces/z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi/refs/cobs/xyz.radicle.id/0656c217f917c3e06234771e9ecae53aba5e173e for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> service: Sending refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 2 remote(s) to z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi (t=1788813156381)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji with 2 remote(s) from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (t=1788813156381)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Stored announcement from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk to be broadcast in 0 millisecond(s) (t=1788813156381)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Refs announcement of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji contains our own remote at 1daf3049e7baa4c9576b322203b519a63ee83c4f (t=1788813156381)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Updating sync status of z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to 1daf3049e7baa4c9576b322203b519a63ee83c4f
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Skipping fetch for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji, all refs are already in storage
1788813156 test: rad-id-multi-delegate.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "--repo", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji"] in `/tmp/.tmpEGv1mh/bob/work`..
1788813156 test: rad-id-multi-delegate.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["inspect", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--sigrefs"] in `/tmp/.tmpEGv1mh/bob/work`..
1788813156 test: rad-id-multi-delegate.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["inspect", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--delegates"] in `/tmp/.tmpEGv1mh/bob/work`..
1788813156 test: rad-id-multi-delegate.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "update", "--repo", "rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji", "--title", "Add Eve", "--description", "", "--delegate", "did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z", "--no-confirm"] in `/tmp/.tmpEGv1mh/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 + diff --git a/radicle.json b/radicle.json
15 + index 97b8a94..d23011b 100644
16 + --- a/radicle.json
17 + +++ b/radicle.json
14 18 | @@ -1,14 +1,15 @@
15 19 | {
16 20 | "payload": {
17 21 | "xyz.radicle.project": {
18 22 | "defaultBranch": "master",
⋮
26 30 | + "did:key:z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk",
27 31 | + "did:key:z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z"
28 32 | ],
29 33 | "threshold": 2
30 34 | }
Exit status: 0
1788813156 test: Node z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z shutting down..
1788813156 rad_id_multi_delegate reactor::controller: Initiating reactor shutdown...
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <service> reactor: Shutdown
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Received `{"command":"shutdown"}` on control socket
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <control> control: Shutdown requested..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Inbound, write_intent: false } with token 3
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z (connection reset)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> pool: Worker pool shutting down..
1788813156 z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z <runtime> node: Node shutdown completed for z6Mkux1aUQD2voWWukVb5nNUR7thrHveQG4pDQua8nVhib7Z
1788813156 test: Node z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk shutting down..
1788813156 rad_id_multi_delegate reactor::controller: Initiating reactor shutdown...
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <service> reactor: Shutdown
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Received `{"command":"shutdown"}` on control socket
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <control> control: Shutdown requested..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> transport: Peer ProtocolArtifact { session: "<omitted>", state: "<omitted>" } has reset the connection
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Disconnecting peer: connection reset
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Handing over transport Transport { session: "ProtocolArtifact { session: \"<omitted>\", state: \"<omitted>\" }", state: Terminated, link_direction: Outbound, write_intent: false } with token 2
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> wire: Transport handover for disconnecting peer
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Disconnected from z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk (connection reset)
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Dropping peer z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Not enough available peers to connect to (available=0, wanted=8)
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> pool: Worker pool shutting down..
1788813156 z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk <runtime> node: Node shutdown completed for z6Mkt67GdsW7715MEfRuP4pSZxJRJh6kj6Y48WRqVv4N1tRk
1788813156 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1788813156 rad_id_multi_delegate reactor::controller: Initiating reactor shutdown...
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_unknown_field stdout ----
1788813156 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpxEvZsD/alice/work"]
1788813156 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpxEvZsD/alice/work`..
1788813156 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmpxEvZsD/alice/work`..
1788813156 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmpxEvZsD/alice/work`..
1788813156 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpxEvZsD/alice/work`..
1788813156 rad_id_unknown_field node: Opening policy database..
1788813156 rad_id_unknown_field node: Default seeding policy set to 'block (all)'
1788813156 rad_id_unknown_field node: Initializing service (Test)..
1788813156 rad_id_unknown_field node: Opening node database..
1788813156 rad_id_unknown_field node: Address book is empty. Adding bootstrap nodes..
1788813156 rad_id_unknown_field node: 0 nodes added to address book
1788813156 rad_id_unknown_field service: Init @1788813156000
1788813156 rad_id_unknown_field service: Empty refs database, populating from storage..
1788813156 rad_id_unknown_field service: Saved local sync status for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji..
1788813156 rad_id_unknown_field service: Adding refs announcement for rad:z42hL2jL4XNk6K8oHQaSWfMgCL7ji to historical gossip messages..
1788813156 rad_id_unknown_field service: Not enough available peers to connect to (available=0, wanted=8)
1788813156 rad_id_unknown_field reactor-controller: Initializing reactor thread...
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Entering reactor event loop
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> node: Listening on 0.0.0.0:42211..
1788813156 rad_id_unknown_field node: Binding control socket /tmp/.tmpxEvZsD/alice/.radicle/node/control.sock..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Running node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi in /tmp/.tmpxEvZsD/alice/.radicle..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Control thread listening on socket..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> service: Received command QueryState(..)
1788813156 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpxEvZsD/alice/work"]
1788813156 test: rad-id-unknown-field.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "update", "--title", "Add emoji alias", "--description", "Adding alias field", "--payload", "xyz.radicle.project", "alias", "\"❤\u{fe0f}🪵\""] in `/tmp/.tmpxEvZsD/alice/work`..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <signals> node: Signal notifications channel error: receiving on an empty and disconnected channel
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 + diff --git a/radicle.json b/radicle.json
16 + index 600d27b..49ca4b1 100644
17 + --- a/radicle.json
18 + +++ b/radicle.json
15 19 | @@ -1,13 +1,14 @@
16 20 | {
17 21 | "payload": {
18 22 | "xyz.radicle.project": {
19 23 | + "alias": "❤️🪵",
⋮
25 29 | "delegates": [
26 30 | "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
27 31 | ],
28 32 | "threshold": 1
29 33 | }
Exit status: 0
1788813156 test: Node z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi shutting down..
1788813156 rad_id_unknown_field reactor::controller: Initiating reactor shutdown...
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <service> reactor: Shutdown
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Received `{"command":"shutdown"}` on control socket
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <control> control: Shutdown requested..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> pool: Worker pool shutting down..
1788813156 z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi <runtime> node: Node shutdown completed for z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi
---- rad_id_update_delete_field stdout ----
1788813156 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpWk1vdF/alice/work"]
1788813156 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpWk1vdF/alice/work`..
1788813156 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmpWk1vdF/alice/work`..
1788813156 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmpWk1vdF/alice/work`..
1788813156 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpWk1vdF/alice/work`..
1788813156 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpWk1vdF/alice/work"]
1788813156 test: rad-id-update-delete-field.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/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/.tmpWk1vdF/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 + diff --git a/radicle.json b/radicle.json
16 + index 600d27b..ead1eb1 100644
17 + --- a/radicle.json
18 + +++ b/radicle.json
15 19 | @@ -1,13 +1,14 @@
16 20 | {
17 21 | "payload": {
18 22 | "xyz.radicle.project": {
19 23 | "defaultBranch": "master",
⋮
26 30 | "delegates": [
27 31 | "did:key:z6MknSLrJoTcukLrE435hVNQT4JUhbvWLX4kUzqkEStBU8Vi"
28 32 | ],
29 33 | "threshold": 1
30 34 | }
Exit status: 0
---- rad_patch_fetch_2 stdout ----
1788813165 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpH15tQz/alice/work"]
1788813165 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpH15tQz/alice/work"]
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["checkout", "-b", "alice/1", "-q"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["commit", "--allow-empty", "-m", "Changes #1", "-q"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["push", "rad", "-o", "patch.message=Changes", "HEAD:refs/patches"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["checkout", "master", "-q"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["branch", "-D", "alice/1", "-q"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["update-ref", "-d", "refs/remotes/rad/alice/1"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["update-ref", "-d", "refs/remotes/rad/patches/5e2dedcc5d515fcbc1cca483d3376609fe889bfb"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["gc", "--prune=now"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["branch", "-r"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["pull"] in `/tmp/.tmpH15tQz/alice/work`..
1788813165 test: rad-patch-fetch-2.md: Running `git` with ["branch", "-r"] in `/tmp/.tmpH15tQz/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 ----
1788813166 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpTeGAKn/alice/work"]
1788813166 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpTeGAKn/alice/work"]
1788813167 test: rad-patch-via-push.md: Running `git` with ["checkout", "-b", "feature/1"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-patch-via-push.md: Running `git` with ["commit", "-a", "-m", "Add things", "-q", "--allow-empty"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 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/.tmpTeGAKn/alice/work`..
1788813167 test: rad-patch-via-push.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["patch", "show", "6035d2f582afbe01ff23ea87528ae523d76875b6"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-patch-via-push.md: Running `git` with ["branch", "-vv"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-patch-via-push.md: Running `git` with ["status", "--short", "--branch"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-patch-via-push.md: Running `git` with ["fetch"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-patch-via-push.md: Running `git` with ["push"] in `/tmp/.tmpTeGAKn/alice/work`..
1788813167 test: rad-patch-via-push.md: Running `git` with ["show-ref"] in `/tmp/.tmpTeGAKn/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 ----
1788813167 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpBw19fH/alice/work"]
1788813167 test: rad-init-private.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "radicle heartwood protocol & stack", "--no-confirm", "--private"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: rad-init-private.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: rad-init-private.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["seed"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpBw19fH/alice/work"]
1788813167 test: rad-publish.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["inspect", "--visibility"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: rad-publish.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: rad-publish.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["publish"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: rad-publish.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["inspect", "--visibility"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: rad-publish.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: rad-publish.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["publish"] in `/tmp/.tmpBw19fH/alice/work`..
1788813167 test: rad-publish.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["id", "update", "--visibility", "private", "--title", "Privatise", "--description", "Reverting the rad publish event"] in `/tmp/.tmpBw19fH/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 + diff --git a/radicle.json b/radicle.json
16 + index d3eda1d..05d01f9 100644
17 + --- a/radicle.json
18 + +++ b/radicle.json
15 19 | @@ -1,13 +1,16 @@
16 20 | {
17 21 | "payload": {
18 22 | "xyz.radicle.project": {
19 23 | "defaultBranch": "master",
⋮
28 32 | + "threshold": 1,
29 33 | + "visibility": {
30 34 | + "type": "private"
31 35 | + }
32 36 | }
Exit status: 0
---- rad_review_by_hunk stdout ----
1788813167 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpm5MRyT/alice/work"]
1788813167 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init", "--name", "heartwood", "--description", "Radicle Heartwood Protocol & Stack", "--no-confirm", "--public", "-v"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["init"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["ls"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-init.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["node", "inventory"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: Creating directory /tmp/.tmpm5MRyT/alice/work..
1788813167 test: Writing 149 bytes to /tmp/.tmpm5MRyT/alice/work/MENU.txt..
1788813167 test: Creating directory /tmp/.tmpm5MRyT/alice/work..
1788813167 test: Writing 38 bytes to /tmp/.tmpm5MRyT/alice/work/INSTRUCTIONS.txt..
1788813167 test: Creating directory /tmp/.tmpm5MRyT/alice/work..
1788813167 test: Writing 8 bytes to /tmp/.tmpm5MRyT/alice/work/.gitignore..
1788813167 test: Creating directory /tmp/.tmpm5MRyT/alice/work..
1788813167 test: Writing 44 bytes to /tmp/.tmpm5MRyT/alice/work/DISCLAIMER.txt..
1788813167 test: Using PATH ["/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/crates/radicle-cli/target/debug", "/usr/local/cargo/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin", "/tmp/.tmpm5MRyT/alice/work"]
1788813167 test: rad-review-by-hunk.md: Running `git` with ["add", "MENU.txt", "INSTRUCTIONS.txt", ".gitignore"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `git` with ["commit", "-q", "-a", "-m", "Add files"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `git` with ["push", "rad", "master"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `sed` with ["-i", "$a Garlic Green Beans", "MENU.txt"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `sed` with ["-i", "3i\\Baked Brie", "MENU.txt"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `sed` with ["-i", "s/French Fries/French Fries!/", "MENU.txt"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `rm` with [".gitignore"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `mkdir` with ["notes"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `mv` with ["INSTRUCTIONS.txt", "notes/"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `git` with ["checkout", "-q", "-b", "patch/1"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `git` with ["add", "."] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `git` with ["status", "--short"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `git` with ["commit", "-q", "-m", "Update files"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `git` with ["push", "rad", "HEAD:refs/patches"] in `/tmp/.tmpm5MRyT/alice/work`..
1788813167 test: rad-review-by-hunk.md: Running `/2705033a-7b69-4de2-ac6a-3c2c533c9dfa/w/target/debug/rad` with ["patch", "review", "--patch", "-U5", "7a2ac7e2841cc1e7394f99f107555a499b1d3f23", "--no-announce"] in `/tmp/.tmpm5MRyT/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: `rad patch review --patch` has been removed
Exit status: 1
stderr:
```
! Obsolete: The command `rad patch review --patch` is obsolete and will be removed. Please stop using it.
```
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 73.59s
error: test failed, to rerun pass `-p radicle-cli --test commands`
Running unittests src/lib.rs (target/debug/deps/radicle_cli_test-62bbd68995057904)
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.01s
running 8 tests
test object::tests::test_serde ... ok
Running unittests src/lib.rs (target/debug/deps/radicle_cob-a9dea211eceb3fdc)
test tests::git::traverse_cobs ... ok
test tests::invalid_parse_refstr ... ok
test tests::git::roundtrip ... ok
test type_name::test::valid_typenames ... ok
test tests::git::update_cob ... ok
test tests::git::list_cobs ... ok
test tests::parse_refstr ... ok
test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
Running unittests src/lib.rs (target/debug/deps/radicle_crypto-25612e6894d1f444)
running 12 tests
test ssh::fmt::test::test_key ... ok
test ssh::keystore::tests::test_init_no_passphrase ... ok
test ssh::fmt::test::test_fingerprint ... ok
test ssh::test::prop_encode_decode_sk ... ok
test ssh::test::test_agent_encoding_remove ... ok
test ssh::test::test_agent_encoding_sign ... ok
test tests::prop_key_equality ... ok
test tests::test_e25519_dh ... ok
test tests::test_encode_decode ... ok
test tests::prop_encode_decode ... 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.89s
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_diamond ... ok
test tests::test_fold_diamond ... ok
test tests::test_fold_multiple_roots ... 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_fold_sorting_1 ... ok
test tests::test_len ... ok
test tests::test_merge_1 ... ok
test tests::test_prune_1 ... ok
test tests::test_merge_2 ... ok
test tests::test_prune_by_sorting ... ok
test tests::test_remove ... ok
test tests::test_prune_2 ... ok
test tests::test_siblings ... 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-e777a8d0538e545d)
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::qualified_invalid - should panic ... ok
test test::pattern ... ok
test test::qualified_pattern ... ok
test test::qualified_pattern_invalid - should panic ... ok
test test::refname_invalid - should panic ... ok
test test::refname ... 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-dbf9ffa4075401d5)
running 74 tests
test control::tests::test_control_socket ... ok
test fingerprint::tests::matching ... ok
test control::tests::test_seed_unseed ... ok
test reactor::timer::tests::test_next ... ok
test reactor::timer::tests::test_wake_exact ... ok
test reactor::timer::tests::test_wake ... 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_inventory_sync_ring ... ok
test tests::e2e::test_replication_ref_in_sigrefs ... 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_relay ... ok
test tests::test_announcement_rebroadcast_timestamp_filtered ... 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_inventory_pruning ... ok
test tests::test_persistent_peer_connect ... 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_seeding ... ok
test wire::test::test_inventory_ann_with_extension ... ok
test wire::test::test_pong_message_with_extension ... ok
test tests::test_seed_repo_subscribe ... 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 17.28s
Running unittests src/main.rs (target/debug/deps/radicle_node-4c451c73f3943feb)
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::fixture ... ok
test fmt::test::git2 ... ok
test fmt::test::gix ... ok
test fmt::test::zero ... ok
test git2::test::zero ... ok
test gix::test::zero ... ok
test str::test::fixture ... ok
test str::test::zero ... ok
test str::test::git2_roundtrip ... 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-e4d773e1fe20cab2)
running 46 tests
test deserializer::test::test_decode_next ... ok
test deserializer::test::test_unparsed ... 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::gossip::store::test::test_announced ... ok
test service::filter::test::test_sizes ... ok
test service::message::tests::test_inventory_limit ... ok
test wire::frame::test::test_encode_git_large ... ok
test wire::frame::test::test_stream_id ... ok
test service::message::tests::test_ref_remote_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::tests::prop_roundtrip_signed_refs ... 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_string ... ok
test wire::tests::test_alias ... 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::test_refs_ann_max_size ... 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.47s
Running unittests src/main.rs (target/debug/deps/git_remote_rad-ca285396be019b44)
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-8c01218f83bdb0b0)
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-739d952e27876ebe)
running 21 tests
test ansi::tests::colors_disabled ... ok
test ansi::tests::wrapping ... ok
test ansi::tests::colors_enabled ... ok
test cell::test::test_width ... ok
test element::test::test_spaced ... 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 ... ok
test table::test::test_table_border_maximized ... ok
test table::test::test_table_truncate ... ok
test table::test::test_table_border_truncated ... ok
test table::test::test_truncate ... ok
test table::test::test_table_unicode ... ok
test table::test::test_table_unicode_truncate ... ok
test textarea::test::test_wrapping ... ok
test textarea::test::test_wrapping_code_block ... ok
test textarea::test::test_wrapping_fenced_block ... ok
test vstack::test::test_vstack ... ok
test vstack::test::test_vstack_maximize ... ok
test textarea::test::test_wrapping_paragraphs ... 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_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>::truncate (line 50) ... 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>::max (line 96) ... 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>::with_capacity (line 66) ... ok
test crates/radicle-protocol/src/bounded.rs - bounded::BoundedVec<T,N>::unbound (line 149) ... ok
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s
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.16s
error: 1 target failed:
`-p radicle-cli --test commands`
Exit code: 101
{
"response": "finished",
"result": "failure"
}