<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/tests/git_remote_nostr/list.rs, branch main</title>
<subtitle>Personal mirror of DanConwayDev/ngit-cli on git.upleb.uk
</subtitle>
<id>https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=main</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/'/>
<updated>2026-02-26T15:26:20+00:00</updated>
<entry>
<title>fix: advertise only state events with resolvable git objects</title>
<updated>2026-02-26T15:26:20+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-26T14:00:12+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=d8b85cbce5cba9bfb8b15a8bd5c1b7200ff3e488'/>
<id>urn:sha1:d8b85cbce5cba9bfb8b15a8bd5c1b7200ff3e488</id>
<content type='text'>
git-remote-nostr now walks the per-relay state events captured in
FetchReport::state_per_relay (newest first) and advertises the first
one whose every OID is either present on at least one git server
(confirmed via list_refs) or already available locally.  If no such
state event exists it falls back to the raw git server state.

Previously the latest nostr state event was always used regardless of
whether its OIDs had been pushed to any server, causing catastrophic
missing-object errors during clone or fetch when a state event was
published ahead of the corresponding git push.
</content>
</entry>
<entry>
<title>feat(list): make list async and include sync report inline</title>
<updated>2025-11-13T22:08:56+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-11-13T17:18:35+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=82c7a95f6e9aa266d2f0d2035a0ce4f1715b62ad'/>
<id>urn:sha1:82c7a95f6e9aa266d2f0d2035a0ce4f1715b62ad</id>
<content type='text'>
copy relay fetching approach to async and reporting
</content>
</entry>
<entry>
<title>fix: out of sync grasp server cli output</title>
<updated>2025-11-13T14:49:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-11-11T08:31:46+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=65f3bd360c065aca493eddf7eb5d3d8191a84b56'/>
<id>urn:sha1:65f3bd360c065aca493eddf7eb5d3d8191a84b56</id>
<content type='text'>
so it shows a summary rather than a lot of lines of issues
</content>
</entry>
<entry>
<title>fix: cli output line deletion during fetch</title>
<updated>2025-11-13T14:40:09+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-11-11T07:21:08+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=52370f542dad87ab029a5d701cc46658d5aef91b'/>
<id>urn:sha1:52370f542dad87ab029a5d701cc46658d5aef91b</id>
<content type='text'>
also reduce the clutter in the cli output for grasp servers.
</content>
</entry>
<entry>
<title>fix(remote): `refs/pr-by-id/*` ~&gt; `refs/pr/*/head`</title>
<updated>2025-09-03T15:57:14+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-09-03T15:57:14+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=4bd46c3cf7bacb062d45d3c99d3edfadc95cb139'/>
<id>urn:sha1:4bd46c3cf7bacb062d45d3c99d3edfadc95cb139</id>
<content type='text'>
to align more closely with githubs `refs/pull/*/head`

we can pretend that pr means both Patch Request and Pull Request
</content>
</entry>
<entry>
<title>feat(remote): list proposals as `refs/pr-by-id/*`</title>
<updated>2025-08-15T14:53:59+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-08-15T14:17:39+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=28a37393ee62e3b53dad69d58810f72151bd58c2'/>
<id>urn:sha1:28a37393ee62e3b53dad69d58810f72151bd58c2</id>
<content type='text'>
This branch name cannot be attacked by brute forcing a
shorthand event id like refs/pr/&lt;branch-name(&lt;shorthand-event-id)
can.
</content>
</entry>
<entry>
<title>feat(remote): list all proposals as `refs/pr/*`</title>
<updated>2025-08-15T14:36:05+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-08-15T14:14:39+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=b7f48324a02093d0214b6788e8d7005569a08145'/>
<id>urn:sha1:b7f48324a02093d0214b6788e8d7005569a08145</id>
<content type='text'>
here we can list Pull Requests whose data aren't on the repo relays
without causing `git clone nostr://` to fail.

we can also list proposals of all statuses so that can review
closed proposals.
</content>
</entry>
<entry>
<title>chore: nix flake update</title>
<updated>2025-07-16T09:39:35+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-07-16T09:10:41+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=092b9606ff2b721d858a5c7b2b27a2f9942b4bc4'/>
<id>urn:sha1:092b9606ff2b721d858a5c7b2b27a2f9942b4bc4</id>
<content type='text'>
required running:
`cargo fix --allow-dirty --allow-staged`
`cargo clippy --fix --allow-dirty -- -D warnings`
to fix problems

and then manually fixing some too
</content>
</entry>
<entry>
<title>fix(remote): add resilience to `prs`</title>
<updated>2024-09-23T12:36:53+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2024-09-23T09:46:26+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=2cdbb8c7ac6c98af6e36c4458c08bef2299794e1'/>
<id>urn:sha1:2cdbb8c7ac6c98af6e36c4458c08bef2299794e1</id>
<content type='text'>
make poorly formatted patches fail silently. we stop trusting that the
`commit` tag in the latest patch can be produced by apply the patches.
to achieve this we must recreate the commit during the list command,
which require fetching the parent oids.

support patches without optional `commit` and `parent-commit` tags.
</content>
</entry>
<entry>
<title>test(remote): fix test to ignore status updates</title>
<updated>2024-09-17T10:23:44+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2024-09-17T10:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=73480c03e194808bec7cbbf8c2d7064743d03369'/>
<id>urn:sha1:73480c03e194808bec7cbbf8c2d7064743d03369</id>
<content type='text'>
as changes to status updates has causes many tests to fail
</content>
</entry>
</feed>
