<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/CHANGELOG.md, branch v2.4.0</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.0</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v2.4.0'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/'/>
<updated>2026-04-10T20:46:02+00:00</updated>
<entry>
<title>chore: release v2.4.0</title>
<updated>2026-04-10T20:46:02+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-04-10T20:45:06+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=205ca05897cbc727d9b75e7ab68375b5c93ead39'/>
<id>urn:sha1:205ca05897cbc727d9b75e7ab68375b5c93ead39</id>
<content type='text'>
Add git worktree support and fix patch parsing, panic on bare npub clone,
percent-encoding of reserved characters in identifiers, and push errors.
</content>
</entry>
<entry>
<title>fix: percent-encode identifier in nostr:// URLs and GRASP HTTP paths</title>
<updated>2026-04-10T16:30:02+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-04-10T16:25:26+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=47622eb762e802a9caa2f37d8162eaaf2f9aa9ca'/>
<id>urn:sha1:47622eb762e802a9caa2f37d8162eaaf2f9aa9ca</id>
<content type='text'>
Repository identifiers can contain any characters per NIP-01 d-tag rules.
Encode them in nostr:// clone URLs (display and parse) and in GRASP
/&lt;npub&gt;/&lt;identifier&gt;.git paths, aligning with NIP-34 and GRASP-01.
</content>
</entry>
<entry>
<title>docs: update changelog with fixes since v2.3.0</title>
<updated>2026-03-30T16:29:24+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-30T12:24:21+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=1978add2aa61a7e65655ec023d339e656402ad7b'/>
<id>urn:sha1:1978add2aa61a7e65655ec023d339e656402ad7b</id>
<content type='text'>
- more robust patch parsing and gracefully handle errors
- panic when cloning a bare `nostr://npub/identifier` URL with no relay hints
</content>
</entry>
<entry>
<title>fix(push): gracefully handle errors identifying potential PR merges</title>
<updated>2026-03-09T10:02:25+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-09T09:14:03+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=3daf61e74c8969c91333bc92c4914c8c6077592c'/>
<id>urn:sha1:3daf61e74c8969c91333bc92c4914c8c6077592c</id>
<content type='text'>
Errors from get_merged_status_events no longer abort the push; the
call site now uses if let Ok(...) so failures are silently skipped.
Also replace an .unwrap() in create_merge_events with a safe
.map().unwrap_or_default() to avoid any panic in that path.
</content>
</entry>
<entry>
<title>chore: bump version to v2.3.0</title>
<updated>2026-03-05T22:12:45+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T22:12:45+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=45b0f8c6b1dab2d51338d88b2a7caf4b1b571f4d'/>
<id>urn:sha1:45b0f8c6b1dab2d51338d88b2a7caf4b1b571f4d</id>
<content type='text'>
Add issue management, PR/issue comments and viewing, NIP-32 labels,
set-subject, cover notes, repo-only relays, and SKILL.md.
</content>
</entry>
<entry>
<title>fix(whoami): detect and fall back to system git config for nostr login</title>
<updated>2026-03-05T15:06:02+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T15:03:37+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=09c3ae91830bd9c7543b401b19f8c65a15205d32'/>
<id>urn:sha1:09c3ae91830bd9c7543b401b19f8c65a15205d32</id>
<content type='text'>
Add GitSystem to SignerInfoSource so credentials stored in the system
git config (/etc/gitconfig) are included in the priority fallback chain
(local &gt; global &gt; system) and shown as a separate level in whoami output.
</content>
</entry>
<entry>
<title>feat(cover-note): add kind-1624 cover notes for PRs, patches, and issues</title>
<updated>2026-03-05T14:23:07+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T14:19:49+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=37244449d6d0d58bb639f181bd15092de1acaaee'/>
<id>urn:sha1:37244449d6d0d58bb639f181bd15092de1acaaee</id>
<content type='text'>
Implements experimental kind-1624 cover note events:

- KIND_COVER_NOTE constant and process_cover_note() in git_events.rs;
  replaceable semantics (latest created_at, hex-id tiebreak), author or
  maintainer only
- kind-1624 events fetched alongside labels in the fetch pipeline;
  cover_notes count added to FetchReport display
- ngit pr/issue view: cover note displayed in place of description with
  a clear 'Cover Note:' header; maintainer-authored notes identify the
  author; original description shown only with --comments; cover_note
  object included in --json output
- ngit pr set-cover-note / ngit issue set-cover-note: publish a
  kind-1624 event; nostr: mentions in --body converted to q/p tags via
  tags_from_content (same rules as issue --body)
- Fix pre-existing clippy::too_many_lines on repo/mod.rs show_info
</content>
</entry>
<entry>
<title>feat(subject): add pr/issue set-subject via NIP-32 kind-1985 labels</title>
<updated>2026-03-05T13:03:50+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T13:03:50+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=f3fcf863aae000964753f574b00e9fb9f5fcd452'/>
<id>urn:sha1:f3fcf863aae000964753f574b00e9fb9f5fcd452</id>
<content type='text'>
Adds the ability to update the displayed title of a PR or issue after
creation using a kind-1985 label event with the #subject namespace.
Only the author or a repository maintainer may set the subject. The
latest authorised event wins with tiebreak by lexicographically larger
event ID (NIP-1 replaceable event semantics). Branch names and commit
messages are never affected.

- Split get_labels() into process_labels() (additive #t) and
  process_subject() (replaceable-style #subject), with a shared
  get_labels_and_subject() entry point that processes both from a
  single pre-fetched slice of kind-1985 events
- All list/view/JSON display paths apply the subject override silently
- New ngit pr set-subject &lt;id&gt; --subject &lt;text&gt; command
- New ngit issue set-subject &lt;id&gt; --subject &lt;text&gt; command
</content>
</entry>
<entry>
<title>feat(status): add pr draft, issue resolved, and --reason for issue close</title>
<updated>2026-03-05T12:08:56+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T12:02:09+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=b0ad2fd720d0cd335c07f22767844f571e3306ff'/>
<id>urn:sha1:b0ad2fd720d0cd335c07f22767844f571e3306ff</id>
<content type='text'>
Add `ngit pr draft &lt;id&gt;` to convert a PR back to draft (kind-1632).

Add `ngit issue resolved &lt;id&gt; [--reason &lt;text&gt;]` to mark an issue as
fixed (kind-1631 GitStatusApplied), distinct from close which signals
wontfix/duplicate/invalid.

Add `--reason &lt;text&gt;` to `ngit issue close` — stored in event content.

Also fix success/error message wording in pr_status and issue_status to
use consistent past-tense action strings.
</content>
</entry>
<entry>
<title>feat(label): add `ngit issue label` and `ngit pr label` commands</title>
<updated>2026-03-05T11:41:09+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T11:33:10+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=3ac5395b47c709c00f0072668dfdceb04f2d4974'/>
<id>urn:sha1:3ac5395b47c709c00f0072668dfdceb04f2d4974</id>
<content type='text'>
Publishes a NIP-32 kind-1985 label event referencing the target issue or
PR. Only the event author or a repository maintainer may apply labels.
Duplicate labels (already present via t-tags or prior kind-1985 events)
are silently skipped. The new event is saved to the local cache before
broadcasting so subsequent reads reflect the change immediately.

CLI:
  ngit issue label &lt;id&gt; --label &lt;L&gt; [--label &lt;L&gt;...]
  ngit pr label &lt;id&gt; --label &lt;L&gt; [--label &lt;L&gt;...]
</content>
</entry>
</feed>
