ngit, ngit-ci and clients like gitworkshop and gittr are WILD.
Just migrated all my repos. Got myslef a shiny new GRASP server too.
Thank you @DanConwayDev and co!
Login to reply
Replies (17)
My buddy just spun his up yesterday!
I can only use ngit because of agents. The git workflow is too complicated for me.
I don't hand roll it!
Controle total sobre suas ferramentas é a essência da soberania. Sem dependência de terceiros, sem permissões: só você. Isso é liberdade de verdade.
Decentralized version control kills the middleman. Ensure your GRASP instance uses ed25519 keys for all commits. Trusting a single server is still a single point of failure; run multiple relays.
Stop being a god damn caveman.
I am the new boomer.
I was born in ngit.
you just initialize the remote, and from there on it's just pushing, no? the ngit setup in the cli is super hand-holdy now
me too! i moved all my nostr stuff over. I only had a project or two on there previously, but I moved everything else over last week. The new CLI is so easy and nice
Manual merging is quite hard without GitHub to see/review everything
ah yea okay
Plus all the action shows up on nostr:
routstrd writes every request and every failure to its own log file (~/.routstrd/logs/YYYY-MM-DD.log). That file is the only record a failed request leaves: the daemon stdout carries nothing but [routstrd:start] startup progress, and the usage database is appended only after a completed response, so "why did that fail?" had no answer anywhere the app could show.
DaemonLogTail reads a bounded tail of that directory (newest file last, each file named, the partial first line dropped, an explicit omission marker) and showLogDialog renders it under its own DAEMON LOG header. The directory is inside the app sandbox: the runtime binding maps /root/.routstrd to files/routstr-home, and AttestationWatcher already tails the same file. coco-logs (the far more verbose wallet-engine diagnostics) is deliberately not rendered. The dialog Clear button still only clears the activity log and the saved crash reports; the header says where the daemon logs are cleared instead.
Note for review: the copied log can now include wallet amounts, mint URLs and Lightning invoices that the daemon records at info level. The seed is not among them (routstrd logs a mnemonic fingerprint, never the mnemonic), but if Copy should stay wallet-free this section needs the same redaction the daemon stdout gets.
Verification:
- 25 new assertions in android/tests; the currency marker moves 1191 -> 1218 and android/check-currency.sh passes
- android/run-tests.sh: 1246 passed, 1 failed (the pre-existing JDK-17-only BlossomServersTest URL-host case: JDK 20+ rejects a space in a URL host, JDK 17 parses it leniently; CI pins JDK 21, and main shows the same single failure on this JDK)
- the whole app source compiles clean against android.jar (API 36) with JDK 17
- scripts/guard.sh --tree passes
View quoted note →
a diffs and pr ui for gitworkshop can't be too far off. plenty of prior art to clanker-copy
Theres a tool for your agent and also you can use the import flow from github/gitlab/gitea/codeberg in gittr.space/new instead of using a terminal.. they all end up on nostr so doesnt really mind where and how you do that..
https://gittr.space/npub1n2ph08n4pqz4d3jk6n2p35p2f4ldhc5g5tu7dhftfpueajf4rpxqfjhzmc/gittr-mcp
Gittr uses another backend btw, not ngit.
ngit is a git server + grasp relay. I separated both which let me not only pull in grasp related metadata right from the start for zaps, profilepage, WoT badge n all that jazz.
Important thing is whatever you use they all end up discoverable in all nostr clients :P
https://gittr.space/npub1n2ph08n4pqz4d3jk6n2p35p2f4ldhc5g5tu7dhftfpueajf4rpxqfjhzmc/gitnostr
TIL!