Add a new post screen specialized for writing and publishing long-form
content events (kind 30023) with markdown support. Includes:
- MarkdownPostViewModel with title, summary, cover image, and markdown
body fields, draft support, and LongTextNoteEvent creation
- MarkdownPostScreen with Edit/Preview tabs, monospace editor, markdown
preview using existing RenderContentAsMarkdown, and media upload that
inserts markdown image syntax
- Navigation route (Route.NewMarkdownPost) and AppNavigation entry
- String resources for the new screen
https://claude.ai/code/session_012pBNvnWtVtQ6aKSheWJUDt
After swiping a draft to delete, the red confirmation background now
shows both a "Delete" button (left) and a "Cancel" button (right).
Tapping Cancel resets the swipe state, allowing users to dismiss
the delete action without deleting the draft.
https://claude.ai/code/session_01ULVR1fKwka5TgfgSucPE4r
* 'main' of https://github.com/vitorpamplona/amethyst:
feat: replace dialog with swipe-to-reveal delete button for drafts
feat: add confirmation dialog when swiping to delete a draft
Instead of showing a confirmation dialog, the swipe now stays open
revealing a red background with a clickable "Request Deletion" button.
Supports swiping from both left-to-right and right-to-left directions.
The user taps the revealed button to confirm deletion.
https://claude.ai/code/session_01JWJxejv2EKrPj2KGEfPPxU
* 'main' of https://github.com/vitorpamplona/amethyst:
feat: add ZIP/JSON relay export and format picker dropdown
refactor: extract relay export logic into RelayExporter class
feat: add export button to relay settings screen
- Create RelayListCollection to bundle all relay lists with section metadata
- Create RelayZipExporter that exports each relay category as a separate
JSON file (array of relay URL strings) inside a zip archive, shared
via FileProvider
- Refactor RelayExporter to use RelayListCollection
- Replace single export button with a dropdown menu letting users pick
between text export and ZIP (JSON) export
https://claude.ai/code/session_013PhuahpBFh6djVHzSsmNKM
- Add optional r/p/e/a/emoji tags to StatusEvent.create() for full spec compliance
- Add GENERAL and MUSIC type constants to StatusEvent
- Filter expired statuses in UserStatusCache.addStatus() and add removeExpired()
- Add p tag (profile reference) display in DisplayStatusInner
- Add NIP-30 custom emoji rendering in status display via CreateTextWithEmoji
- Allow status type parameter in UserStatusAction.create()
https://claude.ai/code/session_0117asp4mDiR65dxbAGKi2hg
The swipe-to-delete gesture on the drafts screen was too sensitive,
causing accidental deletions. Added a confirmation dialog that appears
after the swipe gesture completes, requiring the user to confirm before
the draft is actually deleted.
https://claude.ai/code/session_01JWJxejv2EKrPj2KGEfPPxU
Adds a share icon button in the top bar of the relay settings screen
that exports all relay configurations (except Connected Relays) as
human-readable text via Android's share intent. Each section includes
a header and description, with one relay URL per line.
https://claude.ai/code/session_013PhuahpBFh6djVHzSsmNKM
- Translate To: shows all available languages with searchable list instead
of only device locales
- Don't Translate From: uses InputChip FlowRow with an Add button and
searchable language picker to add new languages
- Language Preferences: displays as OutlinedCards with radio buttons for
choosing display language, includes delete and add-new-pair functionality
with guided source/target selection
- Added new string resources for the refreshed UI
https://claude.ai/code/session_011iTJ1gg8weaxaALiUQNH4C