mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-10 16:33:27 +00:00
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
3.2 KiB
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
DualCaseprefixes 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/cashuBprefixes. - Stop the
DisappearingScaffoldtop/bottom bars from overshooting their resting edge during the show/hide animation. - Dedupe emoji shortcodes in the Emoji Pack screen to prevent a
LazyGridcrash, 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
startForegroundon every start command and alwaysstopSelfwhen 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 fetchresolves and fetches a NIP-5D napplet.amy nsite fetchresolves 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. Addskotlinx-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.