github vitorpamplona/amethyst v1.13.0

5 hours ago

What's Changed

  • Keep balanced closing delimiters in URLs by @vitorpamplona in #3299
  • Seed translator npub placeholders by @github-actions[bot] in #3300
  • Keep NIP-82 release versions live via LocalCache observer by @vitorpamplona in #3301
  • New Crowdin Translations by @github-actions[bot] in #3303
  • Seed translator npub placeholders by @github-actions[bot] in #3302
  • Consolidate Crowdin sync and translator seed into single PR by @vitorpamplona in #3305
  • NIP-22: Reply to Amethyst threads as kind 1111 Comments by @vitorpamplona in #3306
  • feat(notifications): render NIP-30 custom emoji reactions as avatar badge by @vitorpamplona in #3307
  • Auto-dismiss notifications when events are read in-app by @vitorpamplona in #3310
  • i18n: localize Marmot group chat strings and remove unused resources by @vitorpamplona in #3308
  • New Crowdin Translations by @github-actions[bot] in #3311
  • Remove unused NIP-31 alt tag surrogate code and clean up imports by @vitorpamplona in #3309
  • fix: surface reply, not root, for multi-e-tag reactions in Android tray by @vitorpamplona in #3318
  • feat: add Notification setting to show or hide Messages on the Notification tab by @vitorpamplona in #3320
  • New Crowdin Translations by @github-actions[bot] in #3319
  • feat: add a search box to the App Recommendations screen by @vitorpamplona in #3322
  • Extract share options to reusable bottom sheet by @vitorpamplona in #3312
  • Notify on public chat replies without p-tags by @vitorpamplona in #3314
  • Add search and follow-list filtering to app recommendations by @vitorpamplona in #3313
  • New Crowdin Translations by @github-actions[bot] in #3321
  • New Crowdin Translations by @github-actions[bot] in #3324
  • Add POWR / NIP-101e strength workout interop (read-only) by @vitorpamplona in #3323
  • feat(feeds): prefetch media + pre-parse text ahead of the viewport by @vitorpamplona in #3325
  • Refactor command dispatch: extract Router helper, remove Commands.kt by @vitorpamplona in #3326
  • Fix disappearing bar settle logic to prevent blank bands on partial reveals by @vitorpamplona in #3327
  • Add comprehensive CLI command suite and Cashu wallet support by @vitorpamplona in #3333
  • MoqLiteSession: send Ended announce on publisher close race by @vitorpamplona in #3334
  • Add more options button to software app note rendering by @vitorpamplona in #3336
  • Show blocked/muted user indicator on profile tabs by @vitorpamplona in #3337
  • Implement NIP-5A/5D napplet & nsite sandbox host with capability broker by @vitorpamplona in #3339
  • fix(build): resolve :nappletHost benchmark variant via matchingFallbacks by @vitorpamplona in #3340
  • New Crowdin Translations by @github-actions[bot] in #3335
  • Load author relay lists for missing addressable notes by @vitorpamplona in #3342
  • New Crowdin Translations by @github-actions[bot] in #3341
  • New Crowdin Translations by @github-actions[bot] in #3343
  • fix: render markdown when a heading/list follows a blank line by @davotoula in #3344
  • New Crowdin Translations by @github-actions[bot] in #3345
  • NIP-46: Add optional client metadata to connect requests by @greenart7c3 in #3346
  • Add full-screen direct-WebView browser and embedded napplet/nSite tabs by @vitorpamplona in #3348
  • New Crowdin Translations by @github-actions[bot] in #3347
  • Fix bottom bar fallback to use default entries instead of empty list by @vitorpamplona in #3349
  • Browser: add visit history, omnibox suggestions, and favicon capture by @vitorpamplona in #3350
  • Implement tiered memory trimming with debug UI and feed size limits by @vitorpamplona in #3352
  • Add JavaScript console logging to embedded and full-screen browsers by @vitorpamplona in #3353
  • New Crowdin Translations by @github-actions[bot] in #3351
  • New Crowdin Translations by @github-actions[bot] in #3355
  • Fix/note grid layout issues by @davotoula in #3356
  • Extract MintPickerItem composable in CashuWalletScreen by @vitorpamplona in #3354
  • Add favorite toggle to web browser and embedded napplets by @vitorpamplona in #3357
  • Use hollow gem icon for relay service notification by @vitorpamplona in #3358
  • Add URL-scoped comment feeds by @LubuSeb in #3315
  • Clean up imports: organize and remove unused declarations by @vitorpamplona in #3360
  • Remove API 30+ requirement from Browser feature by @vitorpamplona in #3361
  • Add theme preference support to napplet/browser WebViews by @vitorpamplona in #3359
  • Reorganize navigation drawer and settings menu items by @vitorpamplona in #3363
  • Fix bottom sheet grabber positioning and add console toggle state by @vitorpamplona in #3364
  • New Crowdin Translations by @github-actions[bot] in #3362
  • Rename web/napplet screens and controllers; introduce HostProfile by @vitorpamplona in #3366
  • Extract AddRecommendationSection and WalletTypeCardContent composables by @vitorpamplona in #3365
  • Add Onion-Location support for transparent Tor routing by @vitorpamplona in #3368
  • Shift Cashu icon left and tint orange in nutzap displays by @vitorpamplona in #3369
  • New Crowdin Translations by @github-actions[bot] in #3367
  • Render single zaps/nutzaps as large cards in MultiSetCompose by @vitorpamplona in #3370
  • Scale outline gem icon to match filled gem size by @vitorpamplona in #3372
  • Render zap receipts as full notes in MultiSetCompose by @vitorpamplona in #3373
  • Add and update translations across 50+ locales by @vitorpamplona in #3371
  • Fix compiler instruction limit in AccountSettings constructor by @vitorpamplona in #3375
  • feat: query zapstore's relay in the global Apps feed and keep its filter specific by @vitorpamplona in #3376
  • New Crowdin Translations by @github-actions[bot] in #3374
  • Add Git pull request event rendering support (NIP-34) by @vitorpamplona in #3377
  • Show boosted notes as compact preview in activity cards by @vitorpamplona in #3379
  • Embedded text selection: native-parity IME + selection UI + magnifier, and platform-bug fixes by @vitorpamplona in #3378
  • Auto-save Cashu wallet on mint add/remove, remove manual key picker by @vitorpamplona in #3380
  • Redesign service notification icon with network topology by @vitorpamplona in #3382
  • Fix draft deletion by holding strong reference to draft notes by @vitorpamplona in #3383
  • fix: delete per-account dir on account removal + sweep orphans at startup by @vitorpamplona in #3385
  • Move browser strings to commons for shared localization by @vitorpamplona in #3386
  • Show nSite/nApplet icons from bundled blobs in favorites by @vitorpamplona in #3384
  • Fix activity card background propagation to embedded notes by @vitorpamplona in #3387
  • Preload favorited nSites/nApplets to avoid "isn't loaded yet" toast by @vitorpamplona in #3388
  • Style Git pull request clone URLs with labelMedium typography by @vitorpamplona in #3389
  • docs(claude): document the ngit + GitHub PR workflow for agents by @vitorpamplona in #3391
  • Add Accrescent APK set build & remove cleartext traffic flag by @vitorpamplona in #3392
  • Add Open/Closed filter to Git repo Issues and Patches tabs by @vitorpamplona in #3393
  • Move UI components to commons module for better code sharing by @vitorpamplona in #3394
  • Make Arti native library builds reproducible by @vitorpamplona in #3396
  • New Crowdin Translations by @github-actions[bot] in #3390
  • Move rememberFeedContentPadding to commons.ui.layouts by @vitorpamplona in #3398
  • refactor: scope account ViewModelStore with Lifecycle 2.11 rememberViewModelStoreOwner by @vitorpamplona in #3399
  • Cache favorited nsite/napplet manifests for offline resolution by @vitorpamplona in #3402
  • fix(video): show browser-fallback overlay when a decoder silently stalls by @vitorpamplona in #3401
  • added support for more payment targets by @roguehashrate in #3400
  • New Crowdin Translations by @github-actions[bot] in #3403
  • fix(perf): unfreeze the cold-start "Loading account" screen in debug builds by @vitorpamplona in #3404
  • New Crowdin Translations by @github-actions[bot] in #3405
  • Add Git Repositories feed screen with community and author filtering by @vitorpamplona in #3406
  • Align Cashu icon with reaction gallery icons in Nutzap by @vitorpamplona in #3407
  • Browser: add Discover section with hardcoded web apps & followed nSites/nApplets by @vitorpamplona in #3409
  • Remove network routing confirmation dialog from napplet host by @vitorpamplona in #3408
  • Add loading progress bar and error logging to napplet/browser by @vitorpamplona in #3410
  • New Crowdin Translations by @github-actions[bot] in #3411
  • Add customizable accent colors, fonts, and font sizes by @vitorpamplona in #3412
  • Add surface background color to SearchBar Column by @vitorpamplona in #3414
  • New Crowdin Translations by @github-actions[bot] in #3413
  • Add Nostr signer permissions & relay auth management UI by @vitorpamplona in #3395
  • Add Cashu wallet find-or-create wizard with cross-relay discovery by @vitorpamplona in #3418
  • New Crowdin Translations by @github-actions[bot] in #3416
  • Add git smart-HTTP browser for NIP-34 repositories by @vitorpamplona in #3415
  • Console panel: add visibility toggle, elevation, and state sync by @vitorpamplona in #3420
  • Fix first-connect dialog suppression to allow retry after cooldown by @vitorpamplona in #3421
  • feat(nip89): parse and display app-handler t/i/a/client tags by @vitorpamplona in #3422
  • New Crowdin Translations by @github-actions[bot] in #3419
  • feat(desktop): Follow Packs (NIP-51 kind 39089) — Discover + follow flow by @nrobi144 in #3424
  • Add "Manage permissions" UI for Connected Apps detail screen by @vitorpamplona in #3426
  • New Crowdin Translations by @github-actions[bot] in #3425
  • docs: add per-module plans indexes and master roll-up by @vitorpamplona in #3427
  • Centralize "Mine" feed filter to shared TopFilter.Mine flow by @vitorpamplona in #3428
  • New Crowdin Translations by @github-actions[bot] in #3429
  • feat(desktop): hashtag-spam filter with collapse-with-reveal by @nrobi144 in #3431
  • Rename gzip test corpus to .json.gz to clear Sonar file-encoding warning by @davotoula in #3433
  • chore(actions): bump the actions group with 4 updates by @dependabot[bot] in #3430
  • Add NIP-77 negentropy sync with streaming and windowing support by @vitorpamplona in #3434
  • Document Quartz utilities: hex, time, random, hashing, bech32 by @vitorpamplona in #3435
  • Support Blossom URI scheme for media downloads by @vitorpamplona in #3436
  • Add pre-push Spotless formatting gate by @vitorpamplona in #3437
  • Add OptionalAuthPolicy for NIP-42 without requiring authentication by @vitorpamplona in #3439
  • docs: Add NIP-05 identifier resolution guide and update skill by @vitorpamplona in #3442
  • Escape raw NUL bytes to fix Sonar encoding warning by @davotoula in #3440
  • Add type-safe DSL builder for NIP-11 relay information documents by @vitorpamplona in #3443
  • Persist bottom bar defaults as blank sentinel for auto-migration by @vitorpamplona in #3444
  • Add optional full-text search indexing toggle to SQLiteEventStore by @vitorpamplona in #3445
  • Add podcast authoring UI and NIP-XX Podcasting 2.0 support by @vitorpamplona in #3441
  • New Crowdin Translations by @github-actions[bot] in #3438
  • Centralize default search relays into DefaultSearchRelayList by @vitorpamplona in #3446
  • Remove elevation from bottom and top sheet surfaces by @vitorpamplona in #3447
  • feat(desktop): Privacy lock for Messages column by @nrobi144 in #3432
  • Add compose signature setting to auto-append custom text to posts by @vitorpamplona in #3450
  • New Crowdin Translations by @github-actions[bot] in #3449
  • Implement SearchableEvent interface for NIP-50 search support by @vitorpamplona in #3452
  • Make Log.sink pluggable for custom logging backends by @vitorpamplona in #3453
  • feat: expand the "Let's be reasonable" napplet auto-approve set by @vitorpamplona in #3455
  • feat(desktop): notifications redesign — inbox UX, native OS toasts, shared filter by @nrobi144 in #3457
  • Add lock-free concurrent collections and fix UDP socket threading by @vitorpamplona in #3459
  • Add production benchmarks and negentropy sync optimizations by @vitorpamplona in #3458
  • New Crowdin Translations by @github-actions[bot] in #3456
  • New Crowdin Translations by @github-actions[bot] in #3460
  • Consolidate Czech onto the base values-cs qualifier by @davotoula in #3461
  • New Crowdin Translations by @github-actions[bot] in #3463
  • Strip NIP-50 search extensions before querying SQLite FTS by @vitorpamplona in #3464
  • Prune empty locale files and dead language-picker entries by @davotoula in #3462
  • New Crowdin Translations by @github-actions[bot] in #3465
  • Add relayBench: comprehensive Nostr relay benchmark suite by @vitorpamplona in #3466
  • New Crowdin Translations by @github-actions[bot] in #3467
  • Make dedup decode benchmark resilient to CI load variance by @vitorpamplona in #3468
  • feat(quartz): NostrServer.ingest — local write path with per-submission verify skip by @vitorpamplona in #3469
  • fix(quartz): record REQ state before send in PoolRequests.syncState by @vitorpamplona in #3470
  • New Crowdin Translations by @github-actions[bot] in #3471
  • New Crowdin Translations by @github-actions[bot] in #3472
  • support Birdstar bird detection events (kind 2473) by @davotoula in #3473
  • Handle unchecked File.delete() return values across all modules by @davotoula in #3474
  • Upgrade negentropyKmp to v1.1.1 by @vitorpamplona in #3475
  • fix: stabilize flaky LocalRelayStoreHydrationTest against GC eviction by @vitorpamplona in #3476
  • Repair equals/hashCode contracts in OpenTimestamps ops and VerifyResult by @davotoula in #3477
  • perf(relay): geode↔strfry 1M sync — negentropy + store speedups, strfry-parity mirror, benchmark harness by @vitorpamplona in #3478
  • Fix negentropy refusal handling to prevent window-split storm by @vitorpamplona in #3480
  • feat: add setting to hide the on-chain (Bitcoin) wallet by @vitorpamplona in #3481
  • New Crowdin Translations by @github-actions[bot] in #3479
  • fix(desktop): sidebar nav replaces detail overlay + guard RelayLatencyTracker.sweep against CME by @nrobi144 in #3484
  • render PS1 memory-card saves over nostr (kind 38192) by @davotoula in #3482
  • cli: full relay-settings parity for amy relay (noun-first, all list kinds) by @vitorpamplona in #3485
  • New Crowdin Translations by @github-actions[bot] in #3486
  • Add efficient hex-to-Long conversion utilities for Nostr IDs by @vitorpamplona in #3488
  • fix(quartz): fetchAllPages paging correctness + amy drainAllPages + SeenIds by @vitorpamplona in #3489
  • Clean up empty when branches and remove unnecessary null checks by @vitorpamplona in #3490
  • Add logoff command to CLI for account deletion by @vitorpamplona in #3491
  • CLI: enable read-only verbs to run without an account by @vitorpamplona in #3493
  • Add amy status command for cross-account disk overview by @vitorpamplona in #3492
  • GrapeRank web-of-trust for amy: sync → score → publish (NIP-85) by @vitorpamplona in #3494
  • perf(graperank): faster crawl (cap 100→16, dead-discovery shedding, fewer sweep barriers) + relay diagnostics by @vitorpamplona in #3497
  • NIP-77 deletion sync: two-pass settle over the reconcile residual by @vitorpamplona in #3498
  • Persist SecretTree ratchet positions across MLS group restores by @vitorpamplona in #3499
  • feat(desktop): apply the privacy lock to the Wallet column by @nrobi144 in #3495
  • feat(desktop): Web-of-Trust score badges + shared index relays + amy wot verbs by @nrobi144 in #3483
  • New Crowdin Translations by @github-actions[bot] in #3487
  • Eliminate null-safety suppressions and unsafe casts by @vitorpamplona in #3501
  • Fix race condition in fetchFirst when relay sends buffered events at EOSE by @vitorpamplona in #3502
  • Adapt memory trimming to Android 14+ trim level changes by @vitorpamplona in #3503
  • chore: automate Homebrew formula sync for amy CLI + add cask reference by @vitorpamplona in #3505
  • New Crowdin Translations by @github-actions[bot] in #3500
  • Opt-in local SonarQube analysis via local.properties by @davotoula in #3504
  • Add NIP-77 outbox-model refresh for GrapeRank via NegentropyStoreSync by @vitorpamplona in #3506
  • feat(quartz): add IEventStore.authorsMissingOutbox() anti-join query by @vitorpamplona in #3507
  • feat(desktop): NIP-17 DM reliability — AUTH banner, strict inbox resolution, relay hints by @nrobi144 in #3508
  • fix(pictures): show title/caption before reactions row by @vitorpamplona in #3509
  • Replace synchronized with Mutex in InMemoryAuthApprovalStore by @vitorpamplona in #3510
  • graperank: relay reachability cache (NIP-66), aggregator kind:3 recovery, and outbox-discovery dedup by @vitorpamplona in #3511
  • Enforce blocked relays centrally via decorator client by @vitorpamplona in #3512
  • Relay Groups: NIP-29 relay-based group chat (Armada interop) by @vitorpamplona in #3514
  • New Crowdin Translations by @github-actions[bot] in #3515
  • Persist login UI state across configuration changes by @vitorpamplona in #3517
  • Trim message text before tagging in post ViewModels by @vitorpamplona in #3518
  • docs: Add APK signature verification instructions by @vitorpamplona in #3516
  • Update Brainstorm web app icon URL by @vitorpamplona in #3521
  • Strip trailing whitespace from rich text parser output by @vitorpamplona in #3522
  • NIP-42 relay auth: contextual "why", per-situation trust, and prompts by @vitorpamplona in #3520
  • Support markdown hashtag links (#tag fragments) by @vitorpamplona in #3523
  • Fix relay attribution in gift-wrap chains and Marmot messages by @vitorpamplona in #3524
  • Fix DM read state: mark rooms as read when sending messages by @vitorpamplona in #3525
  • Add NIP-13 Proof-of-Work mining queue with persistence and UI by @vitorpamplona in #3527
  • Add NIP-29 relay groups button to relay information screen by @vitorpamplona in #3526
  • Mark DM rooms as read when wraps are mined in background by @vitorpamplona in #3528
  • Reduce PoW badge size for better UI balance by @vitorpamplona in #3529
  • GrapeRank crawl: connect once, wait once — 38% faster at hop-3; hop-8 31% faster at +15% lists / +47% users by @vitorpamplona in #3513
  • New Crowdin Translations by @github-actions[bot] in #3519
  • New Crowdin Translations by @github-actions[bot] in #3531
  • Parallelize PoW mining with multi-worker nonce search by @vitorpamplona in #3533
  • Clarify relay auth descriptions for profile and engagement data by @vitorpamplona in #3534
  • fix: don't drop whole kind-0 profiles over one mistyped field by @vitorpamplona in #3535
  • New Crowdin Translations by @github-actions[bot] in #3532
  • Aggregate Kover coverage (for SonarQube import) by @davotoula in #3536
  • New Crowdin Translations by @github-actions[bot] in #3537
  • New Crowdin Translations by @github-actions[bot] in #3538
  • New Crowdin Translations by @github-actions[bot] in #3540
  • Remove Kover coverage plugin to fix runner OOM by @davotoula in #3539
  • New Crowdin Translations by @github-actions[bot] in #3542
  • fix(relay-auth): stop paid relays billing accounts that don't use them (inbox.nostr.wine over-AUTH) by @vitorpamplona in #3543
  • Clean up Git card styling and fix duplicated subject in content by @vitorpamplona in #3544
  • Add AutoReplayLimiter to cap video auto-loops in feed by @vitorpamplona in #3545
  • Replace remove-from-notify with mute/unmute bell toggle by @vitorpamplona in #3546
  • fix(ci): serialize :amethyst Kotlin compilations on CI to stop daemon OOMs by @vitorpamplona in #3547
  • Nickname users via NIP-85 contact cards (encrypted petname + private note, custom emojis) by @vitorpamplona in #3548
  • Decouple Android notification kinds from Desktop subscription list by @vitorpamplona in #3550
  • New Crowdin Translations by @github-actions[bot] in #3549
  • Add Flatpak bundle support to release CI + Flathub submission by @vitorpamplona in #3554
  • Battery: background-usage fixes, 122-relay ping study, and an on-device resource-usage ledger by @vitorpamplona in #3551
  • Fix profile banner image scaling from FillWidth to Crop by @vitorpamplona in #3556
  • Fix null pointer in AntiSpamFilter when LRU cache evicts duplicates by @vitorpamplona in #3557
  • Improve NIP-72 approval event parsing robustness by @vitorpamplona in #3558
  • Adaptive large-screen layout: nav rail, permanent drawer, notification panel, reading-column cap by @vitorpamplona in #3553
  • Unify note-header markers into a pill / quiet-mark design system by @vitorpamplona in #3559
  • New Crowdin Translations by @github-actions[bot] in #3555
  • Warn users when relay group relay doesn't advertise NIP-29 by @vitorpamplona in #3561
  • Refactor GrapeRank into separable pipeline stages with local persistence by @vitorpamplona in #3562
  • Surface NIP-29 group replies and likes in notifications by @vitorpamplona in #3563
  • Fix NoteHeaderFirstRowDensityPreview to use tryEmit for Flow by @vitorpamplona in #3564
  • Add floating action button to create new public chats by @vitorpamplona in #3565
  • Concord: end-to-end-encrypted communities (CORD-01…07) on Android + CLI by @vitorpamplona in #3566
  • Add MIP-01 v2 group avatar encryption and upload support by @vitorpamplona in #3568
  • feat(desktop): note scheduling + NIP-37 draft sync (shared scheduling in commons) by @nrobi144 in #3552
  • New Crowdin Translations by @github-actions[bot] in #3567
  • feat: style Messages room-type labels as Concord-style pills by @vitorpamplona in #3570
  • fix(strictmode): stop CleartextNetworkViolation noise from the Tor SOCKS proxy by @vitorpamplona in #3571
  • Replace nullable safe calls with immutable map operations by @vitorpamplona in #3572
  • Support NIP-92 imeta attachments in chat messages by @vitorpamplona in #3573
  • Replace Messages FAB speed-dial with full-screen conversation chooser by @vitorpamplona in #3575
  • Bottom nav: pin individual chats/groups + redesigned setup screen by @vitorpamplona in #3576
  • Extract imeta URL rendering logic to shared utility by @vitorpamplona in #3577
  • Prefetch recent group chat messages for list previews by @vitorpamplona in #3578
  • New Crowdin Translations by @github-actions[bot] in #3574
  • Modernize chat message rendering by @vitorpamplona in #3579
  • Fix reactive state handling in Concord entry display by @vitorpamplona in #3581
  • Concord: richer channel rows — previews, unread counts, facepiles, live typing by @vitorpamplona in #3582
  • New Crowdin Translations by @github-actions[bot] in #3580
  • Skip empty reaction chip rows on messages without engagement by @vitorpamplona in #3584
  • NIP-29 message pinning: UI bar, moderation events, and relay group integration by @vitorpamplona in #3586
  • Sync Blossom media server list (kind 10063) across clients by @vitorpamplona in #3583
  • Desktop NIP-17: deliver DMs & reactions to the recipient's DM relays, downloaded up front by @vitorpamplona in #3587
  • New Crowdin Translations by @github-actions[bot] in #3585
  • Add IO dispatcher import to BlossomServerListState by @vitorpamplona in #3589
  • CORD-05: Distinguish invite redemption failures for better UX by @vitorpamplona in #3592
  • New Crowdin Translations by @github-actions[bot] in #3590
  • Fix AUTH grant persistence for long relay URLs by @vitorpamplona in #3591
  • Add hashtag muting support via NIP-51 by @vitorpamplona in #3593
  • fix(desktop): auto-approve pending relay AUTH once the DM-inbox (kind:10050) set loads by @nrobi144 in #3594
  • NIP-29: subgroups, custom roles, timeline refs, invite links + relay-signed hardening by @vitorpamplona in #3596
  • New Crowdin Translations by @github-actions[bot] in #3595
  • Add global master switch for always-on notification service by @vitorpamplona in #3598
  • Add NIP-22 LIMITS message support with per-relay tracking by @vitorpamplona in #3597
  • New Crowdin Translations by @github-actions[bot] in #3599
  • Improve Concord invite error messaging and Gradle infra detection by @vitorpamplona in #3602
  • refactor: converge rich-text rendering across Android + Desktop into commons by @vitorpamplona in #3600
  • Make theme colors follow selected accent, not fixed purple by @vitorpamplona in #3601
  • Pre-seed Gradle distribution in web sandbox to unblock ./gradlew by @vitorpamplona in #3605
  • Add geohash location chat support (Bitchat interop Phase 2) by @vitorpamplona in #3604
  • Redesign settings screen with segmented controls and sections by @vitorpamplona in #3606
  • New Crowdin Translations by @github-actions[bot] in #3603
  • Keep live HLS streams playing; cache only proven on-demand HLS by @davotoula in #3607
  • Tolerate bare URL icons and keyless channels in CORD-05 invites by @vitorpamplona in #3609
  • Fix onPrimary contrast and add color scheme preview tool by @vitorpamplona in #3610
  • Refactor settings search field to use Material 3 TextField by @vitorpamplona in #3611
  • Add NIP-46 remote signer (bunker) support with consent UI by @vitorpamplona in #3612
  • New Crowdin Translations by @github-actions[bot] in #3608
  • New Crowdin Translations by @github-actions[bot] in #3614
  • feat(relay): stop re-sending REQs relays structurally refuse by @vitorpamplona in #3613
  • New Crowdin Translations by @github-actions[bot] in #3615
  • Prevent re-joining Concord communities via old invite links by @vitorpamplona in #3617
  • fix(nip46): remote-signer pubKey is the user identity + amy Concord epoch tooling by @vitorpamplona in #3618
  • NIP-84: Support W3C TextQuoteSelector for highlight context by @vitorpamplona in #3619
  • Replace Jackson with kotlinx.serialization for FHIR parsing by @vitorpamplona in #3620
  • New Crowdin Translations by @github-actions[bot] in #3616
  • feat(concord): backfill channel history across Refounding epochs by @vitorpamplona in #3622
  • Add per-chat-type load toggles to Messages settings by @vitorpamplona in #3623
  • Move relay badges from author column to reaction gallery by @vitorpamplona in #3624
  • refactor(commons): extract note-type UI rendering to commons by @vitorpamplona in #3625
  • chore: include commons Compose resources in Crowdin sync by @vitorpamplona in #3627
  • Redesign media servers UI with drag-reorder, health probes, and cards by @vitorpamplona in #3628
  • Add follower crawl and trusted-follower metrics to GrapeRank by @vitorpamplona in #3626
  • fix(ci): reclaim working-tree ownership after Crowdin Docker action by @vitorpamplona in #3629
  • Move settings search field to top bar by @vitorpamplona in #3632
  • Add unread indicators for NIP-29 relay groups and Concord channels by @vitorpamplona in #3631
  • New Crowdin Translations by @github-actions[bot] in #3630
  • Extract GrapeRank CLI flag names into constants by @davotoula in #3634
  • Add Blossom blob manager UI and BUD-07 payment handling by @vitorpamplona in #3635
  • Fix StrictMode DiskReadViolation in BootCompletedReceiver by @vitorpamplona in #3636
  • New Crowdin Translations by @github-actions[bot] in #3633
  • Fix media detection for malformed imeta MIME types by @vitorpamplona in #3638
  • New Crowdin Translations by @github-actions[bot] in #3637
  • Reorder settings menu entries and update icons by @vitorpamplona in #3640
  • NIP-29 group chat: split state (always-on) from content (paginated) by @vitorpamplona in #3641
  • amy CLI overhaul: exit-code/JSON contract v1, per-command help, contract tests, docs, and thin-layer extractions by @vitorpamplona in #3642
  • New Crowdin Translations by @github-actions[bot] in #3639
  • Map-first geohash location UX: picker, teleport, follow, retarget by @vitorpamplona in #3643
  • New Crowdin Translations by @github-actions[bot] in #3644
  • chore(deps): update dependencies across all modules by @vitorpamplona in #3646
  • New Crowdin Translations by @github-actions[bot] in #3645
  • docs(changelog): add v1.13.0 release notes by @vitorpamplona in #3647
  • New Crowdin Translations by @github-actions[bot] in #3648
  • fix: v1.13.0 pre-release QA — napplet account isolation, Concord authority, and 30 other fixes by @vitorpamplona in #3650
  • New Crowdin Translations by @github-actions[bot] in #3651
  • New Crowdin Translations by @github-actions[bot] in #3652
  • Add infinite-scroll backward pagination for notification history by @vitorpamplona in #3653
  • Share a note (link) as a QR code by @davotoula in #3654
  • New Crowdin Translations by @github-actions[bot] in #3655
  • Replace raw bidi/invisible Unicode characters in source with \u escapes by @davotoula in #3656
  • New Crowdin Translations by @github-actions[bot] in #3657
  • fix: persist the MIP-00 key-package and favorite-algo-feeds lists by @vitorpamplona in #3659
  • fix: Concord groups missing or slow on the Messages tab after a cold boot by @vitorpamplona in #3658
  • Optimize relay query performance: cost-based driver selection, tag-author indexing, and fanout memoization by @vitorpamplona in #3660
  • docs: fix license badge and refresh stale SKILL.md by @vitorpamplona in #3662
  • SQLite query scaling: FTS contentless, tag-merge, pooled statements by @vitorpamplona in #3663
  • feat(desktop): NIP-88 polls (render, vote, create) + "Polls" search facet by @nrobi144 in #3664
  • New Crowdin Translations by @github-actions[bot] in #3665
  • fix(video): decoder-budget exhaustion and black bars on live streams by @vitorpamplona in #3667
  • Downgrade JVM target from 21 to 17 in quartz module by @vitorpamplona in #3668
  • Replace abandoned Android test report action with mikepenz/action-junit-report by @vitorpamplona in #3670
  • Stop ConcurrentModificationException in AddressableAuthorRelayLoaderSubAssembler by @davotoula in #3666
  • New Crowdin Translations by @github-actions[bot] in #3669
  • New Crowdin Translations by @github-actions[bot] in #3672
  • fix(signer): never stamp our client tag on someone else's template by @vitorpamplona in #3673
  • New Crowdin Translations by @github-actions[bot] in #3674
  • Bootstrap Concord communities from pinned bottom-bar tabs by @vitorpamplona in #3675
  • Refactor privacy settings UI to use composable components by @vitorpamplona in #3676
  • Redesign ZapTheDevsCard with gradient hero header and improved UI by @vitorpamplona in #3677
  • Fix excessive vertical spacing in home feed when no live bubbles by @vitorpamplona in #3678
  • New Crowdin Translations by @github-actions[bot] in #3679
  • Warn users when a DM comes from an account that people they follow have reported by @davotoula in #3680
  • Add Buzz protocol support with workspace, DM, and agent features by @vitorpamplona in #3682
  • Add "send without PoW" option for template posts during mining by @vitorpamplona in #3684
  • fix(concord): recover communities that won't load + warm channel previews by @vitorpamplona in #3686
  • Redesign push notifications with per-kind styles and channels by @vitorpamplona in #3683
  • New Crowdin Translations by @github-actions[bot] in #3681
  • New Crowdin Translations by @github-actions[bot] in #3688
  • feat(desktop): Moderation & Safety — mute/block enforcement, NIP-56 report, NIP-36 content warning by @nrobi144 in #3687
  • New Crowdin Translations by @github-actions[bot] in #3689
  • Improve RSVP button layout and text handling by @vitorpamplona in #3691
  • Remove unreachable duplicate StreamMessageV2Event branch in computeReplyTo by @davotoula in #3690
  • Add pluggable event store backend selection via StoreFactory by @vitorpamplona in #3692
  • docs: update v1.13.00 changelog with Buzz, Notifications, and more by @vitorpamplona in #3693
  • Refactor persistent collections API and fix deprecation warnings by @vitorpamplona in #3694
  • Stop the decoder-budget counter from leaking and disabling the warm player cache by @davotoula in #3695
  • Add geode standalone Nostr relay with release pipeline by @vitorpamplona in #3696
  • Anchor message edits to their targets instead of workspace state by @vitorpamplona in #3698
  • Redesign Blossom blob manager UI with gallery grid and full-screen viewer by @vitorpamplona in #3699
  • Add image attachment support to minichat threads by @vitorpamplona in #3700
  • Anchor OTS attestations to target notes, replace verification cache by @vitorpamplona in #3702
  • Add Blossom blob import flow to pull files from other servers by @vitorpamplona in #3703
  • Add NWC payment notifications and deep-link pairing by @vitorpamplona in #3701
  • Support Buzz stream messages in group chat and improve chat previews by @vitorpamplona in #3704
  • Add pinnable relay servers and Concord channels to bottom bar by @vitorpamplona in #3706
  • fix(concord): isolate the Control Plane sub so channels don't starve by @vitorpamplona in #3705
  • Add mirrorOrUpload fallback when Blossom /mirror endpoint unsupported by @vitorpamplona in #3708
  • Add NIP-XX BOLT12 zap support with validation and UI integration by @vitorpamplona in #3685
  • Extract chat room mark-as-read logic into reusable function by @vitorpamplona in #3707
  • Fix race condition in NIP-01 compliance test with concurrent relays by @vitorpamplona in #3709
  • New Crowdin Translations by @github-actions[bot] in #3697
  • Support RelayGroupChannelListScreen as bottom-nav tab by @vitorpamplona in #3712
  • Upgrade genaiPrompt to 1.0.0-beta4 by @vitorpamplona in #3713
  • Fix GC-dependent flaky test in LargeCacheAddressableFilterTest by @davotoula in #3711
  • Relay Rail: cluster relay groups by host relay with slim headers by @vitorpamplona in #3715
  • New Crowdin Translations by @github-actions[bot] in #3714
  • fix(nip29): deliver Buzz/NIP-29 channel updates live, and ask before showing channels you were added to by @vitorpamplona in #3716
  • Stop the inline audio player painting over the note by @davotoula in #3719
  • fix(buzz): thread kind-9 replies into the minichat instead of the channel by @vitorpamplona in #3718
  • Rename NIP-XX to NIP-B1 for BOLT12 Zaps specification by @vitorpamplona in #3720
  • New Crowdin Translations by @github-actions[bot] in #3717
  • fix(tor): self-heal a guard sample that is rotten at runtime, not just on disk by @vitorpamplona in #3721
  • fix(quartz): route kind-39005 by tag shape so Buzz thread summaries stop parsing as NIP-29 pin lists by @vitorpamplona in #3725
  • New Crowdin Translations by @github-actions[bot] in #3726
  • fix: decode numeric HTML entities in link preview meta tags by @dergigi in #3724
  • feat(buzz): say who joined and what changed in the kind-40099 system lines by @vitorpamplona in #3727
  • refactor(chats): demote Threads and Share to the channel overflow menu by @vitorpamplona in #3729
  • New Crowdin Translations by @github-actions[bot] in #3728
  • docs(quartz): correct the Buzz kind-conflict table and document how to read Buzz's source by @vitorpamplona in #3731
  • fix(buzz): only offer "new thread" where a forum post belongs by @vitorpamplona in #3732
  • Support P2PK witness signing for pasted Cashu tokens by @vitorpamplona in #3734
  • Remove community banner from Concord home screen by @vitorpamplona in #3737
  • Redesign Buzz channel rows to match Concord style with activity previews by @vitorpamplona in #3736
  • fix(chats): render the community tab correct on its first frame by @vitorpamplona in #3735
  • test(quartz): clean up compiler warnings across the test suites by @vitorpamplona in #3738
  • New Crowdin Translations by @github-actions[bot] in #3733
  • New Crowdin Translations by @github-actions[bot] in #3739
  • New Crowdin Translations by @github-actions[bot] in #3740
  • Add SearchableEvent implementation to 18 event types by @vitorpamplona in #3743
  • feat(quartz): index the public petname on contact cards (30382) by @vitorpamplona in #3745
  • fix(buzz): make channel create, add-member and role changes actually work by @vitorpamplona in #3742
  • Merge close workout sessions to reduce noise in Health Connect suggestions by @vitorpamplona in #3746
  • Add Buzz job/workflow boards and CLI agent/workflow commands by @vitorpamplona in #3748
  • Fix NIP-77 negentropy stall against relays that refuse via NOTICE by @vitorpamplona in #3747
  • Resolve @mentions in message bodies to p-tags across all chat types by @vitorpamplona in #3749
  • New Crowdin Translations by @github-actions[bot] in #3744
  • docs: update v1.13.00 changelog with new features by @vitorpamplona in #3750
  • New Crowdin Translations by @github-actions[bot] in #3751
  • Fix flaky FindUsersTest by retaining users in cache by @vitorpamplona in #3754
  • docs(changelog): tighten v1.13.0 highlights and audit against commits since v1.12.6 by @vitorpamplona in #3753
  • Display user profiles in notification settings account list by @vitorpamplona in #3756
  • Move bottom-bar persistence from app-global to per-account synced settings by @vitorpamplona in #3755
  • New Crowdin Translations by @github-actions[bot] in #3752
  • feat(highlights): render NIP-84 quotes with a highlighter-pen marker by @vitorpamplona in #3757
  • New Crowdin Translations by @github-actions[bot] in #3758
  • Make the combined-sessions count a plurals resource by @davotoula in #3760
  • Keep the "open in browser" button alive in a short error box by @davotoula in #3759
  • Reorganize settings catalog: move UI settings to dedicated section by @vitorpamplona in #3762
  • New Crowdin Translations by @github-actions[bot] in #3761

New Contributors

Full Changelog: v1.12.6...v1.13.0

Don't miss a new amethyst release

NewReleases is sending notifications on new releases.