Files
amethyst/docs/changelog/v1.12.06.md
T
Vitor PamplonaandClaude Opus 4.8 805f7e8e84 v.1.12.6
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 19:01:59 -04:00

3.2 KiB

v1.12.6: Napplets, Static Sites & Cashu Multi-Mint

Highlights:

  • New protocol support for Nostr Web Applets (NIP-5D) and static websites (NIP-5A), resolved straight from signed manifests over Blossom.
  • Cashu tokens that span multiple mints now redeem in full, and both Base64 alphabets are accepted.
  • A batch of stability fixes across notifications, playback, feeds, and the emoji pack screens.

New Features

  • Add support for Nostr Web Applets (NIP-5D) and static websites (NIP-5A). Napplet manifests (snapshot/root/named kinds) and the NIP-5A aggregate-hash layer land in Quartz, with a resolver that downloads each listed Blossom server in order and accepts only the blob whose recomputed SHA-256 matches the signed manifest — a substituted or corrupted blob fails verification and is skipped.

Performance

  • Cashu token-prefix dispatch now compares against precomputed DualCase prefixes instead of case-folding the cashuA/cashuB markers on every call.

Improvements and Bug fixes

  • Cashu: redeeming a pasted token now redeems every mint/keyset group in it (previously only the first), validating all mints are in the wallet up front and summing the redeemed amounts. The parser also tolerates both standard and url-safe Base64 and mixed-case cashuA/cashuB prefixes.
  • Stop the DisappearingScaffold top/bottom bars from overshooting their resting edge during the show/hide animation.
  • Dedupe emoji shortcodes in the Emoji Pack screen to prevent a LazyGrid crash, and dedupe emoji pack addresses in the My Emoji List grid.
  • Cap media-session artwork to the platform bitmap limit so large covers no longer crash playback.
  • Handle a missing camera app gracefully when taking photos or videos.
  • Snapshot live-stream status order before sorting, and snapshot feed filters too, to avoid TimSort "contract violation" crashes.
  • Notifications: call startForeground on every start command and always stopSelf when foreground promotion fails.
  • Guard the Health Connect permission check against service-bind failures.
  • Add a descriptive message to the media-download HTTP check.

Cli

  • amy napplet fetch resolves and fetches a NIP-5D napplet.
  • amy nsite fetch resolves and verifies a NIP-5A static site / napplet.

Quartz

  • Implement NIP-5D napplets and the NIP-5A static-site resolver (manifest model, path lookup, hash verification, Blossom candidate assembly) in commonMain, with HTTP injected so Quartz keeps no networking dependency.
  • Move the out-of-band Cashu token parser, the cashuB (v4) encoder, and the token container model into Quartz, so Desktop's rich-text viewer can now parse received Cashu tokens. Adds kotlinx-serialization-cbor (Apache-2.0).
  • Centralize Blossom protocol strings in Quartz.
  • Never let signer timeouts crash from auto-signing launches.

Build & Documentation

  • Generate the changelog translator credits offline from a committed translators.json, track a rolling "since last tag" contributor list, and seed it from Crowdin on every sync without rewriting the timestamp each run.

Contributors

  • @npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z

Translations

  • None this release.