<feed xmlns='http://www.w3.org/2005/Atom'>
<title>npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/src, branch v2.2.1</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.1</id>
<link rel='self' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/atom?h=v2.2.1'/>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/'/>
<updated>2026-02-25T12:27:56+00:00</updated>
<entry>
<title>fix: update hardcoded libgit2 version strings in tests to 1.9.2</title>
<updated>2026-02-25T12:27:56+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T12:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=ca2df272594a7b055c740ccda0b9c31b3b7e43cc'/>
<id>urn:sha1:ca2df272594a7b055c740ccda0b9c31b3b7e43cc</id>
<content type='text'>
The Nix environment provides libgit2 1.9.2 via nixpkgs, which
libgit2-sys picks up at build time instead of using its bundled version.
This caused test assertions that hardcode the libgit2 version string
(appended by libgit2 to patch output) to fail after commit 319bb7f
added new Cargo dependencies, though the exact mechanism by which those
dependencies triggered the switch from the bundled 1.9.1 to the system
1.9.2 remains unclear.

Also bump git2 from 0.20.2 to 0.20.4 in both Cargo.toml files so the
bundled libgit2-sys version (0.18.3+1.9.2) properly aligns with the
1.9.2 version in use.
</content>
</entry>
<entry>
<title>fix IPv6 connection failures with Happy Eyeballs (RFC 8305)</title>
<updated>2026-02-25T11:48:13+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-25T11:21:45+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=319bb7fa2c984da45422fa81d12b4a5226beb493'/>
<id>urn:sha1:319bb7fa2c984da45422fa81d12b4a5226beb493</id>
<content type='text'>
Implement a custom WebSocketTransport that races IPv6 and IPv4 connections
with a 250ms head start for IPv6, matching browser behavior. This prevents
broken IPv6 from blocking all relay connections indefinitely.

This is a temporary fix until the upstream async-wsocket PR is merged:
https://github.com/shadowylab/async-wsocket/pull/42
</content>
</entry>
<entry>
<title>show subcommand hint at top of `ngit repo` output before fetch</title>
<updated>2026-02-20T23:23:29+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T23:16:21+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=7b07fdd0b28efa4e0026075d6ff82d050383c9a2'/>
<id>urn:sha1:7b07fdd0b28efa4e0026075d6ff82d050383c9a2</id>
<content type='text'>
- print hint line immediately, before coordinate lookup and relay fetch
- users see available subcommands (init, edit, accept) without waiting
</content>
</entry>
<entry>
<title>improve `ngit repo` output styling</title>
<updated>2026-02-20T23:04:21+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T23:03:15+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=e50687b908e802c9f3328c9b57060b63bb5706c0'/>
<id>urn:sha1:e50687b908e802c9f3328c9b57060b63bb5706c0</id>
<content type='text'>
- make repo name bold yellow as a title; section headings bold dim
- add dim horizontal rules above and below the name/description block
- move earliest unique commit to the bottom (after additional relays)
- add --offline flag to skip network fetch and use local cache only
</content>
</entry>
<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>add `ngit repo` subcommand group</title>
<updated>2026-02-20T21:54:00+00:00</updated>
<author>
<name>DanConwayDev</name>
<email>DanConwayDev@protonmail.com</email>
</author>
<published>2026-02-20T21:54:00+00:00</published>
<link rel='alternate' type='text/html' href='https://upleb.uk/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/ngit-cli-mirror/commit/?id=8f1a1743bd4e85e922ec0cc1f050911a28af4cf0'/>
<id>urn:sha1:8f1a1743bd4e85e922ec0cc1f050911a28af4cf0</id>
<content type='text'>
- `ngit repo` (no subcommand): show repository info including maintainer
  tree, per-maintainer infrastructure attribution, and a note explaining
  the union-vs-personal field model and recursive maintainer sets
- `ngit repo init`: alias for `ngit init`
- `ngit repo edit`: same as init but signals intent to update an existing
  repository announcement
- `ngit repo accept`: scoped command for co-maintainers to publish their
  announcement; errors with clear messages for all other states (trusted
  maintainer, already accepted, not invited, no repo found)
</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>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/npub1sh4dwqc9ypguemh6m8tmxxl8xuzfsz0j8av8vq7t3xd3mldsg9ls4ew80h/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>
</feed>
