Commit Graph

9239 Commits

Author SHA1 Message Date
Vitor Pamplona 5b0f7b5a02 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  update cz, pt, de, sv
  remove unused imports
  remove unused imports
  remove unused imports
2026-03-02 11:25:18 -05:00
Vitor Pamplona e6000cd3e9 Fixes spacing for replying to text 2026-03-02 11:20:09 -05:00
Vitor Pamplona 379dfedf05 Fixes link colors 2026-03-02 11:19:59 -05:00
Crowdin Bot 35090fcdfb New Crowdin translations by GitHub Action 2026-03-02 16:16:16 +00:00
Vitor Pamplona f18b87db5d Merge pull request #1736 from davotoula/update-translations
update cz, pt, de, sv
2026-03-02 11:12:23 -05:00
Vitor Pamplona c9b8cb677b Merge pull request #1735 from davotoula/remove-unused-imports
Remove unused imports
2026-03-02 11:12:09 -05:00
davotoula 0d513dd63e update cz, pt, de, sv 2026-03-02 16:02:40 +00:00
davotoula 59309c2b1d remove unused imports 2026-03-02 15:53:21 +00:00
davotoula 51ba076f26 remove unused imports 2026-03-02 15:52:03 +00:00
davotoula 8846dd7edb remove unused imports 2026-03-02 15:47:30 +00:00
Vitor Pamplona 89579aa35e Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  feat: add RelayFeedScreen for browsing and following relay-specific feeds
2026-03-02 09:31:39 -05:00
Vitor Pamplona 6b1e6ef267 Fixing the "replying to" line appearing in every reply in the threadview 2026-03-02 09:29:11 -05:00
Vitor Pamplona 2c2102f6e6 refactoring 2026-03-02 08:47:28 -05:00
Vitor Pamplona 0072dd3481 Merge pull request #1733 from vitorpamplona/claude/add-relay-filter-screen-aXgh6
Add relay feed screen with filtering and follow/unfollow functionality
2026-03-02 08:34:08 -05:00
M f6447d2020 feat: wire Namecoin search into SearchBarViewModel
Resolve .bit, d/, and id/ identifiers from the search bar via
ElectrumX blockchain lookups. Typing any Namecoin identifier format
(m@testls.bit, testls.bit, d/testls, id/alice) now queries the
Namecoin blockchain and shows the resolved user at the top of results.

The namecoinResolvedUser flow in SearchBarViewModel detects Namecoin
identifiers, resolves them through NamecoinNameService, and prepends
the result to the standard local cache search results.

Updated docs with search integration details and manual testing guide.
2026-03-02 19:43:24 +11:00
M d82ace2f63 feat: Namecoin NIP-05 identity verification via ElectrumX
Add censorship-resistant NIP-05 verification using the Namecoin blockchain.
Users can set their nip05 field to a .bit domain (e.g. alice@example.bit)
or direct Namecoin name (d/example, id/alice) and Amethyst will resolve
the pubkey mapping via ElectrumX instead of HTTP.

Resolution uses the standard Electrum protocol (scripthash-based lookups):
- Build canonical name index script matching ElectrumX-NMC indexing
- Query blockchain.scripthash.get_history for the name's tx history
- Parse NAME_UPDATE script from the latest transaction output
- Extract Nostr pubkey from the name's JSON value

Supports both d/ (domain) and id/ (identity) Namecoin namespaces,
simple and extended NIP-05-like value formats with relay hints,
LRU caching with 1h TTL, and self-signed TLS certificates.

New files:
- quartz: ElectrumxClient, NamecoinNameResolver, NamecoinLookupCache
- amethyst: NamecoinNameService, Nip05NamecoinAdapter, NamecoinVerificationDisplay
- docs: namecoin-nip05-design.md
- tests: NamecoinNameResolverTest

Modified:
- Nip05Client: optional namecoinResolver routes .bit to blockchain
- AppModules: wire up resolver

See docs/namecoin-nip05-design.md for full architecture and protocol details.
2026-03-02 13:07:46 +11:00
Claude 3a9622fb1e feat: add RelayFeedScreen for browsing and following relay-specific feeds
- Add RelayFeedScreen similar to HashtagScreen but filtered by relay URL
- Follow/Unfollow buttons add/remove the relay from Favorite Relay list
- New post FAB opens the standard note composer (Route.NewShortNote)
- Add RelayFeedFilter (DAL) to show notes seen from a specific relay
- Add SingleRelayFeedViewModel backed by RelayFeedFilter
- Add datasource layer: RelayFeedFilterAssembler, SubAssembler, and
  FilterPostsByRelay for subscribing to relay-specific note streams
- Add Route.RelayFeed(url) and register in AppNavigation
- Add relayFeed to RelaySubscriptionsCoordinator
- Add FavoriteRelayListState.addRelay/removeRelay for single-relay ops
- Add Account.followFavoriteRelay/unfollowFavoriteRelay
- Add AccountViewModel.followFavoriteRelay/unfollowFavoriteRelay
- Add observeUserIsFollowingRelay composable observer

https://claude.ai/code/session_013gNQjBzeSSmesYow7HfAjW
2026-03-02 01:09:52 +00:00
Vitor Pamplona 050ef73530 adds support for NIP-51 favorite relay lists. 2026-03-01 19:50:07 -05:00
Vitor Pamplona 7fd163d6d4 - Adds reactions and zap settings to the settings screen
- Creates a better distinction between settings for the user and for the whole app.
2026-03-01 19:25:13 -05:00
Vitor Pamplona 69e061e4c4 Fixes Stability of the Update Reaction view model 2026-03-01 19:15:36 -05:00
Vitor Pamplona 7889e3a624 Minimizes subs by merging PayTo with the Metadata sub 2026-03-01 18:59:46 -05:00
Vitor Pamplona 4b82ec4022 Removes unecessary subId names 2026-03-01 17:02:12 -05:00
Vitor Pamplona 0cba056932 formatting 2026-03-01 16:50:17 -05:00
Vitor Pamplona bb5e09fe8f Fixes duplicated strings 2026-03-01 16:50:09 -05:00
Vitor Pamplona 7f3d01ce0e Merge pull request #1731 from vitorpamplona/claude/move-strings-to-xml-qav0M
Externalize hardcoded strings to string resources
2026-03-01 16:42:27 -05:00
Claude ba1d61d8d9 feat: move hardcoded UI strings to strings.xml
Replaces hardcoded string literals in composables with string resource
references for proper i18n support. Adds 20 new strings to strings.xml.

Files updated:
- NewUserMetadataScreen: "Social proof" section title
- NoteCompose: "Approve" community post button
- Badge: " and N others" badge awardees text
- Chess: "Decline"/"Accept" challenge buttons
- InteractiveStory: "Restart" story button
- Poll: "Submit" poll button
- ChessGameScreen: "Back", "Relay Settings", "Loading game...",
  "Game Not Found", "This game may have ended...", "Game ID: ...",
  "Go Back"
- ChessLobbyScreen: "Back", "Relay Settings", "New Game",
  "Dismiss", "Connected"
- chess/NewChessGameButton: "New Chess Game" content description
- home/NewChessGameButton: "New Chess Game" content description
- UserSettingsScreen: "Remove <language>" content description

https://claude.ai/code/session_0151CDmy5k2pEWnxhRxet41h
2026-03-01 20:44:43 +00:00
Vitor Pamplona 16088be597 Correct zap colors 2026-03-01 14:40:47 -05:00
Vitor Pamplona 1a2940fba2 Fixes bug that was not recording these EOSEs 2026-03-01 14:40:25 -05:00
Vitor Pamplona 918108118a Adding more event kind names to the relay settings 2026-03-01 14:26:08 -05:00
Vitor Pamplona f8a0f17384 Making filter stable 2026-03-01 14:22:54 -05:00
Vitor Pamplona fbdc8791cd Fixes missing empty paragraphs 2026-03-01 12:59:29 -05:00
Vitor Pamplona cd18fdf79a Merge pull request #1728 from vitorpamplona/claude/add-relay-subscriptions-display-WHbsT
Add active subscriptions and outbox display to relay info screen
2026-03-01 12:48:25 -05:00
Vitor Pamplona 566bdb8a74 Merge pull request #1729 from vitorpamplona/claude/relay-search-suggestions-T1gpP
Add relay URL suggestions to relay input field
2026-03-01 12:47:04 -05:00
Vitor Pamplona 7212e9a879 Adds Relay Url to the Rich Text viewer 2026-03-01 12:45:47 -05:00
Vitor Pamplona ca6af92411 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  feat: add RelayUrlSegment for ws:// and wss:// relay URIs
  fix: treat multibyte characters as URL terminators in RichTextParser
  Simplify profile edit screen layout
  feat: show "Replying to" label in quoted notes
  fix: suppress parent thread in quoted notes
2026-03-01 11:48:46 -05:00
Vitor Pamplona 2ddcf41201 Merge pull request #1730 from vitorpamplona/claude/add-relay-uri-detection-vOdNR
Add RelayUrlSegment for WebSocket relay URL parsing
2026-03-01 11:48:09 -05:00
Claude b472be3a1a feat: add relay search suggestions to all Add a Relay fields
When the user types in any "Add a Relay" field in AllRelayListScreen,
the app now searches HintIndexer's relayDB for matching relay URLs
and displays them as clickable suggestions below the text field.

Clicking a suggestion fills the field with the relay URL, matching
the design pattern of ShowUserSuggestionList in ShortNotePostScreen.

New files:
- RelaySuggestionState: debounced Flow-based state filtering relayDB
- ShowRelaySuggestionList: Column of clickable RelayUrlLine rows

https://claude.ai/code/session_0115sYZGVQBZLX7s9oCDcKoi
2026-03-01 16:39:14 +00:00
Claude 304c348736 feat: add RelayUrlSegment for ws:// and wss:// relay URIs
Adds a new RelayUrlSegment type to RichTextParser that detects and
labels relay URIs (ws:// and wss:// schemes) as a distinct segment
type, separate from generic LinkSegments.

https://claude.ai/code/session_01U21sGdEEMLo4hY8dwxNzPr
2026-03-01 16:33:58 +00:00
Claude ce56f49369 feat: add active relay subscriptions and outbox display to RelayInformationScreen
Adds a new section before Errors and Notices that shows live relay state:
- REQ subscriptions: each subscription card shows its ID and a visual
  breakdown of all active filters using colored chips by kind category
  (notes/social/DM/economic), author counts, tag values, and time bounds
- COUNT subscriptions: same display for count queries
- Pending outbox events: chip list of event IDs awaiting delivery

Filter chips use Material3 color roles to indicate kind categories:
primaryContainer for text events (note/repost/reaction), secondaryContainer
for social/list events, tertiaryContainer for DMs/gift wraps, and
errorContainer for economic events (zap requests/receipts/NWC).

https://claude.ai/code/session_012zzv2j63ibraPNrQx8fGeu
2026-03-01 16:32:41 +00:00
Vitor Pamplona f5a7461fed Adds an emoji name to the preview to see if we can replicate the alignment when loading the username dynamically 2026-03-01 11:02:14 -05:00
Vitor Pamplona 678a97d01b Merge pull request #1727 from kojira/fix/multibyte-url-terminators
fix: treat multibyte characters as URL terminators in RichTextParser
2026-03-01 11:00:21 -05:00
kojira fd28d354e7 fix: treat multibyte characters as URL terminators in RichTextParser 2026-03-01 23:54:12 +09:00
Vitor Pamplona e7a9241833 Merge pull request #1724 from dmnyc/feat/quote-repost-reply-to-label
feat: show "Replying to" label in quoted notes
2026-02-28 20:39:37 -05:00
Vitor Pamplona e7c5727f75 Merge pull request #1725 from dmnyc/feat/profile-edit-cleanup
Simplify profile edit screen layout
2026-02-28 20:37:39 -05:00
The Daniel 2b36858c12 Simplify profile edit screen layout
Reduce visual clutter by reordering fields, improving labels, and
collapsing rarely-used social proof fields into an expandable section.

- Rename "Name" field to "Username" with @ prefix
- Reorder: Lightning Address, Nostr Address (NIP-05), Website, Pronouns
- Remove deprecated LN URL (lud06) field
- Move social proof fields (Twitter, GitHub, Mastodon) into a
  collapsible "Social proof" section (auto-expands if data exists)
- Clearer labels: "Lightning Address", "Nostr Address (NIP-05)"
2026-02-28 20:10:17 -05:00
The Daniel eb3b7077fd feat: show "Replying to" label in quoted notes
Follow-up to #1723. When a quoted note is itself a reply, display a
compact "Replying to [username]" label above the content instead of
showing nothing. Uses the event's p-tags to resolve reply targets
directly, matching the Damus-style display.
2026-02-28 18:53:32 -05:00
Vitor Pamplona 5fc7bab885 Merge pull request #1723 from dmnyc/fix/quote-repost-without-parent-display
fix: Suppress parent thread in quoted notes
2026-02-28 17:52:56 -05:00
The Daniel ace1401a27 fix: suppress parent thread in quoted notes
Adds unPackReply = false to both DisplayFullNote (nostr: bech links)
and DisplayNoteFromTag (tag references) so that quoted notes only
show the quoted post itself without its parent thread context.
2026-02-28 17:44:04 -05:00
Vitor Pamplona 3b0d7c7f09 Reverses claude new rendering scheme because we need to break into new paragraphs before coming to the rendering stage. 2026-02-28 16:34:53 -05:00
Vitor Pamplona 80921b8367 Merge branch 'main' of https://github.com/vitorpamplona/amethyst
* 'main' of https://github.com/vitorpamplona/amethyst:
  refactor: replace FlowRow-based RenderTextParagraph with single Text() composable
2026-02-28 15:41:59 -05:00