Commit graph

1046 commits

Author SHA1 Message Date
codytseng
cc1aa7f989 feat: add markdown rendering support for Content component
Detect markdown-formatted posts (from bots etc.) and render them
with react-markdown instead of plain text, with feed-friendly
styles (flattened headings, compact lists, scrollable tables).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 10:49:18 +08:00
codytseng
fc8a160d9a fix: prevent bunker reconnection from blocking app startup
When reconnecting a bunker signer (e.g. Amber) after page reload, skip
the getPublicKey() call since the pubkey is already known from storage.
This prevents the app from hanging indefinitely when the remote signer
is unreachable. Also add a 10s timeout to getPublicKey() for safety.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 23:36:42 +08:00
codytseng
da751fd73c fix: resolve duplicate notifications in notification center
Use compareEvents (which considers both created_at and id) instead of
simple created_at comparison for sorting events in timeline subscription
and load-more logic. This ensures consistent ordering with mergeTimelines
and handleNewEvent deduplication, preventing duplicates when events share
the same timestamp. Also add Set-based dedup in notification list memo
as an additional safety net.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 22:34:39 +08:00
The Daniel 🖖
d361ac60ab
fix: preserve line breaks in longform article summaries (#756)
Co-authored-by: The Daniel <dmnyc@users.noreply.github.com>
2026-02-23 12:44:00 +08:00
codytseng
481603d0e8 feat: add video loop playback setting
Add a toggle in General Settings to enable/disable video loop playback,
following the same pattern as the existing autoplay setting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 13:55:53 +08:00
Cody Tseng
ae8a534103
fix: show 'Encrypted direct messages not supported' for kind 4 events (#754)
* fix: show 'Encrypted direct messages not supported' for kind 4 events (#753)

Co-authored-by: The Daniel <dmnyc@users.noreply.github.com>

* i18n: add translations for 'Encrypted direct messages not supported'

Also use kinds.EncryptedDirectMessage constant instead of magic number 4.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: The Daniel 🖖 <3638467+dmnyc@users.noreply.github.com>
Co-authored-by: The Daniel <dmnyc@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 13:43:19 +08:00
codytseng
2fbbe6ce1d fix: allow multiple YouTube embeds to render in a single note
Two issues prevented multiple YouTube URLs from rendering:

1. YOUTUBE_URL_REGEX and X_URL_REGEX had the global flag, causing
   stateful lastIndex to skip matches on alternating calls.

2. Each YouTube Player overwrote window.onYouTubeIframeAPIReady,
   so only the last mounted player received the callback. Replace
   with a shared callback queue via ensureYTApi().

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 22:30:10 +08:00
codytseng
2b97adfdca feat: support navigating to primary pages via URL query parameter
Allow users to open a specific primary page by visiting /?page=explore,
/?page=settings, etc.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 22:11:26 +08:00
codytseng
71dc0bb4fc fix: prevent horizontal overflow of relay tags
Add flex-wrap to the relay tags container so tags wrap to the next line
instead of overflowing horizontally.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 22:02:01 +08:00
codytseng
244dda807b feat: add copy note content option and migrate AGENTS.md to CLAUDE.md
Add a "Copy note content" option to the note options menu that copies the
event's content field to clipboard. Merge AGENTS.md into CLAUDE.md with
enhanced i18n rules emphasizing append-only locale key ordering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 21:56:32 +08:00
ClarkQAQ
3196c43644
feat: support audio file uploads via clipboard in post editor (#743) 2026-02-04 10:50:46 +08:00
codytseng
942c9a7d12 💨 2026-01-31 17:56:30 +08:00
Cody Tseng
ed8a22d5bc
feat: community mode (#738)
Co-authored-by: CXPLAY <62034099+cxplay@users.noreply.github.com>
2026-01-24 00:09:10 +08:00
The Daniel 🖖
686b1f9998
feat: use jumble.social share links for notes (#737)
Co-authored-by: The Daniel <dmnyc@users.noreply.github.com>
2026-01-23 22:05:06 +08:00
codytseng
e490407dd5 chore: format 2026-01-22 22:28:07 +08:00
codytseng
4bd4141b54 chore: remove something 2026-01-22 22:24:31 +08:00
codytseng
2dd4e866d2 chore: adjust padding for tab indicator and tab items 2026-01-20 23:17:06 +08:00
codytseng
8aca9efe68 chore: adjust sidebar toggle button position 2026-01-20 22:54:40 +08:00
codytseng
2cd1ae481b feat: support hiding indirect notifications 2026-01-20 22:47:42 +08:00
codytseng
331811f683 pref: reduce unnecessary profile queries 2026-01-19 22:16:21 +08:00
codytseng
ee90ae99c1 feat: render relay description content 2026-01-19 22:07:53 +08:00
codytseng
0d6f8789d0 feat: treat large-screen devices as non-touch 2026-01-19 21:55:48 +08:00
codytseng
71791c9513 fix: expose more detailed error messages 2026-01-17 11:50:24 +08:00
codytseng
d37aa61501 chore: 🏗️ 2026-01-15 23:15:09 +08:00
codytseng
b6cb701ff1 feat: replace user search service 2026-01-15 22:58:55 +08:00
codytseng
400da44543 feat: update trust score badge description 2026-01-14 23:31:40 +08:00
codytseng
ca9610b711 feat: support configurable trust score threshold per context 2026-01-14 23:20:28 +08:00
codytseng
28a1b3096a fix: 💨 2026-01-14 11:37:43 +08:00
codytseng
1766beade4 fix: disable trust filter on profile feed 2026-01-13 23:28:50 +08:00
Cody Tseng
7e8f1692ac
feat: zap details (#731)
Co-authored-by: The Daniel <dmnyc@users.noreply.github.com>
Co-authored-by: The Daniel ️ <dmnycnet@proton.me>
2026-01-13 22:54:50 +08:00
codytseng
603bd35b4a feat: muted words 2026-01-08 22:53:11 +08:00
codytseng
3c74c8c5db style: remove emoji border radius 2026-01-08 22:20:22 +08:00
codytseng
0b127713ae fix: merge name and display_name 2026-01-08 10:43:34 +08:00
codytseng
95023b181c fix: ensure trust score check excludes Zap notifications 2026-01-07 21:51:08 +08:00
codytseng
d7eac362f8 fix: handle URLs wrapped in parentheses 2026-01-07 14:56:00 +08:00
codytseng
e369e2b93f fix: update url regex 2026-01-07 09:19:37 +08:00
codytseng
ed843f637a feat: 💨 2026-01-06 00:00:51 +08:00
codytseng
695f2fe017 feat: smart relay pool 2026-01-05 18:20:32 +08:00
codytseng
d1b3a8c4c7 feat: auto-show new notes at top 2026-01-05 13:13:17 +08:00
codytseng
53a67d8233 feat: allow changing default relays 2026-01-04 23:40:43 +08:00
codytseng
36959a1052 fix: 🐛 2026-01-04 23:02:20 +08:00
codytseng
9f6045461c feat: remove suspicious account badge 2026-01-04 22:06:19 +08:00
codytseng
8743bdb6b5 fix: update Japanese translations for bookmarks 2026-01-04 20:48:41 +08:00
codytseng
917fcd9839 feat: live feed toggle 2026-01-04 20:42:20 +08:00
codytseng
89bb9ad2d0 feat: 💨 2026-01-02 02:53:29 +08:00
codytseng
167b6627f1 feat: 💨 2026-01-02 02:40:13 +08:00
codytseng
fd9f41c8f4 feat: add persistent cache for following feed and notifications 2026-01-02 00:39:10 +08:00
codytseng
7a9c777744 feat: 💨 2026-01-01 15:19:45 +08:00
codytseng
7837d67ecf refactor: update icon for shareable URL button 2026-01-01 15:05:08 +08:00
codytseng
162ae6b021 fix: 🎨 2025-12-31 23:22:45 +08:00