boojack
d688914b28
feat(auth): add SSO user identity linkage ( #5883 )
2026-04-23 08:51:45 +08:00
boojack
50638040f6
fix: reduce list memo query overhead ( #5880 )
2026-04-22 09:31:48 +08:00
boojack
b5863d76be
fix(web): preserve task checkbox state ( #5867 )
2026-04-20 23:27:00 +08:00
wndnjs0
d98f665919
fix: disable modal prop on DropdownMenu to prevent scroll disappearing ( #5861 )
2026-04-20 21:38:28 +08:00
boojack
88cb58ab64
refactor(web/routing): guard-based auth flow, migrate tests to Vitest ( #5848 )
2026-04-18 01:06:54 +08:00
Mattia Borda
5be530dbac
chore: update Italian translation for 'cancel' key ( #5841 )
...
Signed-off-by: Mattia Borda <mattiagiovanni.borda@icloud.com>
2026-04-15 21:01:57 +08:00
boojack
411d8335e7
chore: set native color scheme for dark themes ( #5840 )
2026-04-15 20:55:41 +08:00
boojack
a3a5b52d60
chore: tweak location picker
2026-04-15 20:07:36 +08:00
boojack
ab5332901f
fix: hide transcribe button without AI provider
2026-04-14 21:47:59 +08:00
boojack
35504cc8bd
feat(web): add demo mode banner ( #5836 )
2026-04-14 09:08:17 +08:00
boojack
101704c8ea
feat(ai): add BYOK audio transcription ( #5832 )
2026-04-13 22:09:24 +08:00
boojack
0ad0fec8d4
feat(ai): add Anthropic provider option
2026-04-12 21:42:17 +08:00
memoclaw
d87539a1e1
feat: add Gemini transcription provider ( #5830 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-04-12 21:12:03 +08:00
memoclaw
83ed32f119
feat(ai): add instance AI providers and transcription ( #5829 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-04-12 19:23:34 +08:00
boojack
efeb28c872
fix: remove duplicate Japanese locale keys
2026-04-12 10:34:20 +08:00
Takuro Onoue
0f7c7eb75e
i18n: refine and normalize Japanese locale strings ( #5826 )
...
Signed-off-by: Takuro Onoue <kusanaginoturugi@gmail.com>
2026-04-11 22:15:26 +08:00
boojack
2523d966f4
chore(web): improve navigation accessibility
2026-04-10 22:27:29 +08:00
boojack
8cdcd7b284
refactor(attachments): extract visual gallery layout and tile style tokens
2026-04-10 08:55:20 +08:00
boojack
9ca71229a6
fix: preserve draft content when tab is suspended or editor remounts
...
Gate auto-save on initialization to prevent empty content from overwriting
cached drafts on remount. Flush drafts synchronously on visibilitychange/
pagehide so Chromium tab suspension cannot drop pending debounced saves.
Restore cached draft over saved memo content when they differ (inline editing).
2026-04-10 08:48:50 +08:00
boojack
938c405b0f
refactor: move embedded content styles from global CSS to Tailwind
2026-04-08 23:34:49 +08:00
boojack
124708f164
chore: refactor attachment media layout and insert menu organization
2026-04-08 23:28:49 +08:00
boojack
7e21b728b3
fix: harden memo content iframe and HTML sanitization
2026-04-08 21:10:35 +08:00
boojack
2d682ae176
refactor(attachments): compact audio item layout and playback logic
...
Made-with: Cursor
2026-04-07 21:47:06 +08:00
boojack
5b78023fd5
Polish share-as-image UI and sidebar sharing actions
...
Made-with: Cursor
2026-04-07 21:07:40 +08:00
boojack
e51985a29f
feat(memo-editor): add compact live waveform recorder panel ( #5817 )
2026-04-07 20:40:34 +08:00
boojack
61c963841b
chore(web): polish dark theme and calendar UI
...
- simplify ActivityCalendar state handling and shared max-count utilities
- remove calendar ring styling and darken the default dark theme primary colors
- tighten the audio recorder panel layout and action sizing
2026-04-06 22:44:11 +08:00
memoclaw
24fc8ab8ca
feat(mentions): add memo mention parsing, notifications, and rendering ( #5811 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-04-06 22:16:53 +08:00
boojack
38fc22b754
feat(memo): add image sharing in detail view
...
Keep the unpublished image-sharing flow scoped to memo detail pages.
- add a dedicated share-image preview and export pipeline
- measure the rendered memo card so preview and exported image stay aligned
- move the entry point into the detail sidebar and drawer only
2026-04-06 18:30:01 +08:00
boojack
2cbc70762b
refactor(attachments): simplify the attachment library
...
- split attachment page states and primitives into focused components
- unify card and list item presentation across media, audio, documents, and unused uploads
- move attachment paging and cleanup flows onto shared query and view-model hooks
2026-04-06 17:39:58 +08:00
boojack
7ac9989d43
fix(map): align dark mode map styling
2026-04-06 17:38:56 +08:00
boojack
15d8ec10d5
chore: update locale translations for new i18n entries
2026-04-06 16:11:21 +08:00
boojack
067d7ff0ce
chore: refactor memo editor audio recording flow
2026-04-06 15:46:38 +08:00
boojack
aafcc21ae6
fix: improve image preview dialog and live photo trigger
2026-04-06 13:41:27 +08:00
boojack
6b0487dcd8
fix: unify live photo previews around LIVE badge playback
2026-04-06 11:56:58 +08:00
boojack
4b4e719470
feat(attachments): add Live Photo and Motion Photo support ( #5810 )
2026-04-06 10:47:01 +08:00
boojack
894b3eb045
fix(map): refine Leaflet controls and memo map styling
2026-04-06 08:45:54 +08:00
memoclaw
f403f8c03c
refactor: simplify memo metadata components
2026-04-02 22:30:21 +08:00
memoclaw
0e4d2d25ca
refactor: simplify audio attachment playback component
2026-04-02 21:56:01 +08:00
Serhat
9676e72533
i18n: complete Turkish (tr) translations to 100% coverage ( #5802 )
...
Signed-off-by: Serhat <49079271+onwp@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-04-01 19:25:18 +08:00
memoclaw
c0d5854f67
feat(editor): add voice note recording to the memo composer ( #5801 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-04-01 09:36:33 +08:00
memoclaw
a0d83e1a9e
fix(web): refine attachment media layout
2026-04-01 08:40:36 +08:00
memoclaw
63a17d897d
refactor: split audio attachment view into reusable components
2026-03-31 23:03:38 +08:00
memoclaw
1921b57662
fix(tags): allow blur-only tag metadata ( #5800 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-31 21:38:55 +08:00
memoclaw
e520b637fd
fix: prevent stale comment drafts from being restored
2026-03-30 22:37:07 +08:00
memoclaw
c53677fcba
fix(api): improve SSE hub design and fix double-broadcast on comments
...
- Fix duplicate SSE event on comment creation: CreateMemoComment now
suppresses the redundant memo.created broadcast from the inner
CreateMemo call, emitting only memo.comment.created
- Extract reaction event-building IIFEs into buildMemoReactionSSEEvent
helper, removing duplicated inline DB-fetch logic
- Promote resolveSSEAudienceCreatorID from method to free function
(resolveSSECreatorID) since it never used the receiver
- Add userID to SSE connect/disconnect log lines for traceability
- Change canReceive default from permissive (return true) to
deny-with-warning for unknown visibility types
- Add comprehensive tests covering all new helpers, visibility edge
cases, slow-client drop behavior, and the double-broadcast fix
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 07:33:40 +08:00
memoclaw
acddef1f3d
fix(api): switch user resource names to usernames ( #5779 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-25 09:11:17 +08:00
memoclaw
4f6730a12e
chore: show compact attachment count instead of thumbnails in comment previews
...
When truncate mode is active (comment list), display an inline file icon
with attachment count instead of rendering full image thumbnails.
2026-03-24 19:30:39 +08:00
memoclaw
6a03917f6e
chore: upgrade TypeScript to 6.0.2
2026-03-24 08:45:56 +08:00
memoclaw
bb7f4978e5
refactor(web): consolidate SharedMemo into MemoDetail ( #5773 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-24 08:40:49 +08:00
memoclaw
6b30579903
feat: add outline navigation to memo detail sidebar ( #5771 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-24 00:20:40 +08:00
memoclaw
2aaca27bd5
refactor(web): improve MemoDetail and sidebar maintainability ( #5769 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-23 22:51:24 +08:00
memoclaw
e176b28c80
feat(memo-preview): support comment metadata in previews ( #5768 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-23 21:51:30 +08:00
memoclaw
22519b57a0
fix(web): prevent MemoContent prop leaks
2026-03-23 20:34:14 +08:00
memoclaw
45b21530d9
feat: add blur_content attribute to tag metadata settings ( #5767 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-23 19:42:27 +08:00
memoclaw
9e04049632
feat: treat tag setting keys as anchored regex patterns ( #5759 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-22 08:07:45 +08:00
memoclaw
9ded59a1aa
refactor(web): improve Settings page maintainability and consistency ( #5757 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 15:05:48 +08:00
memoclaw
d5de325ff4
refactor(web): simplify main layout sidebar structure ( #5756 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-21 12:54:18 +08:00
memoclaw
4177898054
refactor(web): consolidate memo metadata components into MemoMetadata ( #5755 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 09:04:15 +08:00
memoclaw
ac077ac3d3
refactor(web): improve MemoView and MemoEditor maintainability ( #5754 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-21 07:20:18 +08:00
memoclaw
7b4f3a9fa5
refactor(memo): simplify MemoDetail error handling, drop memo.failed-to-load i18n key
...
The failed-to-load key was only used for non-ConnectError exceptions, which
are unreachable in practice since the Connect RPC client always wraps errors
as ConnectError. Use (error as Error).message as a plain fallback instead.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-20 20:19:44 +08:00
memoclaw
5f6f624635
i18n: add missing auth.protected-memo-notice and memo.failed-to-load fallbacks to all locales
...
30 locale files were missing the two keys added in the auth redirect PR.
Added English fallback strings so all locales render properly until
community translations are contributed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-20 19:41:12 +08:00
xun zhao
7601708ae4
Redirect unauthenticated protected memo access to sign in ( #5738 )
2026-03-20 19:40:19 +08:00
fiatcode
551ee1d81f
fix(auth): recover session via refresh cookie when localStorage is empty ( #5748 )
2026-03-20 19:21:11 +08:00
memoclaw
be00abe852
fix: sync html lang attribute with active locale ( #5753 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-20 19:17:30 +08:00
google-labs-jules[bot]
23a7e99a21
chore: optimize unreact network requests ( #5747 )
...
Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Co-authored-by: boojack <stevenlgtm@gmail.com>
2026-03-20 18:08:28 +08:00
memoclaw
a7cabb7ce6
refactor(web): remove masonry memo layout ( #5746 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-20 09:01:43 +08:00
memoclaw
05810e7882
fix(memo-editor): scope Cmd+Enter save to the active editor ( #5745 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-20 08:43:01 +08:00
memoclaw
e0334cf0a8
refactor: restructure i18n locale keys for better maintainability ( #5744 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-20 05:56:56 +08:00
memoclaw
6f1f3d81c5
chore: remove disallow_public_visibility setting ( #5743 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-20 00:00:51 +08:00
memoclaw
3f3133d6e2
feat(memo): add share links for private memos ( #5742 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-19 23:47:22 +08:00
memoclaw
a249d06e2e
feat(instance): add notification transport setting ( #5737 )
...
Co-authored-by: memoclaw <265580040+memoclaw@users.noreply.github.com>
2026-03-19 09:18:28 +08:00
boojack
65d14fbb63
feat(instance): add canonical tag metadata setting ( #5736 )
2026-03-19 08:54:43 +08:00
boojack
330291d4d9
feat(user): add per-user tag metadata settings ( #5735 )
2026-03-18 23:15:14 +08:00
boojack
04f239a2fc
fix(api): remove public activity service ( #5734 )
2026-03-18 22:42:57 +08:00
Nix
89c6902895
feat(i18n): update sse connect label in Chinese ( #5732 )
2026-03-18 18:53:09 +08:00
memoclaw
6f5f0d94e8
chore(web): update frontend dependencies and Node runtime ( #5729 )
2026-03-16 20:37:16 +08:00
memoclaw
1e688b2a5d
feat: extract title from first H1 heading into memo property ( #5726 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 11:05:03 +08:00
memoclaw
8f43e8075b
fix: correct typos in comments, error messages, and identifiers ( #5704 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 18:40:17 +08:00
memoclaw
bdd3554b89
fix: handle chunk load errors after redeployment with auto-reload ( #5703 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 10:45:16 +08:00
memoclaw
2ccb98a6cb
fix: render audio attachments as inline players ( #5699 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:57:48 +08:00
memoclaw
4503679155
enhance: improve link memo dialog with rich previews ( #5697 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 17:54:13 +08:00
memoclaw
e70149af5f
enhance: polish PWA manifest and meta tags ( #5695 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 14:02:13 +08:00
memoclaw
3d4f793f97
fix: include plain URLs and tags in memo snippet generation ( #5688 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 22:03:45 +08:00
memoclaw
92d937b1aa
feat: replace auto-increment ID with UID for identity provider resource names ( #5687 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 21:01:22 +08:00
Peter Etelej
3010f10eaf
fix: access token refresh on web app ( #5681 )
2026-03-05 19:29:21 +08:00
longhe.li
0729779e04
fix: toggle focus mode do not reset editor height ( #5504 )
...
Signed-off-by: longhe.li <lilonghe@outlook.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-03-04 22:13:58 +08:00
thefatcode
2c3f9e3bfb
fix: clear content search filter when selecting shortcut ( #5499 )
2026-03-04 22:12:41 +08:00
Steven
ce441644af
fix: ensure comment divs span full width in MemoDetail
2026-03-04 19:13:58 +08:00
Steven
0cf8805184
refactor(sse): move status indicator to avatar badge
...
Replace the standalone SSE dot above UserMenu with a small badge
overlaid on the bottom-right of the user avatar. Only visible when
status is connecting (yellow) or disconnected (red) — invisible in the
normal connected state, removing constant visual noise.
2026-03-03 23:25:01 +08:00
milvasic
ea0892a8b2
feat: add live refresh via Server-Sent Events (SSE) with visual indicator ( #5638 )
...
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: milvasic <milvasic@users.noreply.github.com>
2026-03-03 22:56:12 +08:00
Steven
a69e405c95
refactor: remove dead code and deduplicate comment amount logic
2026-03-03 22:30:25 +08:00
Steven
3a5d3c8ff9
feat: show inline comment preview in list view
...
Add a comment preview section below memo cards in list view, displaying
up to 3 comment snippets with a "View all" link. Removes the old comment
count icon from the memo header in favor of this richer inline display.
Comment preview is hidden in memo detail view.
2026-03-03 21:40:56 +08:00
Steven
3e4c052f44
chore: unify table style
2026-03-03 21:07:28 +08:00
Steven
4321887a02
chore: fix linter
2026-03-03 08:50:57 +08:00
Lincoln Nogueira
d0764fb0be
i18n: update all locale translations ( #5679 )
2026-03-03 08:49:08 +08:00
Steven
98859eb5e5
fix(routing): redirect unauthenticated users to /explore when public visibility is allowed
2026-03-03 08:48:54 +08:00
Steven
737acbba2f
fix(markdown): support height/width attributes on img elements
2026-03-02 22:45:36 +08:00
Steven
dfab67f035
chore(seed): polish demo data with realistic multi-user content
2026-03-02 21:50:47 +08:00
Steven
6b37fcc01b
fix: improve KaTeX and Mermaid error handling and overflow
2026-03-02 21:11:07 +08:00
Steven
7f753bf6d7
refactor(theme): consolidate theme system and polish dark mode colors
...
- Reduce themes from 6 to 4: system, light, dark, paper
- Remove midnight (too similar to dark) and whitewall (too similar to light)
- Drop all unused tokens: chart-*, sidebar-primary, sidebar-border,
sidebar-ring, shadow-2xs, tracking-normal, spacing
- Remove redundant @theme inline blocks from dynamic theme files
(Tailwind only processes them at compile time, not at runtime)
- Move shared tokens (fonts, radius) to default.css only
- Polish dark mode color palette
- Consistent cool-slate hue (h265) across all surfaces
- Proper surface layering: sidebar(0.07) → bg(0.09) → card(0.13) →
popover(0.17) → secondary(0.19) → muted(0.21) → accent(0.22)
- Foreground softened to 0.82 (from 0.9) — comfortable off-white
- Accent more chromatic than muted (0.012 vs 0.008) — hover feels interactive
- Popover elevated above card (0.17 vs 0.13) — floating elements visible
- Destructive more vivid (0.62/c0.20) — clearly red on dark surfaces
- Input border (0.25) more distinct than layout border (0.21)
- Sidebar foreground (0.68) dimmer than content foreground (0.82)
- Fix inline code background invisible in dark mode (#5674 )
- Muted was same lightness as card — increased to 0.21 for clear contrast
2026-03-02 09:30:57 +08:00