6cee6540ea
Create Release Assets / build-desktop (arm64, macos, macos-14, packageReleaseDmg) (push) Has been cancelled
Create Release Assets / build-desktop (x64, linux, ubuntu-latest, packageReleaseDeb packageReleaseRpm) (push) Has been cancelled
Create Release Assets / build-desktop (x64, linux-portable, ubuntu-latest, createReleaseAppImage createReleaseDistributable) (push) Has been cancelled
Create Release Assets / build-desktop (x64, windows, windows-latest, packageReleaseMsi createReleaseDistributable) (push) Has been cancelled
Create Release Assets / build-cli (arm64, macos, macos-14, amyImage) (push) Has been cancelled
Create Release Assets / build-cli (x64, linux, ubuntu-latest, amyImage jpackageDeb jpackageRpm) (push) Has been cancelled
Create Release Assets / deploy-android (push) Has been cancelled
- MoneroScreen.kt: complete ~800-line UI with send, receive, daemon settings, transaction list, backup seed dialog - Account.kt: add 7 reactive StateFlows and updateMoneroState() - strings.xml: add monero-related string resources - AGENTS.md: update with actual progress state - GARNET_README.md: rewrite merge progress section - Uses MaterialSymbols from commons, no compose-material-icons-extended - compileFdroidDebugKotlin: 0 errors
2.9 KiB
2.9 KiB
Garnet Merge Attempt — Status & Notes
What is Garnet?
Garnet (github.com/retrnull/garnet) is an Amethyst fork that adds Monero tipping/zapping support alongside Lightning (zap) tips. Key features:
- Monero wallet key derived from the user's Nostr private key
- Three tip modes: private, anonymous, public
monerotags on posts (similar to NIP-57 zap tags)- Tip counter on notes and profiles, like zaps
- Send received tips to an external wallet
Merge Progress (May–June 2026)
The merge was executed directly against the latest Amethyst codebase (not Garnet) following the recommended path: start from the newest Amethyst and port files one at a time.
Completed (all committed)
- Phase 1–4: Model layer, JNI bridge, WalletService, quartz tip events
- Phase 5: Wiring —
MoneroDataSource.setMoneroService(), Account reactive flows - MoneroScreen UI:
MoneroScreen.kt(~795 lines) with send, receive, daemon settings, backup seed, transaction list composables - Account reactive state:
moneroStatus,moneroBalance,moneroLockedBalance,moneroWalletHeight,moneroDaemonHeight,moneroConnectionStatus,moneroTransactions,moneroAddressStateFlows - String resources: 40+ monero-related strings added to
strings.xml
Build status
| Check | Status |
|---|---|
compileFdroidDebugKotlin |
✅ 0 errors |
assembleFdroidDebug |
⏳ Pending (not yet run after MoneroScreen addition) |
What's remaining
- Run
./gradlew assembleFdroidDebugend-to-end after MoneroScreen addition - Wire MoneroScreen into app navigation routes (Routes.kt + AppNavigation.kt)
- Add
compose-material-icons-extendeddependency if needed - Add NIP-69 monero address support
- Full end-to-end testing of monero wallet functionality
Files changed in this session (MoneroScreen)
| # | File | Description |
|---|---|---|
| 1 | amethyst/src/main/.../loggedIn/MoneroScreen.kt |
NEW — Full Monero wallet UI screen with all composables |
| 2 | amethyst/src/main/.../model/Account.kt |
MODIFIED — Added 7 reactive StateFlows + updateMoneroState() |
| 3 | amethyst/src/main/res/values/strings.xml |
MODIFIED — Added monero string resources |
See AGENTS.md for the full project notes, build findings, and merge plan.
Quick commands for a new session
# Verify baseline builds
cd ~/projects/amethyst && ./gradlew assembleFdroidDebug | tail -3
# Get the diff between Garnet and the fork point
cd ~/projects/garnet
git diff 99614f07..bfaf92e5 --stat # 103 files
git diff 99614f07..bfaf92e5 --name-status # file list with A/M/D status
# Extract native libs from garnet releases
curl -L -o /tmp/garnet.apk "https://github.com/retrnull/garnet/releases/download/v0.3.0/app-mainnet-fdroid-universal-release.apk"
unzip -o /tmp/garnet.apk -d /tmp/garnet/
# libmonerujo.so is in extracted-libs/lib/<abi>/