mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2026-08-11 16:57:39 +00:00
docs: split remaining multi-sentence items into sub-lists in v1.12.0 changelog
https://claude.ai/code/session_01Y8cDkDRV48GYdQd3CR4kuV
This commit is contained in:
+90
-38
@@ -2,14 +2,14 @@
|
||||
|
||||
Highlights:
|
||||
|
||||
- **CLINK payments.** A new Lightning rail built on Offers and Debits. Includes spending budgets, NIP-05 offer discovery, and a unified Send Payment screen.
|
||||
- **Private posts & reactions.** Post, reply, react, and zap privately. Everything is end-to-end encrypted via NIP-17 gift wraps.
|
||||
- **Workouts.** Record and browse NIP-101e workout records (kind 1301) in a dedicated feed.
|
||||
- **Math in notes.** Write inline and block LaTeX. It renders right in the timeline.
|
||||
- **Activity cards.** Likes, zaps, and nutzaps now render as rich gradient cards. Each card embeds the post it reacted to and taps through to the thread.
|
||||
- **App recommendations.** Editable NIP-89 recommendations on your profile, with richer cards, screenshots, and author names.
|
||||
- **Pinned DMs.** Pin important conversations to the top of the chat list. The pins sync across your devices.
|
||||
- **Desktop.** Image compression on upload, a new media player, group-DM parity, a Replies tab, and a refreshed feed.
|
||||
- **CLINK payments** — a new Lightning rail with spending budgets, NIP-05 offer discovery, and a unified Send Payment screen.
|
||||
- **Private posts & reactions** — post, reply, react, and zap privately, all end-to-end encrypted via NIP-17 gift wraps.
|
||||
- **Workouts** — record and browse NIP-101e workout records (kind 1301) in a dedicated feed.
|
||||
- **Math in notes** — write inline and block LaTeX that renders right in the timeline.
|
||||
- **Activity cards** — likes, zaps, and nutzaps render as rich gradient cards that tap through to the thread.
|
||||
- **App recommendations** — editable NIP-89 recommendations on your profile, with richer cards and screenshots.
|
||||
- **Pinned DMs** — pin important conversations to the top of the chat list, synced across devices.
|
||||
- **Desktop** — image compression on upload, a new media player, group-DM parity, a Replies tab, and a refreshed feed.
|
||||
|
||||
## New Features
|
||||
|
||||
@@ -18,13 +18,18 @@ Highlights:
|
||||
- **CLINK — a new Lightning payment rail.** Pay and get paid through CLINK Offers and Debits, an interoperable Lightning-over-Nostr scheme.
|
||||
- Profiles can show a tappable CLINK Offer chip.
|
||||
- You can pay a contact directly from their profile.
|
||||
- **Spending budgets for CLINK debits.** Set one-time or recurring limits. A debit connection can then pull funds up to the cap you set.
|
||||
- **Spending budgets for CLINK debits.**
|
||||
- Set one-time or recurring limits.
|
||||
- A debit connection pulls funds only up to the cap you set.
|
||||
- **Discover offers by NIP-05.** Resolve a person's payment offer straight from their `name@domain` address.
|
||||
- **Unified Send Payment screen.** Reach every rail from one place:
|
||||
- Lightning, CLINK, on-chain Bitcoin, and Cashu/nutzaps.
|
||||
- A "Pay from" selector chooses which wallet the money leaves.
|
||||
- **On-chain payments.** Pay Bitcoin payment targets from the in-app on-chain wallet. You can also pay a contact's on-chain "Bit" recipient directly.
|
||||
- **Unified payment-rail chips** on the profile header. Long-press any chip to copy that destination.
|
||||
- **On-chain payments.**
|
||||
- Pay Bitcoin payment targets from the in-app on-chain wallet.
|
||||
- Pay a contact's on-chain "Bit" recipient directly.
|
||||
- **Unified payment-rail chips** on the profile header.
|
||||
- Long-press any chip to copy that destination.
|
||||
- **Cashu improvements.**
|
||||
- A send progress bar that matches the Lightning experience.
|
||||
- A new mint top-up screen.
|
||||
@@ -32,9 +37,15 @@ Highlights:
|
||||
|
||||
### Posting & Privacy
|
||||
|
||||
- **Private posts and replies.** Composed and delivered as NIP-17 gift wraps. An editable "Notify" block lets you choose exactly who can read a private post.
|
||||
- **Private reactions.** React and un-react privately. Safeguards prevent private content from leaking publicly.
|
||||
- **Private zaps.** Zaps on private notes are forced private. Replies to a private zap route into the sender's DM room.
|
||||
- **Private posts and replies.**
|
||||
- Composed and delivered as NIP-17 gift wraps.
|
||||
- An editable "Notify" block lets you choose exactly who can read a private post.
|
||||
- **Private reactions.**
|
||||
- React and un-react privately.
|
||||
- Safeguards prevent private content from leaking publicly.
|
||||
- **Private zaps.**
|
||||
- Zaps on private notes are forced private.
|
||||
- Replies to a private zap route into the sender's DM room.
|
||||
- **NIP-32 hashtag labels.** Add first-class hashtag labels to posts.
|
||||
- Follow-hashtag labels publish through your outbox relays.
|
||||
- They surface in the hashtag feed.
|
||||
@@ -45,19 +56,26 @@ Highlights:
|
||||
|
||||
### Chat & DMs
|
||||
|
||||
- **Pin DM conversations** to the top of your chat list. Pins sync across devices via a NIP-78 app-data event.
|
||||
- **Pin DM conversations** to the top of your chat list.
|
||||
- Pins sync across devices via a NIP-78 app-data event.
|
||||
- **@-mention search in Marmot (MLS) group chats.** Search and tag users in the group composer.
|
||||
- Conversation participants rank first.
|
||||
- They are marked with an "In this chat" chip.
|
||||
- **Quoted chat messages** now render inside chat bubbles with the proper chat-reply design. The redundant reply row is skipped when the message is already quoted inline.
|
||||
- **Quoted chat messages** now render inside chat bubbles with the proper chat-reply design.
|
||||
- The redundant reply row is skipped when the message is already quoted inline.
|
||||
- **MLS reliability.**
|
||||
- Unread state now persists across app restarts.
|
||||
- The kind:445 backlog is no longer refetched on every launch.
|
||||
|
||||
### Reading & Feeds
|
||||
|
||||
- **Render LaTeX math** in notes. Use `$...$` for inline and `$$...$$` for block equations.
|
||||
- **Activity cards.** Reactions, zaps, likes, and nutzaps render as gradient cards that embed the post they're about. A single tap on a like/zap chip opens that event's thread.
|
||||
- **Render LaTeX math** in notes.
|
||||
- Use `$...$` for inline equations.
|
||||
- Use `$$...$$` for block equations.
|
||||
- **Activity cards.**
|
||||
- Reactions, zaps, likes, and nutzaps render as gradient cards.
|
||||
- Each card embeds the post it's about.
|
||||
- A single tap on a like/zap chip opens that event's thread.
|
||||
- **Workouts feed.** A dedicated feed for NIP-101e workout records (kind 1301).
|
||||
- **App recommendations.** Editable NIP-89 recommendations on your profile.
|
||||
- Screenshots show in app feed cards.
|
||||
@@ -66,18 +84,24 @@ Highlights:
|
||||
- **New community renderers.**
|
||||
- Birdex species collections (kind 12473).
|
||||
- Agora fundraiser campaigns (kind 33863).
|
||||
- **Cleaner feeds.** Reactions and zaps anchor their own thread view. Reposts whose boosted kind isn't supported are now hidden instead of showing blank cards.
|
||||
- **Media.** Swipe for brightness and volume in fullscreen video. Tap a podcast to open a show screen listing all its episodes.
|
||||
- **Cleaner feeds.**
|
||||
- Reactions and zaps anchor their own thread view.
|
||||
- Reposts whose boosted kind isn't supported are hidden instead of showing blank cards.
|
||||
- **Media.**
|
||||
- Swipe for brightness and volume in fullscreen video.
|
||||
- Tap a podcast to open a show screen listing all its episodes.
|
||||
|
||||
### Settings
|
||||
|
||||
- **Searchable settings.** A search box filters rows by title and curated keywords. Supports prefix matching and an empty-state.
|
||||
- **Searchable settings.**
|
||||
- A search box filters rows by title and curated keywords.
|
||||
- Supports prefix matching and an empty-state.
|
||||
|
||||
## Performance
|
||||
|
||||
- Pinned-DM state reads are deferred to the row and menu. The chat list stays smooth.
|
||||
- Pinned-DM state reads are deferred to the row and menu, keeping the chat list smooth.
|
||||
- Parsed CLINK offers are cached for NIP-05 lookups, using case-insensitive keys.
|
||||
- The "fix missing spaces" rich-text pass indexes URLs by their first character. This avoids repeated scans.
|
||||
- The "fix missing spaces" pass indexes URLs by their first character to avoid repeated scans.
|
||||
|
||||
## Improvements and Bug fixes
|
||||
|
||||
@@ -85,7 +109,9 @@ Highlights:
|
||||
- Replies to likes/zaps now reach the "Curated" feed.
|
||||
- The legacy "Global" filter migrates once to "Curated".
|
||||
- A reply to a like/zap no longer drags in the original post's whole thread.
|
||||
- **Note search.** Searches no longer match on `p`, `e`, `a`, `alt`, or `client` tags. Results are cleaner.
|
||||
- **Note search.**
|
||||
- No longer matches on `p`, `e`, `a`, `alt`, or `client` tags.
|
||||
- Results are cleaner.
|
||||
- **Anonymous posting.**
|
||||
- Profile zaps that should be anonymous are no longer encrypted as private zaps.
|
||||
- Media uploads in anonymous posts use an ephemeral signer.
|
||||
@@ -93,15 +119,24 @@ Highlights:
|
||||
- The Cashu wallet row now shows the Cashu logo instead of a generic icon.
|
||||
- Own on-chain zaps highlight the bolt and show as pending in the counter.
|
||||
- Tidied the wallet screen layout.
|
||||
- **Zap settings.** Preset amounts are de-duplicated so drag-to-reorder keeps working. The chip-drag interaction was fixed.
|
||||
- **Cashu top-up** is now crash-safe on retry. Funds are checkpointed the instant they leave the wallet and never re-moved.
|
||||
- **Zap settings.**
|
||||
- Preset amounts are de-duplicated, so drag-to-reorder keeps working.
|
||||
- Fixed the chip-drag interaction.
|
||||
- **Cashu top-up** is now crash-safe on retry.
|
||||
- Funds are checkpointed the instant they leave the wallet.
|
||||
- They are never re-moved on a retry.
|
||||
- **Tor.**
|
||||
- Relay backoff is honored during Tor bootstrap.
|
||||
- A new "money operations" relay category keeps payment traffic on the right transport.
|
||||
- **Metadata.** A non-spec birthday value can no longer drop an entire profile.
|
||||
- **Deletions (NIP-09).** Deleting a note now severs child back-references. It also detaches on-chain-zap, nutzap, and channel sources from the cache.
|
||||
- **Hardening.** Many audit fixes across the private-posts, CLINK, and MLS paths. Covers off-main-thread crypto, leak prevention, and hiding share/bookmark on private notes.
|
||||
- Reduced runtime log noise and fixed several edge-case crashes.
|
||||
- **Deletions (NIP-09).**
|
||||
- Deleting a note now severs child back-references.
|
||||
- It detaches on-chain-zap, nutzap, and channel sources from the cache.
|
||||
- **Hardening.**
|
||||
- Many audit fixes across the private-posts, CLINK, and MLS paths.
|
||||
- Covers off-main-thread crypto, leak prevention, and hiding share/bookmark on private notes.
|
||||
- Reduced runtime log noise.
|
||||
- Fixed several edge-case crashes.
|
||||
|
||||
## Desktop
|
||||
|
||||
@@ -113,7 +148,8 @@ Highlights:
|
||||
- A fail-loud dialog if compression fails.
|
||||
- **New media player.** Replaced vlcj with kdroidFilter's ComposeMediaPlayer (JCodec/FFmpeg backend).
|
||||
- **Group DM parity with Android.** Desktop now handles group direct messages the same way.
|
||||
- **Replies tab** on the user profile. Feeds also show reply context (parent embed plus label) inline.
|
||||
- **Replies tab** on the user profile.
|
||||
- Feeds also show reply context (parent embed plus label) inline.
|
||||
- **Feed refresh.**
|
||||
- Inline card expansion.
|
||||
- A "New posts" chip that slides in from the top.
|
||||
@@ -133,7 +169,8 @@ Highlights:
|
||||
- `amy debit` — CLINK debit info, pay, and budget.
|
||||
- `amy zap --with <ndebit>` — settle a zap invoice via a CLINK debit.
|
||||
- `amy offer discover <nip05>` — resolve a profile's offer through NIP-05.
|
||||
- Closed CLINK parity gaps (profile offer, follow, offer pay, GFY detail). Added a clink-headless interop harness.
|
||||
- Closed CLINK parity gaps (profile offer, follow, offer pay, GFY detail).
|
||||
- Added a clink-headless interop harness.
|
||||
|
||||
## Quartz
|
||||
|
||||
@@ -143,18 +180,33 @@ Highlights:
|
||||
- Suspendable auth hooks.
|
||||
- Split engine/backend/policy packages.
|
||||
- **NIP-45 approximate COUNT** via HyperLogLog construction, with wire support.
|
||||
- **NIP-11.** Added the missing `banner` field. Relay limits are now a single source of truth served over NIP-11.
|
||||
- **Connection observability.** Stable per-connection ids and a per-connection `RequestContext` threaded into the event source. Auth identity moved from policy into connection scope.
|
||||
- **NIP-11.**
|
||||
- Added the missing `banner` field.
|
||||
- Relay limits are now a single source of truth served over NIP-11.
|
||||
- **Connection observability.**
|
||||
- Stable per-connection ids.
|
||||
- A per-connection `RequestContext` threaded into the event source.
|
||||
- Auth identity moved from policy into connection scope.
|
||||
- **NIP-46.** Fixed a bunker double-resume and retry id-reuse race.
|
||||
- Fixed `q` (quote) tags being dropped by an inverted guard. Registered `CommunityRulesEvent` and CLINK DTO serializers (including Kotlin/Native targets).
|
||||
- Fixed `q` (quote) tags being dropped by an inverted guard.
|
||||
- Registered `CommunityRulesEvent` and CLINK DTO serializers (including Kotlin/Native targets).
|
||||
|
||||
## Build & Documentation
|
||||
|
||||
- **Dependency updates.** Bumped Kotlin, Compose Multiplatform 1.11.1, Coil 5, OkHttp 5, Jackson, AndroidX, Firebase, and more. The Blossom interceptor test was adapted to OkHttp 5's `Interceptor.Chain`.
|
||||
- **iOS CI.** `commons` `commonTest` now compiles and runs on iOS targets. CI runs the shared `commonTest` on iOS for `:commons`.
|
||||
- **Dependency updates.**
|
||||
- Bumped Kotlin, Compose Multiplatform 1.11.1, Coil 5, OkHttp 5, Jackson, AndroidX, Firebase, and more.
|
||||
- The Blossom interceptor test was adapted to OkHttp 5's `Interceptor.Chain`.
|
||||
- **iOS CI.**
|
||||
- `commons` `commonTest` now compiles and runs on iOS targets.
|
||||
- CI runs the shared `commonTest` on iOS for `:commons`.
|
||||
- Split the monolithic CHANGELOG into per-version files under `docs/changelog/`.
|
||||
- A large SonarQube cleanup pass (S1871) merged duplicate `when`/`if` arms. Also migrated `Log` calls to the lambda overload.
|
||||
- Documented an Amethyst→commons migration plan and target package hierarchy. Refreshed several Claude skills and the Namecoin design doc. Added a rule requiring a license check when adding any new dependency.
|
||||
- **SonarQube cleanup (S1871).**
|
||||
- Merged duplicate `when`/`if` arms across the codebase.
|
||||
- Migrated `Log` calls to the lambda overload.
|
||||
- **Documentation.**
|
||||
- Documented an Amethyst→commons migration plan and target package hierarchy.
|
||||
- Refreshed several Claude skills and the Namecoin design doc.
|
||||
- Added a rule requiring a license check when adding any new dependency.
|
||||
- `versionName` branch detection now sets the git cwd, so it works inside git worktrees.
|
||||
|
||||
## Contributors
|
||||
|
||||
Reference in New Issue
Block a user