Something's off with the job COBs... I think?
I'm trying to look at job COBs with rad cob, and they seem impossible to show:
$ rad . # To show that it's heartwood
rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5
$ rad cob list --repo $(rad .) --type xyz.radworks.job
0058f605e393701a8bfd36f1ec16dfead6812dac
0077773c8153ed8372b1aa6658f1ffe5ae7bd8b3
00e5464d5abb89a8d9f8c08bb2fd5461b74541ec
...
fd41b43d98c62a1d18e89e4f6271a645bb52f305
fe2baf809638500a0d2422a933c197161246805e
ff7e0ef9761d50cdf24c8adeee45c50d6e268527
$ rad cob show --repo $(rad .) --type xyz.radworks.job --object fd41b43d98c62a1d18e89e4f6271a645bb52f305
✗ Error: retrieve error: unable to initialize object: io: No such file or directory (os error 2)
$ rad cob show --repo $(rad .) --type xyz.radworks.job --object 00e5464d5abb89a8d9f8c08bb2fd5461b74541ec
✗ Error: retrieve error: unable to initialize object: io: No such file or directory (os error 2)
Meanwhile, for other known COBs, showing work fine:
$ rad cob list --repo $(rad .) --type xyz.radicle.patch
...
fe28492b4d3638dbcc3ebfdeb6c439758a59c02e
fe3ac4d83016764d86158d3d0deabedc797cedb3
ff0a38fbd47041ea6d0ca47298601c40a6619319
$ rad cob show --repo $(rad .) --type xyz.radicle.patch --object fe28492b4d3638dbcc3ebfdeb6c439758a59c02e
{"title":"radicle: introduce `cob::common::Title`","author":{"id":"did:key:z6MkkfM3tPXNPrPevKr3uSiQtHPuwnNhu2yUVjgd2jXVsVz5"},"state":{"status":"merged","revision":"0bbcf6a1d06d52cde60644c69f7f36bdce34b3f6","commit":"1d7478cd909776b4423a90cd0bf40c10d711e989"},"target":"delegates","labels":[],"merges":{"z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz":{"revision":"0bbcf6a1d06d52cde60644c69f7f36bdce34b3f6","commit":"1d7478cd909776b4423a90cd0bf40c10d711e989","timestamp":1755616010000}},"revisions":{"0bbcf6a1d06d52cde60644c69f7f36bdce34b3f6":{"id":"0bbcf6a1d06d52cde60644c69f7f36bdce34b3f6","author":{"id":"did:key:z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz"},"description":[{"author":"z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz","timestamp":1755615967000,"body":"Rebase, squash in Fintan's review","embeds":[]}],"base":"2a0f6fd3c5588c0779b05d295b118cdc4adba9fe","oid":"1d7478cd909776b4423a90cd0bf40c10d711e989","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1755615967000,"resolves":[],"reactions":[]},"30cc38d7de672172390a92e084c1d7eed2dd3178":null,"768adf300a97137f80a8f20304757dc923fd5320":{"id":"768adf300a97137f80a8f20304757dc923fd5320","author":{"id":"did:key:z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM"},"description":[{"author":"z6MkireRatUThvd3qzfKht1S44wpm4FEWSSa4PRMTSQZ3voM","timestamp":1755593132000,"body":"Series of review commits","embeds":[]}],"base":"f6f3be437bb0773c61842ae0d5b341d1e5305250","oid":"726a395c606cc23779f2fa49844d0948b4bea561","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1755593132000,"resolves":[],"reactions":[]},"fe28492b4d3638dbcc3ebfdeb6c439758a59c02e":{"id":"fe28492b4d3638dbcc3ebfdeb6c439758a59c02e","author":{"id":"did:key:z6MkkfM3tPXNPrPevKr3uSiQtHPuwnNhu2yUVjgd2jXVsVz5"},"description":[{"author":"z6MkkfM3tPXNPrPevKr3uSiQtHPuwnNhu2yUVjgd2jXVsVz5","timestamp":1755522785000,"body":"This patch adds the `cob::common::Title` struct, this allows instead of\nusing `std::str::String` or generics and traits for it, to define more\nprecisely what a title should be.\nIt trims the provided string and makes sure it contains no carriage\nreturn or new line characters.\n\nWhere a `std::str::String` makes more sense so it's easier to mutate it,\nwe keep the code as is.","embeds":[]}],"base":"f6f3be437bb0773c61842ae0d5b341d1e5305250","oid":"4954ceb2a7db34e7fe3e187a94c3134468fb627d","discussion":{"comments":{},"timeline":[]},"reviews":{},"timestamp":1755522785000,"resolves":[],"reactions":[]}},"assignees":[],"timeline":["fe28492b4d3638dbcc3ebfdeb6c439758a59c02e","768adf300a97137f80a8f20304757dc923fd5320","30cc38d7de672172390a92e084c1d7eed2dd3178","072159a1b1186c0400eb7baa2b8f0f553b870dcd","0bbcf6a1d06d52cde60644c69f7f36bdce34b3f6","c1fd1c876a4214d9c866019a120bdd69155e78c7"],"reviews":{}}
$ rad cob list --repo $(rad .) --type xyz.radicle.issue
...
f8f95c41605a6493dbdf057f9f04b2f7d0758a86
f9ec8a2ee4d52dd7102b001f92f9bea2a96322f9
fe4f2eac033437b69131a428474dba4636afe72c
$ rad cob show --repo $(rad .) --type xyz.radicle.issue --object f9ec8a2ee4d52dd7102b001f92f9bea2a96322f9
{"assignees":["did:key:z6Mknred24gm12HrQNWPPGuT7NhTeHE1ZEWpqVDTeRf3JLkc"],"title":"Wishlist: allow \"rad seed\" to seed many repos at once","state":{"status":"closed","reason":"solved"},"labels":[],"thread":{"comments":{"30d4d4c56f5bf9bd79d5a837f48da4c7ed433dde":{"author":"z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz","replyTo":"f9ec8a2ee4d52dd7102b001f92f9bea2a96322f9","reactions":[],"resolved":false,"body":"Closing this, since the following two patches, which address the issue, are merged:\n\n - `rad seed` : `rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/patch/3be0e68b8948e65431a288f225454bafd93de34a`\n - `rad unseed`: `rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/patch/8686f4baa288ad2d10d7c99617c5a07dd7a0b255`\n\nThanks to stemporus (`did:key:z6MkqLaY4fyQUyrQ263g9Ckccs8hUs1PepsVEAgtvjr8xo5K`) for the contributions!\n\nSee also <https://radicle.zulipchat.com/#narrow/channel/383670-patches/topic/cli.3A.20Allow.20specifying.20multiple.20rids.20to.20the.20seed.20command>.","edits":[{"author":"z6MkkPvBfjP4bQmco5Dm7UGsX2ruDBieEHi8n9DVJWX5sTEz","timestamp":1745654957000,"body":"Closing this, since the following two patches, which address the issue, are merged:\n\n - `rad seed` : `rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/patch/3be0e68b8948e65431a288f225454bafd93de34a`\n - `rad unseed`: `rad:z3gqcJUoA1n9HaHKufZs5FCSGazv5/patch/8686f4baa288ad2d10d7c99617c5a07dd7a0b255`\n\nThanks to stemporus (`did:key:z6MkqLaY4fyQUyrQ263g9Ckccs8hUs1PepsVEAgtvjr8xo5K`) for the contributions!\n\nSee also <https://radicle.zulipchat.com/#narrow/channel/383670-patches/topic/cli.3A.20Allow.20specifying.20multiple.20rids.20to.20the.20seed.20command>.","embeds":[]}]},"f9ec8a2ee4d52dd7102b001f92f9bea2a96322f9":{"author":"z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV","reactions":[],"resolved":false,"body":"`rad seed RID1 RID2 RID3`\n\ninstead of\n\n`for x in RID1 RID2 RID2; do rad seed \"$x\"; done`","edits":[{"author":"z6MkgEMYod7Hxfy9qCvDv5hYHkZ4ciWmLFgfvm3Wn1b2w2FV","timestamp":1741847414000,"body":"`rad seed RID1 RID2 RID3`\n\ninstead of\n\n`for x in RID1 RID2 RID2; do rad seed \"$x\"; done`","embeds":[]}]}},"timeline":["f9ec8a2ee4d52dd7102b001f92f9bea2a96322f9","30d4d4c56f5bf9bd79d5a837f48da4c7ed433dde"]}}
So, uhm, what???
I went digging into this again today, but with a different goal, to find out what file rad cob show failed to open.
$ strace -f rad cob show --repo $(rad .) --type xyz.radworks.job --object fd41b43d98c62a1d18e89e4f6271a645bb52f305
...
[pid 2070479] execve("/usr/local/games/rad-cob-job", ["rad-cob-job"], 0x7ffee71b7708 /* 61 vars */) = -1 ENOENT (No such file or directory)
[pid 2070479] execve("/usr/games/rad-cob-job", ["rad-cob-job"], 0x7ffee71b7708 /* 61 vars */) = -1 ENOENT (No such file or directory)
[pid 2070479] write(9, "\2\0\0\0", 4) = 4
[pid 2070479] exit_group(127) = ?
[pid 2070478] <... clone resumed>) = 2070479
[pid 2070479] +++ exited with 127 +++
...
So ok, it turns out that an external program is missing.