<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/src/bin/ngit/main.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-03-05T22:12:07+00:00</updated>
<entry>
<title>fix(pr-checkout): require --force on diverged proposal branch</title>
<updated>2026-03-05T22:12:07+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T21:25:50+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=f6d1e03dc99b3ea48cb6e4bd1d3371dd924a567a'/>
<id>urn:sha1:f6d1e03dc99b3ea48cb6e4bd1d3371dd924a567a</id>
<content type='text'>
checkout_patch() previously re-applied the patch chain whenever the local
branch tip didn't match the published tip, silently overwriting local
amendments and rebased revisions without warning.

Now detects the relationship between local and published tips:
- up to date: check out as-is
- behind (local is ancestor of published): fast-forward, no flag needed
- local commits on top (published is ancestor of local): check out as-is
- diverged (neither ancestor): bail with guidance, --force to overwrite
- published tip not found locally and branch exists: same as diverged

Also adds --force flag to `ngit pr checkout` to explicitly opt in to
overwriting a diverged branch, covering both local amendments and
author force-pushes.

Bug discovered during test implementation in tests/ngit_pr_checkout.rs.
</content>
</entry>
<entry>
<title>fix(issue): add --comments flag to issue list command</title>
<updated>2026-03-05T19:04:42+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T19:04:42+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=f78c2f58e1da73591c782086f76a8584c0406ca5'/>
<id>urn:sha1:f78c2f58e1da73591c782086f76a8584c0406ca5</id>
<content type='text'>
--comments was supported by 'issue view' but not 'issue list', making
'ngit issue list &lt;id&gt; --comments' fail while the equivalent 'view'
command worked fine.
</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>refactor(subject): standardise on subject over title in CLI and output</title>
<updated>2026-03-05T13:14:34+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T13:14:34+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=b143abb25d6ece32412629baa3e75e94d139979f'/>
<id>urn:sha1:b143abb25d6ece32412629baa3e75e94d139979f</id>
<content type='text'>
- JSON output fields renamed from title to subject in pr list/view
  and issue list/view
- Printed view output changed from Title: to Subject:
- ngit issue create --subject (alias --title)
- ngit send --subject (alias --title)
- Error messages and interactive prompts updated to match
</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 --reason to all pr and issue status commands</title>
<updated>2026-03-05T12:12:21+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T12:12:21+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=ad6c39abdc35603f58e9b71993b5632c976deac1'/>
<id>urn:sha1:ad6c39abdc35603f58e9b71993b5632c976deac1</id>
<content type='text'>
All status transitions (pr close/reopen/ready/draft, issue close/reopen/
resolved) now accept an optional --reason flag stored in the event content.
</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>
<entry>
<title>add `ngit account whoami` command</title>
<updated>2026-03-05T10:58:37+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-05T10:58:37+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=2f2819cc2365be07fedfd35ab3654b3607e29e76'/>
<id>urn:sha1:2f2819cc2365be07fedfd35ab3654b3607e29e76</id>
<content type='text'>
Shows currently logged-in account(s) with name and npub. When both a
local (repo-scoped) and global account are configured, displays both
with local marked as active. Supports --json (returns local, global,
and active objects each with name, npub, nip05, scope) and --offline
(reads from cache only, no network). Fixes doc_markdown clippy warning
in cli.rs.
</content>
</entry>
<entry>
<title>add `ngit repo --json` for machine-readable repo detection</title>
<updated>2026-03-04T16:59:45+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-04T16:59:45+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=ecae4bd13c1e28d7efd9ee9bb106ff27fa0451f6'/>
<id>urn:sha1:ecae4bd13c1e28d7efd9ee9bb106ff27fa0451f6</id>
<content type='text'>
Outputs {"is_nostr_repo": false} when not in a nostr repository, or
full structured JSON (name, identifier, description, nostr_url,
coordinate, maintainers, grasp_servers, git_servers, relays, hashtags)
when it is. Always exits 0. Also adds --title as an alias for --name
on `ngit init`.
</content>
</entry>
</feed>
