upleb.uk

Public git repos — served from a NIP-34 GRASP relay at git.upleb.uk

summaryrefslogtreecommitdiff
path: root/CHANGELOG.md
AgeCommit message (Collapse)Author
2026-02-26fix: advertise only state events with resolvable git objectsDanConwayDev
git-remote-nostr now walks the per-relay state events captured in FetchReport::state_per_relay (newest first) and advertises the first one whose every OID is either present on at least one git server (confirmed via list_refs) or already available locally. If no such state event exists it falls back to the raw git server state. Previously the latest nostr state event was always used regardless of whether its OIDs had been pushed to any server, causing catastrophic missing-object errors during clone or fetch when a state event was published ahead of the corresponding git push.
2026-02-26fix: strip refs/tags/ prefix when computing remote tracking ref nameDanConwayDev
refspec_remote_ref_name() only stripped refs/heads/, so tag refspecs produced refs/remotes/origin/refs/tags/v1.0.0 instead of refs/remotes/origin/v1.0.0. ngit sync reads the latter form, so the tracking ref was never found and sync failed with 'src refspec does not match any existing object'.
2026-02-26feat: publish state event to stale grasp relays before sync pushDanConwayDev
FetchReport now captures the full state event seen on each relay during the nostr fetch (state_per_relay: HashMap<RelayUrl, Option<Event>>). ngit sync uses this to identify grasp server relays with a missing or outdated state event and publishes the current state event to them before attempting git pushes, preventing rejections. An existing login is loaded silently (no prompt, no profile fetch) to provide a signer for NIP-42 auth if requested.
2026-02-26fix: rollback local state event cache on total push failureDanConwayDev
When all git servers reject or skip a push, delete the newly-published state event from the local nostr cache and restore the previous state event (if any), so that a subsequent retry starts from a clean baseline rather than a state that no server ever accepted.
2026-02-26fix: skip grasp servers whose relay did not receive state eventDanConwayDev
When publishing the nostr state event before a git push, use the relay results from send_events to skip any grasp server whose internal relay did not receive the event. Print a clear warning for each skipped server and emit error lines for all refs if no git servers remain to push to.
2026-02-26fix: report per-relay publish results in send_events summaryDanConwayDev
Change send_events() return type from Result<()> to Result<Vec<(String, bool)>> 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".
2026-02-26fix: correct refspec source in ngit sync to strip refs/heads/ prefixDanConwayDev
When syncing, the nostr state stores refs with full names like refs/heads/master and refs/tags/v1.0.0. Git tracking refs strip the refs/heads/ prefix, so the tracking ref lives at refs/remotes/origin/master not refs/remotes/origin/refs/heads/master. The sync code was interpolating the full nostr_ref_name into the source side of the refspec, producing the invalid double-prefixed path. Strip refs/heads/ or refs/tags/ before constructing the tracking ref segment, consistent with how git_remote_nostr/push.rs already handles this.
2026-02-26feat: forward unrecognised push options to git serversDanConwayDev
Any -o option passed to `git push` that is not handled by ngit (title, description) is forwarded verbatim to the git server via git2::PushOptions::remote_push_options. This allows options such as `-o secret-scanning.skip` to pass through transparently. `ngit send` gains a matching -o / --push-option flag for the same purpose.
2026-02-25chore: bump version to v2.2.1v2.2.1DanConwayDev
Bump Cargo.toml version to 2.2.1 and promote CHANGELOG [Unreleased] entries to [2.2.1].
2026-02-25fix IPv6 connection failures with Happy Eyeballs (RFC 8305)DanConwayDev
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
2026-02-20chore: bump version to v2.2.0v2.2.0DanConwayDev
now changes are in CHANGELOG.md
2026-02-20replace nos.lol with relay.ditto.pub as default relayDanConwayDev
nos.lol always prompts for nip42 auth even for reading, making it unsuitable as a default relay.
2026-02-20extract grasp/maintainership helpers to lib and auto-accept on pushDanConwayDev
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.
2026-02-18docs: note optional patch tag compatibility in changelogDanConwayDev
pr/ branches now created via mbox fallback when optional tags are absent.
2026-02-17docs: update changelog with nostr.band removalDanConwayDev
as a default relay as it is now offline
2026-02-17add second default signer relay for resilienceDanConwayDev
Add wss://relay.ditto.pub as a second default signer relay alongside wss://relay.nsec.app for improved reliability during nostrconnect login.
2026-02-17feat: support multiline descriptions in push-options via \n escapeDanConwayDev
Git push-options are line-based so literal newlines cannot be sent. Users can now write the two-character sequence \n which is decoded into real newlines before publishing. Use \\n for a literal backslash-n. Includes unit tests, integration test, help text, and changelog entry.
2026-02-17feat: add push-options for title and description to git-remote-nostrDanConwayDev
Allows setting PR title and description via git push options: git push --push-option=title="My PR" \ --push-option=description="Details" origin pr/branch
2026-02-16docs: update CHANGELOG.mdDanConwayDev
to reflect changes since v2.1.0
2025-11-18chore: bump version to v2.1.0v2.1.0DanConwayDev
now changes are in CHANGELOG.md
2025-11-03chore: bump version to v2.0.1v2.0.1DanConwayDev
now changes are in CHANGELOG.md
2025-10-20docs: added historic release notesDanConwayDev
to CHANGELOG.md just for reference and completeness
2025-10-20docs: add CHANGELOG.mdDanConwayDev
and maintain this going fowards