<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/src/bin/ngit/sub_commands/init.rs, branch v2.4.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.4.3</id>
<link rel='self' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/atom?h=v2.4.3'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/'/>
<updated>2026-03-04T16:59:45+00:00</updated>
<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>
<entry>
<title>add nostr.repo-relay-only config to limit publishing to repo relays</title>
<updated>2026-03-04T12:48:37+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-03-03T13:08:56+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=a55d4150066456084fd18987acf014c18d0da976'/>
<id>urn:sha1:a55d4150066456084fd18987acf014c18d0da976</id>
<content type='text'>
Adds a git config key nostr.repo-relay-only that, when set to true, causes
nostr events to be sent only to the repository's own relays, skipping the
user's personal write relays and default/blaster relays. Useful for
repositories that should not broadcast to the maintainer's personal relay set.
Set persistently via \`git config nostr.repo-relay-only true\` or in one step
with \`ngit init --repo-relay-only\`.
</content>
</entry>
<entry>
<title>fix: report per-relay publish results in send_events summary</title>
<updated>2026-02-26T15:26:16+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-26T12:24:40+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=dc6c20d29ea4456eee1dbc2aa8757fe955d1afc7'/>
<id>urn:sha1:dc6c20d29ea4456eee1dbc2aa8757fe955d1afc7</id>
<content type='text'>
Change send_events() return type from Result&lt;()&gt; to
Result&lt;Vec&lt;(String, bool)&gt;&gt; so callers can inspect which relays
accepted events. Update the finish message to show
"Published to X/N relays (failed: ...)" instead of the unconditional
"Published ... to nostr relays".
</content>
</entry>
<entry>
<title>use trusted maintainer's grasp servers as fallback for co-maintainers</title>
<updated>2026-02-20T21:21:52+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T21:14:45+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=b10340cb00a00da07d0ae735796d83801454779e'/>
<id>urn:sha1:b10340cb00a00da07d0ae735796d83801454779e</id>
<content type='text'>
when a co-maintainer has no grasp servers of their own, fall back to
the trusted maintainer's grasp servers rather than jumping straight to
system defaults. if the trusted maintainer only uses a single grasp
server, the first system default is appended for redundancy. system
defaults are only used when neither the user nor the trusted maintainer
has any grasp servers configured.
</content>
</entry>
<entry>
<title>update relay prompt to reflect grasp servers are sufficient</title>
<updated>2026-02-20T21:21:50+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T20:31:33+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=4295e4a3aaca29fda73a955186d30641815d4efa'/>
<id>urn:sha1:4295e4a3aaca29fda73a955186d30641815d4efa</id>
<content type='text'>
Public relays are no longer recommended; grasp servers cover relay
needs. The interactive prompt now reflects this.
</content>
</entry>
<entry>
<title>drop default relays from announcement events</title>
<updated>2026-02-20T21:21:49+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T20:26:31+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=724e02ac8c538e9dfe4faa072082fad301e49b10'/>
<id>urn:sha1:724e02ac8c538e9dfe4faa072082fad301e49b10</id>
<content type='text'>
ngit init and accept_maintainership_with_defaults no longer seed relay
lists from the client default set. The relay list in a Kind:30617
announcement now contains only grasp-server-derived relay URLs; no
additional public relays are suggested or added automatically.
</content>
</entry>
<entry>
<title>extract grasp/maintainership helpers to lib and auto-accept on push</title>
<updated>2026-02-20T21:21:48+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T20:09:09+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=64747526c9f6ab43f9dac461d056bb42992573b4'/>
<id>urn:sha1:64747526c9f6ab43f9dac461d056bb42992573b4</id>
<content type='text'>
move apply_grasp_infrastructure, latest_event_repo_ref to lib/repo_ref.rs
and wait_for_grasp_servers + grasp_servers_from_user_or_fallback to a
new lib/accept_maintainership.rs so both binaries can share them.

add accept_maintainership_with_defaults which publishes the co-maintainer's
own Kind:30617 announcement with defaults (user grasp servers, shared
metadata from existing events) then waits for grasp server provisioning
and updates nostr.repo config and origin remote.

replace the push error block with a call to accept_maintainership_with_defaults
so pushing now silently accepts co-maintainership instead of failing.
</content>
</entry>
<entry>
<title>improve ngit init messaging for co-maintainership acceptance</title>
<updated>2026-02-20T20:43:47+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T12:08:37+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=1583a5f5b137ec408d9358c12f6716f7033a2c69'/>
<id>urn:sha1:1583a5f5b137ec408d9358c12f6716f7033a2c69</id>
<content type='text'>
when a co-maintainer runs ngit init, it now clearly states upfront
that they are accepting a co-maintainership offer (not creating a
new repo), shows who offered it, and on completion confirms the
acceptance and explains they can now push. updating an existing
co-maintainer announcement also gets its own clear message.
</content>
</entry>
<entry>
<title>fix: remove outdated patch_supports gate and fix fetch parent fallback</title>
<updated>2026-02-18T22:00:35+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-18T22:00:35+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=56b3c149df70af5d441e8527ec1225e5038bde8e'/>
<id>urn:sha1:56b3c149df70af5d441e8527ec1225e5038bde8e</id>
<content type='text'>
Remove the patch_supports_commit_ids gates in checkout.rs and list.rs
that pre-dated the mbox fallback logic. apply_patch_chain already
handles all fallback cases. Also replace the main-branch TODO fallback
in make_commits_for_proposal with get_parent_commit_from_patch, which
uses timestamp-based best-guess when the parent-commit tag is absent.
</content>
</entry>
<entry>
<title>feat: support PR-format proposals in ngit apply</title>
<updated>2026-02-18T13:10:24+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-18T12:38:37+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1tkq8unhsd5jqx6ueex5lcpsgknrpquxuk44ftpjlpm3ulaake7xs76txrw/ngit-cli-mirror/commit/?id=e6bb9effa194fe63b5e969c090dbe6e93f13d312'/>
<id>urn:sha1:e6bb9effa194fe63b5e969c090dbe6e93f13d312</id>
<content type='text'>
Instead of erroring when a proposal uses PR format (kind 1618/1619),
ngit apply now fetches the tip commit from git servers, determines the
base commit via the merge-base tag or by walking ahead of main, generates
patch text for each commit using git2, and applies via git am.

Also fixes a bug where clone-tag server hints were silently skipped in
the fetch fallback, and refactors the git-am invocation into a shared
helper to avoid duplication between the patch and PR code paths.
</content>
</entry>
</feed>
