| @@ -14,12 +14,12 @@ |
| | "commit": "/alice.test/tally/commit/97727c2c19d5d8b3849b2ed9ad47130cee9798f5", |
| | "pulls": "/alice.test/tally/pulls", |
| | "pulls-closed": "/alice.test/tally/pulls?state=closed", |
| | "pull": "/alice.test/tally/pull/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2iaenkpxm", |
| | "pull-open": "/alice.test/tally/pull/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2iblvbjf4", |
| | "pull": "/alice.test/tally/pull/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7ltvdaqlc", |
| | "pull-open": "/alice.test/tally/pull/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7luqbsoys", |
| | "issues": "/alice.test/tally/issues", |
| | "issues-closed": "/alice.test/tally/issues?state=closed", |
| | "issue": "/alice.test/tally/issue/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2ibo7p2f5", |
| | "issue-closed": "/alice.test/tally/issue/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2ibstrlfw", |
| | "issue": "/alice.test/tally/issue/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7luqyfmyu", |
| | "issue-closed": "/alice.test/tally/issue/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7lusdxeyx", |
| | "fork": "/bob.test/tally", |
| | "empty": "/alice.test/scratch", |
| | "missing": "/alice.test/tally/blob/main/nowhere" |
| @@ -31,7 +31,7 @@ |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"Alice Moreau\",\"bio\":\"Small tools for text. Writes tally.\",\"about\":\"Small tools for text. Writes tally.\",\"repos\":[{\"owner\":\"alice.test\",\"name\":\"scratch\",\"description\":null,\"forkOf\":null,\"createdAt\":\"2026-10-09T13:42:00.000Z\",\"private\":false},{\"owner\":\"alice.test\",\"name\":\"notes\",\"description\":\"Scratch notes 📝\",\"forkOf\":null,\"createdAt\":\"2026-10-09T11:51:00.000Z\",\"private\":false},{\"owner\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"createdAt\":\"2026-10-09T10:00:00.000Z\",\"private\":false}]}" |
| | "body": "{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"Alice Moreau\",\"bio\":\"Small tools for text. Writes tally.\",\"avatar\":null,\"about\":\"Small tools for text. Writes tally.\",\"repos\":[{\"owner\":\"alice.test\",\"name\":\"scratch\",\"description\":null,\"forkOf\":null,\"createdAt\":\"2026-10-09T13:42:00.000Z\",\"private\":false},{\"owner\":\"alice.test\",\"name\":\"notes\",\"description\":\"Scratch notes 📝\",\"forkOf\":null,\"createdAt\":\"2026-10-09T11:51:00.000Z\",\"private\":false},{\"owner\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"createdAt\":\"2026-10-09T10:00:00.000Z\",\"private\":false}]}" |
| | }, |
| | "/_data/alice.test/scratch": { |
| | "status": 200, |
| @@ -97,21 +97,21 @@ |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"rev\":\"main\",\"path\":\"\",\"page\":0,\"commits\":[{\"sha\":\"686a36205b82620af07dd99997c570f04f461df9\",\"parents\":[\"97727c2c19d5d8b3849b2ed9ad47130cee9798f5\"],\"author\":\"Bob Tanaka\",\"date\":\"2026-10-09T09:31:00+00:00\",\"message\":\"Count no lines in empty input\"},{\"sha\":\"97727c2c19d5d8b3849b2ed9ad47130cee9798f5\",\"parents\":[\"4f6b9a1168c6534f64c836b4c3a11e23e74637ad\"],\"author\":\"Alice Moreau\",\"date\":\"2026-10-08T11:47:00+00:00\",\"message\":\"Split parsing into its own module\"},{\"sha\":\"4f6b9a1168c6534f64c836b4c3a11e23e74637ad\",\"parents\":[\"d1f55d39d12c4d6ba6ab25b1e9c76d15fb2cbaca\"],\"author\":\"Alice Moreau\",\"date\":\"2026-10-06T10:02:00+00:00\",\"message\":\"Document usage and output\"},{\"sha\":\"d1f55d39d12c4d6ba6ab25b1e9c76d15fb2cbaca\",\"parents\":[\"7818a5bc1bef9184ad313cf79175da3d87d4b9cf\"],\"author\":\"Alice Moreau\",\"date\":\"2026-10-05T17:21:00+00:00\",\"message\":\"Add a logo\"},{\"sha\":\"7818a5bc1bef9184ad313cf79175da3d87d4b9cf\",\"parents\":[\"a7e467c6f9acd7b1be0603afdec0b8cfdcf3cf49\"],\"author\":\"Alice Moreau\",\"date\":\"2026-10-03T08:05:00+00:00\",\"message\":\"Read from stdin when no file is given\\n\\nSo tally works at the end of a pipe, as wc does. The name shown\\nfor stdin is \\\"-\\\".\"},{\"sha\":\"a7e467c6f9acd7b1be0603afdec0b8cfdcf3cf49\",\"parents\":[\"cac02c464843db4d55fecfa69d327ef7b12702c0\"],\"author\":\"Alice Moreau\",\"date\":\"2026-10-02T14:40:00+00:00\",\"message\":\"Count words, lines and bytes\"},{\"sha\":\"cac02c464843db4d55fecfa69d327ef7b12702c0\",\"parents\":[],\"author\":\"Alice Moreau\",\"date\":\"2026-10-01T09:12:00+00:00\",\"message\":\"Start tally\"}],\"more\":false}" |
| | }, |
| | "/_data/alice.test/tally/issue/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2ibo7p2f5": { |
| | "/_data/alice.test/tally/issue/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7luqyfmyu": { |
| | "status": 200, |
| | "headers": { |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"issue\",\"title\":\"Fails on files that are not UTF-8\",\"state\":\"open\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T23:34:00.000Z\",\"base\":null,\"from\":null,\"branch\":null,\"body\":\"<p>Running <code>tally image.png</code> panics:</p>\\n<pre><code>thread 'main' panicked at src/main.rs:8:56:\\nstream did not contain valid UTF-8\\n</code></pre>\\n<p>wc counts bytes for any file.</p>\\n\",\"comments\":[{\"author\":\"alice.test\",\"createdAt\":\"2026-10-10T00:11:00.000Z\",\"html\":\"<p>Confirmed. Reading bytes and counting words lossily would fix it.</p>\\n\",\"verdict\":null}],\"merged\":null,\"about\":\"Running `tally image.png` panics: ``` thread 'main' panicked at src/main.rs:8:56: stream did not contain valid UTF-8 ``` wc counts bytes for any file.\",\"card\":\"/alice.test/tally/issue/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2ibo7p2f5/card.png?v=160a3e2db8db2127\"}" |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"issue\",\"title\":\"Fails on files that are not UTF-8\",\"state\":\"open\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T23:34:00.000Z\",\"base\":null,\"from\":null,\"branch\":null,\"body\":\"<p>Running <code>tally image.png</code> panics:</p>\\n<pre><code>thread 'main' panicked at src/main.rs:8:56:\\nstream did not contain valid UTF-8\\n</code></pre>\\n<p>wc counts bytes for any file.</p>\\n\",\"comments\":[{\"author\":\"alice.test\",\"createdAt\":\"2026-10-10T00:11:00.000Z\",\"html\":\"<p>Confirmed. Reading bytes and counting words lossily would fix it.</p>\\n\",\"verdict\":null}],\"merged\":null,\"about\":\"Running `tally image.png` panics: ``` thread 'main' panicked at src/main.rs:8:56: stream did not contain valid UTF-8 ``` wc counts bytes for any file.\",\"card\":\"/alice.test/tally/issue/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7luqyfmyu/card.png?v=160a3e2db8db2127\"}" |
| | }, |
| | "/_data/alice.test/tally/issue/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2ibstrlfw": { |
| | "/_data/alice.test/tally/issue/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7lusdxeyx": { |
| | "status": 200, |
| | "headers": { |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"issue\",\"title\":\"Typo in the README ✏️\",\"state\":\"closed\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-10T00:48:00.000Z\",\"base\":null,\"from\":null,\"branch\":null,\"body\":null,\"comments\":[],\"merged\":null,\"about\":\"An issue on alice.test/tally by bob.test.\",\"card\":\"/alice.test/tally/issue/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2ibstrlfw/card.png?v=72fe47df61de13f9\"}" |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"issue\",\"title\":\"Typo in the README ✏️\",\"state\":\"closed\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-10T00:48:00.000Z\",\"base\":null,\"from\":null,\"branch\":null,\"body\":null,\"comments\":[],\"merged\":null,\"about\":\"An issue on alice.test/tally by bob.test.\",\"card\":\"/alice.test/tally/issue/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7lusdxeyx/card.png?v=72fe47df61de13f9\"}" |
| | }, |
| | "/_data/alice.test/tally/issues": { |
| | "status": 200, |
| @@ -119,7 +119,7 @@ |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"issue\",\"open\":true,\"opened\":1,\"closed\":1,\"items\":[{\"title\":\"Fails on files that are not UTF-8\",\"state\":\"open\",\"href\":\"/alice.test/tally/issue/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2ibo7p2f5\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T23:34:00.000Z\",\"comments\":1}]}" |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"issue\",\"open\":true,\"opened\":1,\"closed\":1,\"items\":[{\"title\":\"Fails on files that are not UTF-8\",\"state\":\"open\",\"href\":\"/alice.test/tally/issue/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7luqyfmyu\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T23:34:00.000Z\",\"comments\":1}]}" |
| | }, |
| | "/_data/alice.test/tally/issues?state=closed": { |
| | "status": 200, |
| @@ -127,23 +127,23 @@ |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"issue\",\"open\":false,\"opened\":1,\"closed\":1,\"items\":[{\"title\":\"Typo in the README ✏️\",\"state\":\"closed\",\"href\":\"/alice.test/tally/issue/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2ibstrlfw\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-10T00:48:00.000Z\",\"comments\":0}]}" |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"issue\",\"open\":false,\"opened\":1,\"closed\":1,\"items\":[{\"title\":\"Typo in the README ✏️\",\"state\":\"closed\",\"href\":\"/alice.test/tally/issue/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7lusdxeyx\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-10T00:48:00.000Z\",\"comments\":0}]}" |
| | }, |
| | "/_data/alice.test/tally/pull/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2iaenkpxm": { |
| | "/_data/alice.test/tally/pull/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7ltvdaqlc": { |
| | "status": 200, |
| | "headers": { |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"pull\",\"title\":\"Count no lines in empty input\",\"state\":\"merged\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T18:38:00.000Z\",\"base\":\"main\",\"from\":\"bob.test/tally\",\"branch\":\"empty-input\",\"body\":\"<p><code>tally</code> printed one line for an empty file. <code>lines</code> now yields nothing when the text is empty, and a test covers it.</p>\\n\",\"comments\":[{\"author\":\"alice.test\",\"createdAt\":\"2026-10-09T19:15:00.000Z\",\"html\":\"<p>Could <code>lines</code> check for emptiness once, rather than in the filter?</p>\\n\",\"verdict\":\"changes\"},{\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T19:52:00.000Z\",\"html\":\"<p>It only runs per line, so the cost is one comparison each. Happy to change it if you prefer.</p>\\n\",\"verdict\":null},{\"author\":\"alice.test\",\"createdAt\":\"2026-10-09T20:29:00.000Z\",\"html\":\"<p>Fair enough. Thanks!</p>\\n\",\"verdict\":\"approve\"}],\"merged\":\"686a36205b82620af07dd99997c570f04f461df9\",\"about\":\"`tally` printed one line for an empty file. `lines` now yields nothing when the text is empty, and a test covers it.\",\"card\":\"/alice.test/tally/pull/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2iaenkpxm/card.png?v=7f555a00efc7106b\"}" |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"pull\",\"title\":\"Count no lines in empty input\",\"state\":\"merged\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T18:38:00.000Z\",\"base\":\"main\",\"from\":\"bob.test/tally\",\"branch\":\"empty-input\",\"body\":\"<p><code>tally</code> printed one line for an empty file. <code>lines</code> now yields nothing when the text is empty, and a test covers it.</p>\\n\",\"comments\":[{\"author\":\"alice.test\",\"createdAt\":\"2026-10-09T19:15:00.000Z\",\"html\":\"<p>Could <code>lines</code> check for emptiness once, rather than in the filter?</p>\\n\",\"verdict\":\"changes\"},{\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T19:52:00.000Z\",\"html\":\"<p>It only runs per line, so the cost is one comparison each. Happy to change it if you prefer.</p>\\n\",\"verdict\":null},{\"author\":\"alice.test\",\"createdAt\":\"2026-10-09T20:29:00.000Z\",\"html\":\"<p>Fair enough. Thanks!</p>\\n\",\"verdict\":\"approve\"}],\"merged\":\"686a36205b82620af07dd99997c570f04f461df9\",\"about\":\"`tally` printed one line for an empty file. `lines` now yields nothing when the text is empty, and a test covers it.\",\"card\":\"/alice.test/tally/pull/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7ltvdaqlc/card.png?v=7f555a00efc7106b\"}" |
| | }, |
| | "/_data/alice.test/tally/pull/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2iblvbjf4": { |
| | "/_data/alice.test/tally/pull/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7luqbsoys": { |
| | "status": 200, |
| | "headers": { |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"pull\",\"title\":\"Print counts as JSON with --json\",\"state\":\"open\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T22:57:00.000Z\",\"base\":\"main\",\"from\":\"bob.test/tally\",\"branch\":\"json\",\"body\":\"<p>For scripts. The object has <code>lines</code>, <code>words</code>, <code>bytes</code> and <code>name</code>.</p>\\n\",\"comments\":[],\"merged\":null,\"about\":\"For scripts. The object has `lines`, `words`, `bytes` and `name`.\",\"card\":\"/alice.test/tally/pull/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2iblvbjf4/card.png?v=029fd2cd417c8b94\"}" |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"pull\",\"title\":\"Print counts as JSON with --json\",\"state\":\"open\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T22:57:00.000Z\",\"base\":\"main\",\"from\":\"bob.test/tally\",\"branch\":\"json\",\"body\":\"<p>For scripts. The object has <code>lines</code>, <code>words</code>, <code>bytes</code> and <code>name</code>.</p>\\n\",\"comments\":[],\"merged\":null,\"about\":\"For scripts. The object has `lines`, `words`, `bytes` and `name`.\",\"card\":\"/alice.test/tally/pull/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7luqbsoys/card.png?v=029fd2cd417c8b94\"}" |
| | }, |
| | "/_data/alice.test/tally/pulls": { |
| | "status": 200, |
| @@ -151,7 +151,7 @@ |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"pull\",\"open\":true,\"opened\":1,\"closed\":1,\"items\":[{\"title\":\"Print counts as JSON with --json\",\"state\":\"open\",\"href\":\"/alice.test/tally/pull/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2iblvbjf4\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T22:57:00.000Z\",\"comments\":0}]}" |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"pull\",\"open\":true,\"opened\":1,\"closed\":1,\"items\":[{\"title\":\"Print counts as JSON with --json\",\"state\":\"open\",\"href\":\"/alice.test/tally/pull/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7luqbsoys\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T22:57:00.000Z\",\"comments\":0}]}" |
| | }, |
| | "/_data/alice.test/tally/pulls?state=closed": { |
| | "status": 200, |
| @@ -159,7 +159,7 @@ |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"pull\",\"open\":false,\"opened\":1,\"closed\":1,\"items\":[{\"title\":\"Count no lines in empty input\",\"state\":\"merged\",\"href\":\"/alice.test/tally/pull/did:plc:gr2tavtgbdy4zqtlwnzlgzdc/3myg2iaenkpxm\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T18:38:00.000Z\",\"comments\":3}]}" |
| | "body": "{\"repo\":{\"authority\":\"alice.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":null,\"head\":\"main\",\"pulls\":1,\"issues\":1,\"about\":\"Counts lines, words and bytes, with output that lines up\",\"card\":\"/alice.test/tally/card.png?v=715ad689e9f7ec63\"},\"kind\":\"pull\",\"open\":false,\"opened\":1,\"closed\":1,\"items\":[{\"title\":\"Count no lines in empty input\",\"state\":\"merged\",\"href\":\"/alice.test/tally/pull/did:plc:22yzhoyrfxuuax3knxdw3t72/3myg7ltvdaqlc\",\"author\":\"bob.test\",\"createdAt\":\"2026-10-09T18:38:00.000Z\",\"comments\":3}]}" |
| | }, |
| | "/_data/alice.test/tally/tree/main/src": { |
| | "status": 200, |
| @@ -175,7 +175,7 @@ |
| | "content-type": "application/json", |
| | "cache-control": "no-cache" |
| | }, |
| | "body": "{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\",\"name\":null,\"bio\":null,\"about\":null,\"repos\":[{\"owner\":\"bob.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":{\"shown\":\"alice.test/tally\",\"href\":\"/alice.test/tally\"},\"createdAt\":\"2026-10-09T14:19:00.000Z\",\"private\":false}]}" |
| | "body": "{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\",\"name\":null,\"bio\":null,\"avatar\":null,\"about\":null,\"repos\":[{\"owner\":\"bob.test\",\"name\":\"tally\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":{\"shown\":\"alice.test/tally\",\"href\":\"/alice.test/tally\"},\"createdAt\":\"2026-10-09T14:19:00.000Z\",\"private\":false}]}" |
| | }, |
| | "/_data/bob.test/tally": { |
| | "status": 200, |
| @@ -216,7 +216,7 @@ |
| | "headers": { |
| | "content-type": "application/json" |
| | }, |
| | "body": "{\"events\":[{\"createdAt\":\"2026-10-10T01:25:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#changed\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.issue/3myg2ibstrlfw\",\"title\":\"Typo in the README ✏️\",\"state\":\"closed\"}},{\"createdAt\":\"2026-10-10T00:48:00.000Z\",\"actor\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#opened\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.issue/3myg2ibstrlfw\",\"title\":\"Typo in the README ✏️\"}},{\"createdAt\":\"2026-10-10T00:11:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#commented\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.issue/3myg2ibo7p2f5\",\"title\":\"Fails on files that are not UTF-8\",\"text\":\"Confirmed. Reading bytes and counting words lossily would fix it.\"}},{\"createdAt\":\"2026-10-09T23:34:00.000Z\",\"actor\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#opened\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.issue/3myg2ibo7p2f5\",\"title\":\"Fails on files that are not UTF-8\"}},{\"createdAt\":\"2026-10-09T22:57:00.000Z\",\"actor\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#opened\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.pull/3myg2iblvbjf4\",\"title\":\"Print counts as JSON with --json\"}},{\"createdAt\":\"2026-10-09T22:20:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#changed\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.pull/3myg2iaenkpxm\",\"title\":\"Count no lines in empty input\",\"state\":\"merged\"}},{\"createdAt\":\"2026-10-09T21:06:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/main\",\"created\":false,\"count\":1,\"commits\":[{\"sha\":\"686a36205b82620af07dd99997c570f04f461df9\",\"message\":\"Count no lines in empty input\"}]}},{\"createdAt\":\"2026-10-09T20:29:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#commented\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.pull/3myg2iaenkpxm\",\"title\":\"Count no lines in empty input\",\"text\":\"Fair enough. Thanks!\",\"verdict\":\"approve\"}},{\"createdAt\":\"2026-10-09T19:52:00.000Z\",\"actor\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#commented\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.pull/3myg2iaenkpxm\",\"title\":\"Count no lines in empty input\",\"text\":\"It only runs per line, so the cost is one comparison each. Happy to change it if you prefer.\"}},{\"createdAt\":\"2026-10-09T19:15:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#commented\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.pull/3myg2iaenkpxm\",\"title\":\"Count no lines in empty input\",\"text\":\"Could `lines` check for emptiness once, rather than in the filter?\",\"verdict\":\"changes\"}},{\"createdAt\":\"2026-10-09T18:38:00.000Z\",\"actor\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#opened\",\"subject\":\"at://did:plc:gr2tavtgbdy4zqtlwnzlgzdc/dev.knotless.pull/3myg2iaenkpxm\",\"title\":\"Count no lines in empty input\"}},{\"createdAt\":\"2026-10-09T17:24:00.000Z\",\"actor\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/json\",\"created\":true,\"count\":1,\"commits\":[{\"sha\":\"2063dabcda7417d5831f3b6bfd8ffb18da82fb8e\",\"message\":\"Print counts as JSON with --json\"}]}},{\"createdAt\":\"2026-10-09T16:10:00.000Z\",\"actor\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/empty-input\",\"created\":true,\"count\":1,\"commits\":[{\"sha\":\"686a36205b82620af07dd99997c570f04f461df9\",\"message\":\"Count no lines in empty input\"}]}},{\"createdAt\":\"2026-10-09T14:19:00.000Z\",\"actor\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:gr2tavtgbdy4zqtlwnzlgzdc\",\"handle\":\"bob.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#created\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"}}},{\"createdAt\":\"2026-10-09T13:42:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"scratch\"},\"action\":{\"$type\":\"dev.knotless.getFeed#created\"}},{\"createdAt\":\"2026-10-09T12:28:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"notes\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/main\",\"created\":true,\"count\":1,\"commits\":[{\"sha\":\"e78543abf0f799b7eb5713ccdf8d88b84d0f8ec0\",\"message\":\"Begin\"}]}},{\"createdAt\":\"2026-10-09T11:51:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"notes\"},\"action\":{\"$type\":\"dev.knotless.getFeed#created\",\"description\":\"Scratch notes 📝\"}},{\"createdAt\":\"2026-10-09T10:37:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/main\",\"created\":true,\"count\":6,\"commits\":[{\"sha\":\"97727c2c19d5d8b3849b2ed9ad47130cee9798f5\",\"message\":\"Split parsing into its own module\"},{\"sha\":\"4f6b9a1168c6534f64c836b4c3a11e23e74637ad\",\"message\":\"Document usage and output\"},{\"sha\":\"d1f55d39d12c4d6ba6ab25b1e9c76d15fb2cbaca\",\"message\":\"Add a logo\"},{\"sha\":\"7818a5bc1bef9184ad313cf79175da3d87d4b9cf\",\"message\":\"Read from stdin when no file is given\\n\\nSo tally works at the end of a pipe, as wc does. The name shown\\nfor stdin is \\\"-\\\".\"},{\"sha\":\"a7e467c6f9acd7b1be0603afdec0b8cfdcf3cf49\",\"message\":\"Count words, lines and bytes\"},{\"sha\":\"cac02c464843db4d55fecfa69d327ef7b12702c0\",\"message\":\"Start tally\"}]}},{\"createdAt\":\"2026-10-09T10:00:00.000Z\",\"actor\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:fx5ba2ixb2z4obfxhstbwga6\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#created\",\"description\":\"Counts lines, words and bytes, with output that lines up\"}}]}" |
| | "body": "{\"events\":[{\"createdAt\":\"2026-10-10T01:25:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#changed\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.issue/3myg7lusdxeyx\",\"title\":\"Typo in the README ✏️\",\"state\":\"closed\"}},{\"createdAt\":\"2026-10-10T00:48:00.000Z\",\"actor\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#opened\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.issue/3myg7lusdxeyx\",\"title\":\"Typo in the README ✏️\"}},{\"createdAt\":\"2026-10-10T00:11:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#commented\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.issue/3myg7luqyfmyu\",\"title\":\"Fails on files that are not UTF-8\",\"text\":\"Confirmed. Reading bytes and counting words lossily would fix it.\"}},{\"createdAt\":\"2026-10-09T23:34:00.000Z\",\"actor\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#opened\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.issue/3myg7luqyfmyu\",\"title\":\"Fails on files that are not UTF-8\"}},{\"createdAt\":\"2026-10-09T22:57:00.000Z\",\"actor\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#opened\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.pull/3myg7luqbsoys\",\"title\":\"Print counts as JSON with --json\"}},{\"createdAt\":\"2026-10-09T22:20:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#changed\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.pull/3myg7ltvdaqlc\",\"title\":\"Count no lines in empty input\",\"state\":\"merged\"}},{\"createdAt\":\"2026-10-09T21:06:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/main\",\"created\":false,\"count\":1,\"commits\":[{\"sha\":\"686a36205b82620af07dd99997c570f04f461df9\",\"message\":\"Count no lines in empty input\"}]}},{\"createdAt\":\"2026-10-09T20:29:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#commented\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.pull/3myg7ltvdaqlc\",\"title\":\"Count no lines in empty input\",\"text\":\"Fair enough. Thanks!\",\"verdict\":\"approve\"}},{\"createdAt\":\"2026-10-09T19:52:00.000Z\",\"actor\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#commented\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.pull/3myg7ltvdaqlc\",\"title\":\"Count no lines in empty input\",\"text\":\"It only runs per line, so the cost is one comparison each. Happy to change it if you prefer.\"}},{\"createdAt\":\"2026-10-09T19:15:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#commented\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.pull/3myg7ltvdaqlc\",\"title\":\"Count no lines in empty input\",\"text\":\"Could `lines` check for emptiness once, rather than in the filter?\",\"verdict\":\"changes\"}},{\"createdAt\":\"2026-10-09T18:38:00.000Z\",\"actor\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#opened\",\"subject\":\"at://did:plc:22yzhoyrfxuuax3knxdw3t72/dev.knotless.pull/3myg7ltvdaqlc\",\"title\":\"Count no lines in empty input\"}},{\"createdAt\":\"2026-10-09T17:24:00.000Z\",\"actor\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/json\",\"created\":true,\"count\":1,\"commits\":[{\"sha\":\"2063dabcda7417d5831f3b6bfd8ffb18da82fb8e\",\"message\":\"Print counts as JSON with --json\"}]}},{\"createdAt\":\"2026-10-09T16:10:00.000Z\",\"actor\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/empty-input\",\"created\":true,\"count\":1,\"commits\":[{\"sha\":\"686a36205b82620af07dd99997c570f04f461df9\",\"message\":\"Count no lines in empty input\"}]}},{\"createdAt\":\"2026-10-09T14:19:00.000Z\",\"actor\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\"},\"repo\":{\"did\":\"did:plc:22yzhoyrfxuuax3knxdw3t72\",\"handle\":\"bob.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#created\",\"description\":\"Counts lines, words and bytes, with output that lines up\",\"forkOf\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"}}},{\"createdAt\":\"2026-10-09T13:42:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"scratch\"},\"action\":{\"$type\":\"dev.knotless.getFeed#created\"}},{\"createdAt\":\"2026-10-09T12:28:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"notes\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/main\",\"created\":true,\"count\":1,\"commits\":[{\"sha\":\"e78543abf0f799b7eb5713ccdf8d88b84d0f8ec0\",\"message\":\"Begin\"}]}},{\"createdAt\":\"2026-10-09T11:51:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"notes\"},\"action\":{\"$type\":\"dev.knotless.getFeed#created\",\"description\":\"Scratch notes 📝\"}},{\"createdAt\":\"2026-10-09T10:37:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#pushed\",\"ref\":\"refs/heads/main\",\"created\":true,\"count\":6,\"commits\":[{\"sha\":\"97727c2c19d5d8b3849b2ed9ad47130cee9798f5\",\"message\":\"Split parsing into its own module\"},{\"sha\":\"4f6b9a1168c6534f64c836b4c3a11e23e74637ad\",\"message\":\"Document usage and output\"},{\"sha\":\"d1f55d39d12c4d6ba6ab25b1e9c76d15fb2cbaca\",\"message\":\"Add a logo\"},{\"sha\":\"7818a5bc1bef9184ad313cf79175da3d87d4b9cf\",\"message\":\"Read from stdin when no file is given\\n\\nSo tally works at the end of a pipe, as wc does. The name shown\\nfor stdin is \\\"-\\\".\"},{\"sha\":\"a7e467c6f9acd7b1be0603afdec0b8cfdcf3cf49\",\"message\":\"Count words, lines and bytes\"},{\"sha\":\"cac02c464843db4d55fecfa69d327ef7b12702c0\",\"message\":\"Start tally\"}]}},{\"createdAt\":\"2026-10-09T10:00:00.000Z\",\"actor\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\"},\"repo\":{\"did\":\"did:plc:3ygt44h3csutc5c7xfpkp45l\",\"handle\":\"alice.test\",\"name\":\"tally\"},\"action\":{\"$type\":\"dev.knotless.getFeed#created\",\"description\":\"Counts lines, words and bytes, with output that lines up\"}}]}" |
| | } |
| | } |
| | } |