http api, queue and dedupe, watch-all, sync polish, docs#6
Open
arbadacarbaYK wants to merge 53 commits into
Open
http api, queue and dedupe, watch-all, sync polish, docs#6arbadacarbaYK wants to merge 53 commits into
arbadacarbaYK wants to merge 53 commits into
Conversation
- Create gittr-platform-enhancements.png showing all gittr.space additions - Includes bridge enhancements, frontend features, file fetching, GRASP protocol, collaboration tools, payments, notifications, NIP extensions, and storage - Update README to showcase the full platform architecture - Color-coded by feature area for easy navigation
- Add 🆕 badge callout to STANDALONE_BRIDGE_SETUP.md - Clarify kind 51 (legacy) and kind 30617 (NIP-34) support in relay config - Fix README reference to FILE_FETCHING_INSIGHTS.md (link to main repo) - Keep file-fetch-flow.md reference for bridge-specific documentation
- Update bridge main.go and repo.go with latest changes - Update protocol kind.go and repository.go - Add Dockerfile for containerized deployment
- Add mergedEvents channel to show complete event flow - Clarify deduplication uses seenEventIDs map - Add structured logging details - Update documentation to match implementation
- Update description to mention mergedEvents channel and seenEventIDs cache - More accurately reflects the implementation
…ling - Set HEAD to main/master when creating empty repos in bridge (fixes clone issues) - Improve all SSH error messages with git-standard 'fatal:' and 'hint:' format - Add helpful hints for repository not found, permission denied, and config errors - Handle .git suffix in repo names properly - Add corruption check to bridge repo creation
…on, watch-all mode, improved logging
- Add state.go with handleRepositoryStateEvent function - Validate commit SHAs before updating refs - Fallback to HEAD commit if state event has invalid SHA (handles corrupted foreign repos after migration) - Add KindRepositoryState (30618) to protocol - Update all imports to use arbadacarbaYK/gitnostr module path - Integrate state event handling in main.go
- Add troubleshooting section for private repo read access - Document identity mapping and maintainer access requirements - Explain CLI/API access control behavior
- Removed privacy flags from repo create command - NIP-34 events now have empty content (per spec) - Privacy is enforced via maintainers tag and bridge access control - Bridge defaults to public for NIP-34 events
- Document that file paths in path parameter must be URL-encoded - Add examples for non-ASCII characters (Cyrillic, Chinese, accented) - Clarify that API automatically decodes and handles UTF-8 correctly
Improve git-nostr-ssh paywall authorization behavior and update SSH guidance so CLI users can reliably recover from pending-invoice and signer-required flows.
Treat repository owners as ADMIN in git-nostr-ssh even when cached permission rows are missing or stale, and document the behavior in README. Made-with: Cursor
…eam only - README: bridge + CLI install use fork; link upstream for history - gittr-enhancements: lead with canonical repo, then upstream contribution note Co-authored-by: Cursor <cursoragent@cursor.com>
Bridge does not implement remote signer protocol; point implementers to gittr docs. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- Clarify gittr uses Next /api/nostr/repo/files vs bridge tree URL - Document 404 or 200+empty files as clone trigger and repo normalization Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Use the same ecosystem/stack framing as arbadacarbaYK/gittr. Drop fork-of-spearson wording. Add REPO_DESCRIPTION.txt for the GitHub About field. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Explain best fit for forge backends, client integration, self-hosted backup/mirror, normal git SSH, public mirrors, and paywall—not only ngit comparison. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Align with gittr FILE_FETCHING_INSIGHTS and repo-file-tree-branch: Commits use /api/nostr/repo/commits; Issues/PRs are Nostr-first; branch sync guards against dependabot noise. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Clarify git-nostr-ssh, kind-52 keys via gn or any signer, nostr:// when repo is on bridge; fix git.gittr.space examples. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove upstream nostr-rs-relay-only testing wording; document gittr production use of public relays. Hook section is design-only. Co-authored-by: Cursor <cursoragent@cursor.com>
Replace upstream "separate projects" text with gittr forge reality. Clarify git-nostr.png: hook not built; PRs/issues in gittr UI. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop git-nostr-hook sections, "not shipped" tables, and upstream tutorial relay examples. Document four shipped components and gittr stack. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Correct watch-all wording, typos, SSH host hints, and file-fetch docs; drop GitHub env vars from bridge-only setup; refresh diagrams. Co-authored-by: Cursor <cursoragent@cursor.com>
Cross-doc URLs for gittr, gitnostr, and gittr-helper-tools now use gittr.space browse/clone links; Go module paths unchanged. Co-authored-by: Cursor <cursoragent@cursor.com>
New architecture.dot/PNG and ARCHITECTURE.md cover bridge, SSH, gn, gittr UI, and git-remote-nostr; regenerate enhancement PNGs without hook. Co-authored-by: Cursor <cursoragent@cursor.com>
New architecture.png without git-nostr-hook; ARCHITECTURE.md covers real clients (gittr UI, gn, SSH, git-remote-nostr). Co-authored-by: Cursor <cursoragent@cursor.com>
Documentation links stay on gittr instead of GitHub mirrors. Co-authored-by: Cursor <cursoragent@cursor.com>
Document MCP for Cursor/Claude agents alongside gn, SSH, and HTTP push. Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hey @spearson78 👋
I’ve been running gitnostr for gittr.space and built a few optional add-ons into a fork.
They’re all behind opt-in config flags (config/env), but they’ve saved me a ton of time.
🆕 HTTP /api/event endpoint (off by default). Lets a UI post NIP-34 events straight to the bridge, then relays remain the source of truth.
🆕 Direct event queue + dedupe cache so relay and HTTP events merge cleanly.
🆕 “Watch-all” mode if gitRepoOwners is empty—handy for public mirrors.
Repository sync polish: handles NIP-34 tags, deleted/archived flags, and auto-clones from source/clone URLs (GitHub/GitLab/Codeberg/etc.).
Docs + diagram explaining the optional bits and how to run the bridge standalone.
All flows stay identical to your original unless someone explicitly enables the extras.
Thanks for open-sourcing this!