<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/src/lib, branch v2.2.0</title>
<subtitle>Personal mirror of DanConwayDev/ngit-cli on git.upleb.uk
</subtitle>
<id>https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/atom?h=v2.2.0</id>
<link rel='self' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/atom?h=v2.2.0'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/'/>
<updated>2026-02-20T22:41:50+00:00</updated>
<entry>
<title>improve `ngit repo` output formatting</title>
<updated>2026-02-20T22:41:50+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T22:41:50+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=68779f91f051822270f156a4185350fb3c4b5017'/>
<id>urn:sha1:68779f91f051822270f156a4185350fb3c4b5017</id>
<content type='text'>
- suppress fetch summary (no updates / updates: X)
- write blank line to stderr after relay errors for clear separation
- show identifier below title only when it differs from name
- show earliest unique commit (root_commit) in metadata
- restructure infrastructure into grasp servers / additional git
  servers / additional relays sections
- display grasp servers by domain only (strip scheme, npub, repo path)
- strip wss:// prefix from relay display
- show maintainer names from metadata cache; fall back to short npub
- append (you) next to the current user's name wherever it appears
- show [name] attribution and the maintainer model note only when
  there is more than one maintainer
</content>
</entry>
<entry>
<title>replace nos.lol with relay.ditto.pub as default relay</title>
<updated>2026-02-20T21:21:54+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T21:18:27+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=67f09343c15e6a0e3622811d3eb5e513a8205eda'/>
<id>urn:sha1:67f09343c15e6a0e3622811d3eb5e513a8205eda</id>
<content type='text'>
nos.lol always prompts for nip42 auth even for reading, making it
unsuitable as a default relay.
</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/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/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>default relay prompt to no selection; add is never pre-selected</title>
<updated>2026-02-20T21:21:51+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T20:35:13+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=fa99cf7dfc9e6b16e67afe03873486039263ce42'/>
<id>urn:sha1:fa99cf7dfc9e6b16e67afe03873486039263ce42</id>
<content type='text'>
With no default relays seeded, the multi-select add option was
incorrectly pre-selected when the list was empty. Now add/add-another
is always unselected by default so enter skips straight through.
</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/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/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/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/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>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/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/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>fix: thread applied OID through patch chain correctly</title>
<updated>2026-02-18T21:17:41+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-18T21:17:41+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=09db17fd719ddd42c5afad24e1a8e71735374f8e'/>
<id>urn:sha1:09db17fd719ddd42c5afad24e1a8e71735374f8e</id>
<content type='text'>
When applying a chain of patches without parent-commit tags, each
patch's parent was resolved independently, meaning patch2 would not
parent off the OID patch1 actually produced. Thread next_parent_override
through the loop and guard the early-return in create_commit_from_patch
so the override is always honoured.
</content>
</entry>
<entry>
<title>fix: harden apply_patch_chain when optional patch tags absent</title>
<updated>2026-02-18T21:04:59+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-18T21:04:59+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=73d829b916d87626f33ea2adead0c48f1d9d737d'/>
<id>urn:sha1:73d829b916d87626f33ea2adead0c48f1d9d737d</id>
<content type='text'>
- Replace .unwrap() calls in filter closure with pattern-let guards
  so a missing/invalid mbox commit id conservatively includes the patch
- Use the OID returned by create_commit_from_patch as branch tip instead
  of the tag commit id, which may differ for GPG-signed commits
- Add module-level doc comment to mbox_parser explaining design rationale
  and known limitations around the mbox envelope SHA1
</content>
</entry>
<entry>
<title>fix: improve mbox patch parser resilience for optional tag fallback</title>
<updated>2026-02-18T20:25:02+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-18T20:25:02+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=061589cd88d0480dc7cb0b9eb19a3910293ceb56'/>
<id>urn:sha1:061589cd88d0480dc7cb0b9eb19a3910293ceb56</id>
<content type='text'>
- Use mailparse crate to handle RFC 2047 encoded-words (Q/B encoding)
  and RFC 2822 header folding in Subject and From headers
- Fix email signature separator check: use exact match 'line == "-- "'
  instead of starts_with to avoid false positives on body lines
- Remove dead/incorrect asctime parsing in committer date extraction;
  simplify to always return None (falls back to author_timestamp)
</content>
</entry>
</feed>
