Files
Amber/settings.gradle.kts
Claudeandgreenart7c3 97d0d91d97 Add desktop app (Windows/macOS/Linux) as Compose for Desktop module
New :desktop Gradle module turns a computer into a NIP-46 signer with the
same accounts, permission model and bunker flows as the Android app, built
on the quartz-jvm artifact and Compose Multiplatform.

- BunkerEngine ports NotificationSubscription + EventNotificationConsumer +
  BunkerRequestUtils: per-connection localKey subscriptions (kind 24133),
  auto-accept/auto-reject via the rememberType/acceptUntil rules, approval
  queue for everything else, and relay responses with retry/backoff
- All NIP-46 methods supported: connect, sign_event, get_public_key, ping,
  nip04/nip44 encrypt/decrypt, nip44v3 encrypt/decrypt, decrypt_zap_event,
  sign_psbt, switch_relays, logout (NIP-55 is Android-only IPC and is
  intentionally out of scope)
- Keys are AES-256-GCM encrypted at rest with the key held in a PKCS12
  Java KeyStore; keystore + password files are owner-only permissions
- Connections via pasted nostrconnect:// URIs or generated bunker:// URIs
  with QR code; per-app permissions, activity history and logs persisted
  as JSON per account
- UI mirrors mobile: same theme/colors, bottom navigation (Incoming
  request / Applications / Relays / Settings), login/create-key with
  NIP-06 seed words, ncryptsec backup, multi-account switching
- Packaging via compose nativeDistributions: dmg, msi, exe, deb, rpm
- Tests: unit tests plus an opt-in (AMBER_E2E=1) end-to-end NIP-46
  round-trip against a public relay

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YQTVwy8RBj7spdEK3aEc3i
2026-10-05 13:50:47 -03:00

21 lines
423 B
Kotlin

pluginManagement {
repositories {
google()
mavenCentral()
gradlePluginPortal()
maven("https://jitpack.io")
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven("https://jitpack.io")
}
}
rootProject.name = "Nostr Signer"
include(":app")
include(":desktop")