Commit Graph
405 Commits
Author SHA1 Message Date
tianma-if c3de2cd102 feat: add AI-driven infographic notes 2026-09-24 21:19:23 +08:00
tianma-if b49c5c52b2 test(release): isolate GitHub plugin mocks from live instance 2026-09-24 18:20:34 +08:00
tianma-if 628245d2c7 feat(import): enhance WeChat chat note formatting and image layout 2026-09-24 17:42:56 +08:00
tianma-if be5b1eaeba fix(editor): preserve empty links and paste resources in Markdown mode 2026-09-24 13:09:38 +08:00
tianma-if 2276ab69c5 fix(desktop): cancel unsynced attachment imports cleanly 2026-09-24 09:09:07 +08:00
tianma-if 5fbfc43be9 fix(desktop): keep attachment imports together across sync 2026-09-24 09:02:46 +08:00
tianma-if c2e3a7aab3 refactor(web): optimize font preference hierarchy, preview, and layout 2026-09-24 00:07:22 +08:00
tianma-if de77005f1c fix(web): queue plugin schedule updates for the same task
Saving a digest switch and its time both register the same desktop schedule. Overlapping requests were dropped, so the task stayed off and the plugin showed a restart notice.
2026-09-23 23:37:07 +08:00
tianma-if 0f3aec1679 feat(web): open, copy, and download table image attachments
Clicking an image thumbnail opens the file. Copy and download appear on hover, and copy places the image on the clipboard.
2026-09-23 23:35:32 +08:00
tianma-if e7eab6e187 feat(web): add Zhuque Fangsong and LXGW Neo ZhiSong
Note text and the interface can use a fangsong and a screen song. Both built-in faces can be published with a shared note.
2026-09-23 22:06:45 +08:00
tianma-if 94666a8fd4 feat(web): add a device-local font for the interface
Note text keeps its own face. Sidebar, outline, toolbar, and settings can use the same built-in or installed fonts without changing the published note font.
2026-09-23 21:49:52 +08:00
tianma-if 1c7ae270d3 fix: make staged desktop resource links durable 2026-09-23 18:52:31 +08:00
tianma-if ad9fa6666a fix: retain staged images while editor drafts reference them 2026-09-23 18:45:23 +08:00
tianma-if 672016cc3c fix: recover compressed WeChat image resource references 2026-09-23 18:38:29 +08:00
tianma-if 5fdf7f5935 fix(desktop): default imported WeChat images to small 2026-09-23 18:12:33 +08:00
tianma-if f29d4e65d9 fix(web): make the share-image copy button write the image (#429)
Desktop copies go through the main-process clipboard, and a failed copy now tells the user to download instead of doing nothing.
2026-09-23 16:32:13 +08:00
tianma-if f1949e795f feat(sharing): show the author's built-in font on public shares
Store the selected built-in note font on the account and apply it to the shared note body. System and custom font names keep the default face, so a share downloads a font only after one is chosen.
2026-09-23 00:09:28 +08:00
tianma-if c2a26b23ac feat(web): add a beta structured table note
Store typed records in the note body and edit them as a grid on web and desktop. Phones and iOS stay read-only so the record model is not overwritten.
2026-09-23 00:00:44 +08:00
tianma-if 95e5ef0805 feat(web): add built-in fonts for note text
Readers can choose WenKai, Source Han, a Latin serif, or an installed font name. The choice stays on this device and only affects note text.
2026-09-22 23:37:01 +08:00
tianma-if bf3b41099a feat(desktop): import WeChat chat forwards as notes
A macOS share extension receives WeChat's merged-forward ZIP and saves the transcript, images, and videos as one note.
2026-09-22 23:18:09 +08:00
tianma-if 968ac71aa6 fix: delete empty child notebooks with their parent
A parent notebook stayed after repeated deletes when it only contained empty children. Remove that empty subtree together, and keep the tree when any note is still inside.
2026-09-22 20:52:50 +08:00
tianma-if 2c506111c1 fix: source official plugin metadata from releases 2026-09-22 10:39:57 +08:00
tianma-if 998ce01650 feat: localize plugin marketplace metadata 2026-09-22 10:27:32 +08:00
tianma-if c6ecc49164 fix: format copied system information 2026-09-22 10:25:05 +08:00
tianma-if ab44cb18fc fix: persist notebook tree expansion state
Refs #345
2026-09-22 10:04:57 +08:00
tianma-if 6266586300 fix(web): make empty trash idempotent
Treat empty memo selections as no-ops so a repeated trash cleanup cannot delete the entire local mirror. Add regression coverage for repeated cleanup and empty batch mutations.\n\nFixes #420
2026-09-21 11:44:54 +08:00
tianma-if 9ddb3466bc fix(settings): drop window size from screen resolution 2026-09-20 23:42:07 +08:00
tianma-if 10e34dbc6f fix(settings): show Mac product name and physical screen resolution 2026-09-20 22:46:06 +08:00
tianma-if 629b7137a8 feat(settings): include device model in system information 2026-09-20 20:05:37 +08:00
tianma-if e0a2f38447 feat(web): add GitHub-style details fold blocks (#418) 2026-09-20 19:35:04 +08:00
tianma-if 2d5f17c9ec feat(settings): include current screen resolution in system info 2026-09-20 19:32:26 +08:00
tianma-if 668b9512d1 fix(web): keep markdown source selection from lighting up other copies 2026-09-20 12:10:07 +08:00
tianma-if 6b28d9b5ee refactor(settings): remove data directory from system info panel
Remove the desktop local data directory field from the system info panel,
avoiding exposing local usernames and account hashes in screenshots or
copies, and cleaning up unused diagnostic references.
2026-09-20 00:28:43 +08:00
tianma-if 1ae14f0e69 fix(desktop): recover same-device lost-ack memo updates 2026-09-19 19:03:57 +08:00
tianma-if f2b7137848 fix(desktop): keep screenshot notes from losing their uploaded image 2026-09-19 18:48:35 +08:00
tianma-if 2d3f37d180 fix(web): drop previous note images and bodies when switching
Release decoded editor media before replacing the TipTap document, and evict
idle memo-detail queries so visiting image-heavy notes does not keep their
bitmaps and JSON in the renderer.
2026-09-18 16:40:42 +08:00
tianma-if 92cfe6939b fix(desktop): recycle the renderer after long background sessions
Reload the hidden Chromium renderer once it has been in the background long
enough or its working set is high, after flushing the open draft. Restore the
last notebook and memo from session storage so reopening the window does not
land on a blank first note.
2026-09-18 16:28:35 +08:00
tianma-if dcf2c138cb feat(web): support rich-text headings through level 6 (#413) 2026-09-18 16:20:32 +08:00
tianma-if efb5648c63 fix(web): window the memo list so only visible cards mount
Use TanStack Virtual for the loaded memo pages. Keep infinite-scroll data
as-is, but stop rendering every card into the DOM while scrolling.
2026-09-18 16:11:52 +08:00
tianma-if 5ee1e5745e fix(web): ignore leftover desktop instance URL in the browser 2026-09-17 23:47:42 +08:00
tianma-if de7e006e57 fix(desktop): accept instance hosts without an https prefix 2026-09-17 21:32:59 +08:00
tianma-if dcfd11468d feat(sharing): add optional password protection for public note shares
Allow owners to turn on an auto-generated access password when sharing a note. Visitors must unlock the share page before reading the note or its attachments; existing public links stay open until a password is enabled.
2026-09-17 14:44:43 +08:00
tianma-if e69462d8d9 feat(settings): make the system info dialog draggable
Move the dialog from the title bar, keep the body scrollable, and clamp
it so the title stays on screen. Closing it restores the centered position.
2026-09-16 21:49:07 +08:00
tianma-if ba7b015028 feat(settings): add instance URL and data directory to system info
Show the connected instance URL on desktop and mobile, and the local
data directory on desktop. Keep both out of GitHub feedback. Relabel
health-check latency and distinguish an empty sync queue from never
having synced.
2026-09-16 20:43:36 +08:00
tianma-if df7931e2f6 fix(desktop): keep one new note from appearing twice
Cmd+N and a second click could both create before isPending flipped.
Sync also left the local id in the list beside the durable id, and
autofocus stopped before the editor was editable.
2026-09-16 18:18:59 +08:00
tianma-if bf88ab2c21 fix(desktop): stop duplicate screenshot imports from one capture
Give each capture a stable id, ignore repeats in main and the renderer, and keep the import listener from rebinding on every workspace update.
2026-09-16 10:42:51 +08:00
tianma-if ba22e2cb74 fix(desktop): keep one tray screenshot from creating two notes
Full-screen capture finishes before Electron can deliver a duplicate tray
click, so keep the capture locked through a short cooldown and drop a
second import of the same screenshot.
2026-09-15 23:02:12 +08:00
tianma-if 5780e009db feat(ai): retire Paw mode in favor of the assistant Agent
Remove the standalone companion page, discovery hub, and settings tab. Keep the companion runtime, MCP tools, and confirmation cards for Agent mode in the AI assistant.
2026-09-15 22:59:15 +08:00
tianma-if a54f297ec6 feat(ai): add Agent mode to the in-app assistant
Reuse companion MCP tools inside the existing AI assistant. Instruction mode stays a single-turn rewrite; Agent mode searches and organizes notes, renders replies as Markdown with clickable note links, and confirms writes. Closing the panel starts a fresh thread, with an opt-in resume of the last chat.
2026-09-15 22:25:57 +08:00
tianma-if d601c78162 test: pin mobile editor schema after shared document extensions
Keep the standalone mobile editor off desktop syntax highlighting after
the shared TipTap factory replaced the inline StarterKit configure call.
2026-09-15 19:06:57 +08:00