<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/src/bin/git_remote_nostr/list.rs, branch v2.4.2</title>
<subtitle>Personal mirror of DanConwayDev/ngit-cli on git.upleb.uk
</subtitle>
<id>https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v2.4.2</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v2.4.2'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/'/>
<updated>2026-04-22T13:00:17+00:00</updated>
<entry>
<title>fix: prevent fatal clone/fetch errors when PR git data unavailable</title>
<updated>2026-04-22T13:00:17+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-04-22T13:00:17+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=e98acf8c5da5033b20aee8510485a8b4a4f4a56e'/>
<id>urn:sha1:e98acf8c5da5033b20aee8510485a8b4a4f4a56e</id>
<content type='text'>
Only advertise `refs/heads/pr/*` branches once their tip OIDs are
confirmed present locally; prevents `fatal: bad object` / `remote did
not send all necessary objects` errors during clone/fetch when a PR tip
lives on a different git server than the one that won the bulk prefetch
race.

After the bulk prefetch, collect remaining missing PR tip OIDs and do
one batch fetch per repo git server using only the OIDs that server has
advertised; break early once all are satisfied and skip servers that
carry none. Avoids batch-poisoning (a server rejects the whole request
if any single OID is absent) and redundant connections.

Restrict mop-up fetches and run_fetch to the repo's declared git
servers; do not fetch from clone-tag URLs in PR events - they are
submitter-supplied and could let a malicious or slow server stall every
clone/fetch operation.

Also apply rustfmt and fix clippy warnings.
</content>
</entry>
<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: add spinner for git fetch in non-verbose mode</title>
<updated>2026-02-13T10:51:25+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-13T10:51:25+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=40b439ae4d69b858274be51dd5af513c3b4f46f0'/>
<id>urn:sha1:40b439ae4d69b858274be51dd5af513c3b4f46f0</id>
<content type='text'>
Shows a progress spinner when fetching from git remotes in non-verbose mode.
Suppresses git fetch output and listing messages when not in verbose mode.
Uses NGITTEST environment variable for test timeouts.
</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>refactor: simplify get_short_git_server_name</title>
<updated>2025-11-13T14:55:50+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-11-11T12:30:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=ebab8d2aa487d1814e802c5a51b19d4bb1592e01'/>
<id>urn:sha1:ebab8d2aa487d1814e802c5a51b19d4bb1592e01</id>
<content type='text'>
so it doesnt use the git_repo
</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(fetch): surpress some warnings for some users</title>
<updated>2025-10-17T12:14:34+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-10-17T12:14:34+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=c7c6e8ba4bf3309aed92a620b2435370dae0d6ed'/>
<id>urn:sha1:c7c6e8ba4bf3309aed92a620b2435370dae0d6ed</id>
<content type='text'>
only the maintainers and author of a poorly formatted proposal need
to know it was submitted but cant be created as a PR branch
</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>fix: list shows `/pr` PRs when git data is local</title>
<updated>2025-09-01T08:13:20+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2025-09-01T08:13:20+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=00d38ac675c69cacab3c4ad3ad1c34666c06d293'/>
<id>urn:sha1:00d38ac675c69cacab3c4ad3ad1c34666c06d293</id>
<content type='text'>
even if it is not on repository remotes, as it may have been pushed
to a user's git server instead
</content>
</entry>
</feed>
