<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/CHANGELOG.md, branch v2.2.3</title>
<subtitle>Personal mirror of DanConwayDev/ngit-cli on git.upleb.uk
</subtitle>
<id>https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v2.2.3</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v2.2.3'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/'/>
<updated>2026-02-27T17:29:01+00:00</updated>
<entry>
<title>chore: bump version to v2.2.3</title>
<updated>2026-02-27T17:29:01+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T17:29:01+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=f91a0d00bafe2af1f6b6828c3de3d3e5d65153c3'/>
<id>urn:sha1:f91a0d00bafe2af1f6b6828c3de3d3e5d65153c3</id>
<content type='text'>
Mark v2.2.2 as yanked in changelog; include annotated-tag sync
regression fix in this release.
</content>
</entry>
<entry>
<title>fix: skip ^{} peeled-tag refs in sync to prevent invalid refspec crash</title>
<updated>2026-02-27T17:19:20+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T17:17:12+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=e7d7f933cd7eac19434f09096a311adeb5e60747'/>
<id>urn:sha1:e7d7f933cd7eac19434f09096a311adeb5e60747</id>
<content type='text'>
Regression introduced in 28ad5440: ngit sync crashed with
'invalid refspec refs/remotes/origin/v1.4.4^{}:refs/tags/v1.4.4^{}'
on repos with annotated tags. Fixed by guarding all three iteration
sites in sync.rs and identify_remote_sync_issues in list.rs; also
corrected the always-false logic bug in invalid_nostr_state_ref.
</content>
</entry>
<entry>
<title>chore: bump version to v2.2.2</title>
<updated>2026-02-27T16:29:46+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T16:29:46+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=7ca0db29952ddbb27d74e30937562210cfbba56a'/>
<id>urn:sha1:7ca0db29952ddbb27d74e30937562210cfbba56a</id>
<content type='text'>
Bump Cargo.toml version to 2.2.2 and promote CHANGELOG [Unreleased]
entries to [2.2.2].
</content>
</entry>
<entry>
<title>fix: include KIND_PULL_REQUEST IDs in proposal_ids for fetch filters</title>
<updated>2026-02-27T16:11:36+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T16:11:36+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=ba87592c87eb964b1c3a2d17543e38b9b70ed1a6'/>
<id>urn:sha1:ba87592c87eb964b1c3a2d17543e38b9b70ed1a6</id>
<content type='text'>
kind-5 deletion events that only #e-tag a PR Kind event (kind 1618)
were never fetched because proposal_ids was built from Kind::GitPatch
events only. The deleted PR event remained in the local cache and
continued to appear as a remote ref (refs/heads/pr/&lt;branch&gt;).
</content>
</entry>
<entry>
<title>feat: ngit sync --force republishes state event even with no ref changes</title>
<updated>2026-02-27T15:53:11+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T15:51:01+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=71cd982e5ca3e6f60fdf33fd41d0db3eabdbf39f'/>
<id>urn:sha1:71cd982e5ca3e6f60fdf33fd41d0db3eabdbf39f</id>
<content type='text'>
allows users to repair repos whose state event is missing ^{} peeled refs
for annotated tags (or any other corruption) without needing to push a new
ref. the new event is signed with a fresh timestamp and broadcast to all
repo relays and the user's write relays.
</content>
</entry>
<entry>
<title>fix: annotated tags missing from list due to dropped peeled refs</title>
<updated>2026-02-27T15:46:37+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T15:40:24+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=28ad5440c7184de9833f8448bc90153ee4499c83'/>
<id>urn:sha1:28ad5440c7184de9833f8448bc90153ee4499c83</id>
<content type='text'>
RepoState::try_from was explicitly discarding all refs/tags/*^{} entries
("peeled" refs) when parsing the nostr state event. This meant the list
command only advertised the tag object OID, but git requires two lines for
annotated tags:

  &lt;tag-object-oid&gt; refs/tags/v1.0.0
  &lt;commit-oid&gt;     refs/tags/v1.0.0^{}

Without the ^{} peeled line git cannot resolve the tag to a commit, so
git fetch --prune treats it as unresolvable and deletes it.

The nostr state event already stores both entries correctly (written by
generate_updated_state in push.rs). The fix simply stops try_from from
discarding the ^{} entries on read, so they flow through to the list
output unchanged.
</content>
</entry>
<entry>
<title>fix: update fallback signer relays</title>
<updated>2026-02-27T14:26:48+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T14:18:11+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=3aa9b7a8e49d8ec5a87693d3f52ae2c77f036ff2'/>
<id>urn:sha1:3aa9b7a8e49d8ec5a87693d3f52ae2c77f036ff2</id>
<content type='text'>
Replace nsec.app with bucket.coracle.social and nos.lol.
</content>
</entry>
<entry>
<title>feat: add --bunker-url to account login for non-interactive use</title>
<updated>2026-02-27T14:24:57+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T10:07:30+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=2c48e37f8341e0d207dd3260c439a0729464b03d'/>
<id>urn:sha1:2c48e37f8341e0d207dd3260c439a0729464b03d</id>
<content type='text'>
allows non-interactive bunker:// URL login without requiring --nsec,
by connecting to the remote signer and saving credentials to git config
</content>
</entry>
<entry>
<title>feat: show and allow changing signer relays in nostrconnect flow</title>
<updated>2026-02-27T14:24:52+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-27T09:31:45+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=436b707b2bdecb995bbdb374a029714c9f4c5159'/>
<id>urn:sha1:436b707b2bdecb995bbdb374a029714c9f4c5159</id>
<content type='text'>
display signer relays below QR code and nostrconnect URL with an option
to change them via the existing multiselect UI before connecting
</content>
</entry>
<entry>
<title>feat: track and display kind-5 deletion count in FetchReport</title>
<updated>2026-02-26T21:13:29+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-26T21:13:29+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=76a5e7b46dbe90ebf5e31904cb510e6cab242cf4'/>
<id>urn:sha1:76a5e7b46dbe90ebf5e31904cb510e6cab242cf4</id>
<content type='text'>
Add a deletions counter to FetchReport, incremented in
process_fetched_events for each kind-5 event received and accumulated
across relays in consolidate_fetch_reports. The count is included in
the fetch summary display (e.g. "1 deletion", "2 deletions").
</content>
</entry>
</feed>
