Skip to content

Releases: vitorpamplona/amethyst

Release v0.87.3: Fixes for using the wrong relays for DVMs.

03 Jun 19:56
Compare
Choose a tag to compare

Release v0.87.2: Relay connection bugfix

01 Jun 20:27
Compare
Choose a tag to compare

Release v0.87.1: BugFix missing notification dot

01 Jun 17:30
Compare
Choose a tag to compare

Release v0.87.0: DVMs and Gossip

01 Jun 15:06
Compare
Choose a tag to compare

#Amethyst v0.87.0: Data Vending Machines (DVMs) and Gossip Model

This version adds support for Data Vending Machines for content discovery. You can request a job by simply navigating to the 4th tab and choosing one of the DVMs. It also starts our support for the Inbox/Gossip model. The relay setup screen has been rewritten to support the many types of relays Amethyst will start to use. Please add your relays as you see fit.

Our video caching system has been improved. Most of the high-bandwidth use of the app in the last month has been due to a faulty caching system for some video types. The app was just downloading them at every playback. In a similar way, the caching system for encrypted events has been massively improved. The app should feel visibly lighter at this point.

If you generated your keys from NIP-06 seed words you can now type them on the login screen to start the app. We are not generating seeds yet, but this will be available in the upcoming versions.

We are also moving to deprecate and remove most of the NIP-04 usage in the app. In the future, users won't be able to send new NIP-04 DMs but the history of past DMs will be available for as long as we can support it.

Features:

  • Adds support for NIP-90, data vending machines by @npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8
  • Adds support for discovery content DVMs in the discovery tab by @npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8
  • Adds support for paid DVMs by @npub1nxa4tywfz9nqp7z9zp7nr7d4nchhclsf58lcqt5y782rmf2hefjquaa6q8
  • Adds support for NIP-06 seed word key derivation (bip32 and bip39) when logging in
  • Adds support for NIP-65 relay lists
  • Adds support for NIP-17 private DM relay lists
  • Adds support for private relay lists to save Draft events
  • Adds support for local relays as a separate relay set, saving locally only.
  • Adds message + dialog to setup Search relays when searching
  • Adds message + dialog to setup DM relays when messaging
  • Adds signString method for Amber by @npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5
  • Prefers NIP-65 relays for zap request relay tags
  • Prepares for NIP-96 server list integration
  • Adds paste from clipboard button to NWC screen by @npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5
  • Moves video compressing quality to medium instead of low
  • Adds recommended amounts for the Zap the Devs
  • Reduces default zap amounts due to the change of Bitcoin price
  • Allows the new post's relay selection dialog to pick any relays (instead of just writing relays) by @npub10npj3gydmv40m70ehemmal6vsdyfl7tewgvz043g54p0x23y0s8qzztl5h
  • Improves Zap efficiency for large zap splits
  • Adds a queue of commands while the relay connects
  • Makes sure only one connection per URL is made when doing splits
  • Removes unnecessary Amber calls when decrypting private zaps
  • Improves Zap error messages to include the lnaddress of the error
  • Displays Zap Split error messages in sequence instead of in multiple popups.

Bug Fixes:

  • Waits 500ms before restarting all connections when saving new relays
  • Automatically deactivate writes for search relays (they are read-only)
  • Overrides pubkey to avoid impersonators on seals.
  • Fixes the rendering of replies on wikipages.
  • Fixes duplicated imeta tags when uploading the same image twice
  • Removes reposts from the Dot Notification in the home's bottom bar icon
  • Fixes a white space when including an image url after a new line
  • Fixes alignment of the like icons after the like event
  • Fixes wrong display of original and forked notes
  • Improves the rendering of Channels and Communities when quoted
  • Slightly better rendering Drafts in the thread
  • DecimalFormats are not thread safe, moving them to thread objects
  • Block error messages from closing the Zap split payment screen
  • Better formats zap amounts (don't show .0 if the previous numbers are large)
  • Fixes the offset position of the payment amounts on the Zap the Devs message
  • Fixes Copy Text function of DraftEvents
  • Fixes top bar lists not updating when following communities and hashtags.
  • Show toast error if unable to hide words by @npub10ug9xs24ay5339agakaqk556t6zvq9qn5vm0vlhc4pu25cx0l32qxhrm9e
  • Adds Autofocus when entering the search screen by @npub10ug9xs24ay5339agakaqk556t6zvq9qn5vm0vlhc4pu25cx0l32qxhrm9e
  • Fixes the use of Global-active relays in the Global Feed
  • Fixes special chars on URL previews by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef
  • Fixes the lack of refresh when adding hidden words in the Security filters
  • Makes sure only one buffering action is run for each video view
  • Increases timeout to Tor connections
  • Fixes a bug with signature-null in the sig of events from Amber

Updated translations:

  • Czech, German, Swedish and Portuguese by @npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef
  • French by @npub106efcyntxc5qwl3w8krrhyt626m59ya2nk9f40px5s968u5xdwhsjsr8fz
  • Polish by @npub16gjyljum0ksrrm28zzvejydgxwfm7xse98zwc4hlgq8epxeuggushqwyrm
  • Dutch by @npub1w4la29u3zv09r6crx5u8yxax0ffxgekzdm2egzjkjckef7xc83fs0ftxcd
  • Hungarian by @npub1ww8kjxz2akn82qptdpl7glywnchhkx3x04hez3d3rye397turrhssenvtp
  • Swahili by @npub1q6ps7m94jfdastx2tx76sj8sq4nxdhlsgmzns2tr4xt6ydx6grzspm0kxr
  • Thai by @npub1vm0kq43djwdd4psjgdjgn9z6fm836c35dv7eg7x74z3n3ueq83jqhkxp8e
  • Hindi by @npub1ww6huwu3xye6r05n3qkjeq62wds5pq0jswhl7uc59lchc0n0ns4sdtw5e6
  • Spanish by @npub1luhyzgce7qtcs6r6v00ryjxza8av8u4dzh3avg0zks38tjktnmxspxq903

Performance Improvements:

  • Optimizes Blurhash generation (4x gains)
  • Speeds up the URL finder in the new post edit text (8x gains).
  • Reduces the use of background colors to improve rendering speeds (15% gains).
  • Refactors Giftwrap caching to delete encrypted text and reload the wrap if necessary (20x savings in memory use).
  • Changes message wrap host to a host stub to reduce memory use
  • Only download GiftWraps form 2 days past the last EOSE
  • Moves the thread formatter and calculator out of Note to avoid memory use
  • Slight improvement on the thread view for badges
  • Unifies NIP01 Serialization with SHA-256 procedures to reduce the creation of several byte arraysΒ at every verification
  • Minimizes costs of keeping track of the number of events received per subscription
  • Moves ClientController executor to a thread
  • Speeds up ID calculations for Amber's Intent call

Code Quality Improvements:

  • Major refactoring of the Relay List screens
  • Refactors Relay URL formatter to Quartz
  • Adds new observer structure for the LocalCache
  • Moves Blurhash code to the commons module
  • Updates UnifiedPush by @npub1a3tx8wcrt789skl6gg7rqwj4wey0j53eesr4z6asd4h4jwrd62jq0wkq4k
  • Migrates to the latest Kotlin, Compose, and AGP 8.4.1 and several other dependencies

Download:

Release v0.86.5

Release v0.86.4: Start up bug fixes

Release v0.86.3: New Markdown Parser

10 Apr 00:30
Compare
Choose a tag to compare
  • Migrates to the new, faster Markdown Parser
  • Adds Note previews on Markdown
  • Adds Custom hashtag icons to Markdown
  • Adds URL preview boxes to Markdown
  • Fixes Missing notifications
  • Fixes clickable route not showing the user's npub before loading their name
  • Fixes max width of hidden notes making them off-centered
  • Moves parsing and saving an embed event to the IO thread
  • Improves the secondary button design of the encrypted nsec backup page

Release v0.86.2: Fixes Draft Deletion in Threads bug

05 Apr 18:26
Compare
Choose a tag to compare

#Amethyst v0.86.2: Draft BugFixes

  • Fixes Draft Event not being deleted in threads
  • Fixes draft decryption error
  • Adds ws:// if not present in .onion relay urls
  • Fixes double notifications

Download:

Release v0.86.1: Fixes Draft into Draft infinite loop

04 Apr 22:18
Compare
Choose a tag to compare

Release v0.86.0 Draft Support

04 Apr 21:32
Compare
Choose a tag to compare

This version adds support for draft notes autosaved on your relays, a new simplified UI choice on Settings, changes the Discover tab algorithm to show the latest of chats and communities and much more.

Features:

  • Draft notes for feeds, replies, live streams, public chats, NIP-04 DMs, GiftWrap DMs, polls and classifieds by nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5
  • Adds autosave for Drafts by nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5
  • Adds edit draft in the dropdown menu and the long press popup by nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5
  • Adds a Draft feed screen for all posts
  • Adds new algorithm to parse OpenGraph tags by nostr:npub168ghgug469n4r2tuyw05dmqhqv5jcwm7nxytn67afmz8qkc4a4zqsu2dlc
  • Adds a Simplified UI setting to both feeds and chats
  • Moves the username play button to the profile page.
  • Adds link to the version notes when clicking in the version in the drawer
  • Brings new git Issues and Patches to the Notification
  • Filters out too many reposts of the same note when on the main feed
  • Updates the bootstrap relay list
  • Adds missing classes to support WebServer connections in the Video Playback
  • Slightly reduces line height for improved readability
  • Reduces the space between chat bubbles.
  • Migrates shareable links from habla.news to njump.me
  • Restructures the Discover Tab to show the Chats and Communities with the most recent new content.
  • Adds a bot field to the user info
  • Adds k-tag to the Deletion events
  • Adds button to load Zap Splits from the cited users in the text
  • Several accessibility improvements by nostr:npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef

Bug Fixes:

  • Fixes the post cut-off when the post has massive string chars without spaces or new lines
  • Fixes missing Fhir Classes on Release
  • Don't show the button to edit the post if the author of the original post is not the logged in user
  • Fixes crash parsing multiple results from Amber by nostr:npub1w4uswmv6lu9yel005l3qgheysmr7tk9uvwluddznju3nuxalevvs2d0jr5
  • Fixes the load of edits on a new edit proposal
  • Fixes forking information kept from a previous post
  • Fixes search on binary content
  • Fixes space after clickable user display
  • Centers Blank Note when post was hidden by the user.
  • Accepts JSON events with escaping errors
  • Fixes the parsing of user metadata events several times due to large coroutine backlog
  • Fixes Scheduled Tag in LiveStreams
  • Fixes the isOnlineCheck for nostr nests.
  • Fixes sorting contract issues when follow status and user names are the same between keys
  • Fixes tickmarks on dropdowns
  • Checks if a Classified is wellformed before rendering
  • Fixes size and alignment of the text when the live stream video is not present.
  • Fixes some imports for benchmarks
  • Fixes infinite Quotation issue (3 quotes are allowed).
  • Fixes crashing with too many videos in quoted posts.
  • Fixes double Show More when the user has hidden a post and ALSO the user's followers have reported the post.
  • Only shows OTS to the respective Edit
  • Fixes a bug with the latest version of jackson
  • Avoids showing machine-code errors when paying for zaps on external wallets
  • Fixes too strict timing constraints for new posts (accepts up to a minute in the future)
  • Fixes following of geotags
  • Fixes lack of zap amount refresh after zapping a note.
  • Fixes videos not being able to seekTo the zero position.
  • Fixes layout issues of Blog Post summaries when images are not present.
  • Doesn't show edits of blog posts in the User's Profile
  • Fixes Amber's deep sleep: Adds a lifeCycleOwner listener to register external signers on resume
  • Fixes missing context in some replies to blog posts.
  • Adds a space after the Channel header in the reply rows
  • Centralizes the counter after the list of participants in a live event.
  • Fixes double mention to Community headers when seeing a reply to a community post.
  • Fixes Chat preview images when no image has been set.
  • Fixes the display or Zap Events when All Follows is selected in Notifications
  • Fixes the reply event finder for the reply row of text notes
  • Makes hidden cards full width on the discovery feed
  • Fixes the width of muted messages on chat feeds.
  • Fixes the feed updates after list selections on the Discovery pages.
  • Realigns the reaction icons and texts between main feed and video feed.
  • Fixes garbled URL preview for non-UTF-8 HTML by nostr:npub168ghgug469n4r2tuyw05dmqhqv5jcwm7nxytn67afmz8qkc4a4zqsu2dlc
  • Adjusts icon sizes on the galleries
  • Avoids publishing with two equal t hashtags when the user already writes them in lowercase
  • Limits the size of image previews from opengraph from being too big
  • Fixes NPE with the cached state.
  • Increases the push notification max delay to 15 minutes
  • Fixes controller comparison for keep playing
  • Fixes tag markers for replies in DMs
  • Fixes layout of the reply row in chats
  • Fixes lack of blurhash preview in some videos
  • Fixes the lack of following mark on user pictures in chats
  • Fixes the UI spacing for channels
  • Fixes the use of filters that didn't discriminate the relay type setup
  • Holds the state of Show More when switching edits and translations
  • Renders DMs and live chats in the feed if they show up there
  • Fixes contract violation when sorting users

Updated translations:

  • Spanish by nostr:npub1luhyzgce7qtcs6r6v00ryjxza8av8u4dzh3avg0zks38tjktnmxspxq903
  • French by nostr:npub106efcyntxc5qwl3w8krrhyt626m59ya2nk9f40px5s968u5xdwhsjsr8fz
  • Dutch by nostr:npub1w4la29u3zv09r6crx5u8yxax0ffxgekzdm2egzjkjckef7xc83fs0ftxcd
  • Swahili by nostr:npub1q6ps7m94jfdastx2tx76sj8sq4nxdhlsgmzns2tr4xt6ydx6grzspm0kxr
  • Chinese by nostr:npub1raspu6ag9kfcw9jz0rz4z693qwmqe5sx6jdhhuvkwz5zy8rygztqnwfhd7
  • Bengali by nostr:npub13qtw3yu0uc9r4yj5x0rhgy8nj5q0uyeq0pavkgt9ly69uuzxgkfqwvx23t
  • Hungarian by nostr:npub1ww8kjxz2akn82qptdpl7glywnchhkx3x04hez3d3rye397turrhssenvtp
  • Czech, German, Swedish and Portuguese by nostr:npub1e2yuky03caw4ke3zy68lg0fz3r4gkt94hx4fjmlelacyljgyk79svn3eef
  • Arabic by nostr:npub13qtw3yu0uc9r4yj5x0rhgy8nj5q0uyeq0pavkgt9ly69uuzxgkfqwvx23t
  • Thai by nostr:npub1tr66yvqghfdgwv9yxhmg7xx6pvgvu5uvdc42tgdhsys8vvzdt8msev06fl and nostr:npub1vm0kq43djwdd4psjgdjgn9z6fm836c35dv7eg7x74z3n3ueq83jqhkxp8e

Performance Improvements:

  • Switches Robohash to Precompiled SVGs in order to reduce the memory burned of creating Strings with SVGs on the fly
  • Restructures Data Access filters and LocalCache to use a ConcurrentSkipList instead of ConcurrentHashMap
  • Only download video, image and audio files in NIP-94
  • Updated hashtag icons for performance
  • Avoids checks if a filter has changed before generating JSon strings
  • Cleans up User Metadata upon receipt instead of in every rendering
  • Simpler/Faster UserDisplay renderings
  • Reduces video cache from 10 to 4 videos
  • Removes coroutine use for Hashtags
  • Brings the ZapForwarding icon to Compose
  • Simplifies the algorithm to check if chatroom sender intersects with the follow list
  • Avoids serializing temporary fields on Quartz
  • Refactors views to the video and chat feeds
  • Restructures NoteCompose for performance
  • Restructures markAsRead to minimize threading cost
  • Adds a large benchmark test for duplicate events
  • Optimizing the performance of Highlight rendering
  • After memory cleanup, only trigger liveData when it actually changes
  • Minimizes memory use to calculate zaps
  • Avoids triggering an error when decoding invalid hexes
  • Reduces the amount of co-routines being launched in each LiveData update
  • Migrates channel list and channel notes to LargeCache
  • Removes the use of data classes to speed up comparisons
  • Improves Nostr filter to bring public chat messages and avoid public chat creation and metadata updates
  • Removes jsoup from dependencies
  • Removes the need to observe author changes to event after loaded
  • Turns hashtag icons into programmable vectors
  • Moves the Following Vector to a native composable
  • Removes unnecessary modifier layouts from the top bar
  • Uses the cached thread pool instead of the scheduled thread pool for translation services
  • Avoids launching coroutines that were just launched
  • Makes a cache for Media Items
  • Only changes the keep playing status if different
  • Reduces recompositions after video/image hash verification
  • Avoiding feed jitter when pressing the notification button twice

Code Quality Improvements:

  • Breaks massive NoteCompose down into each event type
  • Removes the release drafter plugin on actions. Too buggy
  • Removes dependency of the Robohash from CryptoUtils
  • Improves Preview helper classes
  • Updates secp256k1KmpJniAndroid, compose, zoomable, media3, jackson and firebase libs
  • Updates AGP to 8.3.1
  • Deletes the old Settings local db
  • Refactors some of the old display name structure
  • Refactors Relay classes.
  • Isolates the LargeCache forEach method to allow quick time measurements on filters
  • Reorganizes classes in the commons lib
  • Fixes test cases for nip96 uploaders
  • Removes unused addMargin param
  • Refactoring caching systems for the Compose layer
  • Aligns the BOM between implementation and tests
  • Refactors the use of dividers out of components
  • Refactors composables to load events, check hidden and check report
  • Fix Kotlin encryptDecryptTest to decrypt with swapped private and public keys to follow NIP-44 documentation by nostr:npub1yaul8k059377u9lsu67de7y637w4jtgeuwcmh5n7788l6xnlnrgs3tvjmf
  • Finishes the migration of People List updates from LiveData to Flow
  • Migrates all Refreshable feeds to the Refreshable box component
  • Refactors cache methods in GiftWraps
  • Migrates Media3 Videos to the DefaultMediaSourceFactory

Download:

Read more