Commit Graph
923 Commits
Author SHA1 Message Date
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 fc4a94be44 fix(ai): keep Agent tool schemas compatible with OpenAI-style calling
OpenAI-compatible providers reject oneOf, anyOf, and const in tool JSON
Schema. Agent forwarded MCP schemas unchanged, so those models failed
before the first token. Flatten the diagram and template schemas, reject
incompatible keywords when the catalog loads, and map provider HTTP
errors to specific copy.
2026-09-16 21:24:19 +08:00
tianma-if 8112d86bb0 fix(editor): quiet the empty-paragraph placeholder
Keep the hint at body size, but shorten the copy, drop the leading
Latin "Space", and use a lighter color so it no longer reads as a
larger type size.
2026-09-16 20:54:05 +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 4f753587f6 fix(editor): close in-note search when switching notes
Plugin jumps leave the find bar open with the task line. Reusing the
editor then showed that leftover query on new or other notes.
2026-09-16 17:32:37 +08:00
tianma-if 3890dfc00b fix(ai): fold Agent thinking and tools into one collapsible card
Keep the user-facing answer in front. Collapse process details after
the run finishes so the two former cards no longer compete for space.
2026-09-16 17:07:53 +08:00
tianma-if d21adb72d0 fix(editor): keep extra blank lines in Markdown mode
Preserve visual empty paragraphs across parse, autosave hydration, and
mode switches so JSON round-trips no longer collapse extra newlines.
2026-09-16 16:58:33 +08:00
tianma-if 36f11471d3 feat(ai): give Agent a timeline, pinned context, and resumable runs
Show tool receipts in chat, pin notes with @, wire saved memory, and
let interrupted Agent turns continue. Split tool-side narration from
the user-facing answer.
2026-09-16 16:58:27 +08:00
tianma-if aa1e38b6f5 feat(ai): let Agent use the open note, edit diagrams, and manage templates
Pass the current note body into Agent focus so diagrams follow the open note. Enable in-place diagram edits plus note templates and AI instructions, including deletes, without confirmation cards.
2026-09-16 12:43:31 +08:00
tianma-if 7d25d45620 fix(ai): open Agent note links even when memo_ is dropped
Restore the memo_ prefix on #memo= hashes, parse resolved URLs, and hold the selected note so the list does not snap back to the current editor.
2026-09-16 11:36:56 +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 69b9b982dc fix(ai): search recent notes by date and shrink Agent headings
Agent recency questions now use createdAfter/updatedAfter, keep timestamps on search results, and accept YYYY-MM-DD bounds. Chat headings are compacted so notebook groups no longer dominate the dialog.
2026-09-16 10:42:43 +08:00
tianma-if dd3237d794 fix(ai): auto-apply note writes and follow the latest Agent reply
Create, update, and trash notes without a confirmation card. Keep the transcript pinned to the newest reply while it streams, and show a spinner instead of the generating status line.
2026-09-16 00:40:08 +08:00
tianma-if 5b523eb84a fix(ai): keep Agent lookups from locking onto the open note
Treat the current note as editor context, not a search filter. Named notebooks resolve through find_notebooks, follow-ups keep sourced history, and the chat chrome no longer shows model names, empty waiting copy, or a second stop button.
2026-09-16 00:26:11 +08:00
tianma-if 556779ab87 fix(ai): drop the empty companion prompt and tighten the composer
Keep a compact resume row when a previous thread exists, and put the
hint in accessible text instead of above the input.
2026-09-15 23:43:49 +08:00
tianma-if 929c89a31d fix(plugins): shorten marketplace copy so the header stays aligned
Drop the extra download and mobile sentences, and keep the remaining
description below the title row instead of beside the header actions.
2026-09-15 23:43:28 +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
tianma-if 047d505cc5 refactor(web): extract Markdown editor mode into a hook
Move source-mode toggle, snapshots, and scroll restore out of EditorPane. Save, export, and hydration still read the current markdown source from the hook.
2026-09-15 18:06:05 +08:00
tianma-if 526bb940e0 refactor(web): keep note search state in its controller
EditorPane no longer owns search open/query/replace state. Selection shortcuts and plugin jumps go through the same hook.
2026-09-15 17:51:33 +08:00
tianma-if 271837ed13 refactor(web): extract editor document actions
Move share, export, WeChat copy, and template save out of EditorPane so list shortcuts and the editor menu share one document-action path.
2026-09-15 17:25:52 +08:00
tianma-if 89421dc693 fix(web): drop preview badges from Windows and Linux downloads
Label those clients by package format and keep unsigned or best-effort caveats in tooltips.
2026-09-15 17:21:23 +08:00
tianma-if 493fbbd7d4 refactor(web): extract editor save conflict handling
Move save-failure classification, save chrome, and conflict actions out of EditorPane so queueing, conflict banners, and adopt/copy stay one code path.
2026-09-15 16:43:56 +08:00
tianma-if 99e9c2820c refactor: share editor schema and drop RN iOS builds
Editors now take document TipTap nodes from a shared factory. Workspace and editor helpers move out of the large panes. Store iOS no longer builds from Expo EAS.
2026-09-15 12:56:44 +08:00
tianma-if b05cebec8c fix(desktop): capture the current screen into a note with the image
One click from the tray now hides EdgeEver, grabs the full screen, and
creates a note whose body already contains the screenshot. IPC restores
PNG bytes that Electron serializes as Buffer JSON, and a failed upload
deletes the empty placeholder instead of leaving a blank note.
2026-09-15 10:39:43 +08:00
tianma-if cf086468e7 test: pin catalog tombstone timestamps against wall clock
installManifest stamps catalogUpdatedAt with now, so a remote tombstone
hardcoded to 2026-09-14 12:00 UTC started losing the uninstall path.
2026-09-15 00:13:02 +08:00
tianma-if aca0f17113 feat(desktop): capture a screenshot from the tray into a new note
Replace the old E menu-bar mark with the cat brand template, and swap the unused sync/backup tray actions for an interactive screenshot that saves into a note.
2026-09-14 23:52:48 +08:00
tianma-if edba3bb740 fix(web): tighten notebook list gaps to 4px
Use the same 4px spacing between template, all notes, and the notebook
section that the notebook tree already uses.
2026-09-14 23:52:28 +08:00
tianma-if 9c43afa282 fix(web): compact notebook sidebar spacing around sync and create
Lower the desktop sync status bar and trim extra vertical gaps between
create, template, all notes, and the notebook list without shrinking controls.
2026-09-14 23:42:29 +08:00
tianma-if 5c0c186446 fix(web): keep desktop note gutters even when a scrollbar is present
Reserve matching left and right scrollbar lanes so the outline no longer sits under the scroller.
2026-09-14 23:25:39 +08:00
tianma-if adb4fcd4b1 fix(web): give desktop notes Evernote-like reading gutters
Keep the title aligned with the body at 28px/40px, while the compact toolbar stays tighter.
2026-09-14 23:17:47 +08:00
tianma-if 0f8b97a192 fix(web): drop install-time PWA app-shell precache
Keep the web manifest and runtime caches so the app stays installable. Stop precaching JS/CSS/HTML at install time so adding locales or editor code cannot block desktop releases.
2026-09-14 19:26:33 +08:00
tianma-if f06f9d3a6c fix(web): keep the Japanese catalog out of the PWA app shell
Load Japanese on demand and exclude that chunk from install-time precache and HTML modulepreload so adding a third locale stays inside the 5 MiB PWA budget.
2026-09-14 18:32:50 +08:00
tianma-if b346400f6a test: align coverage with Japanese locale and create-note layout
Update source and locale tests that still treated Japanese as unmatched English and pinned the previous fixed-width New note control.
2026-09-14 18:19:31 +08:00
tianma-if ea9900b7e2 feat(i18n): add Japanese as a first-class in-app locale
Ship a full shared Japanese catalog for Web, desktop, and Android, resolve ja-JP to ja instead of English, and give iOS a three-language path with Japanese login, settings, and list chrome. Unmatched languages still fall back to English.
2026-09-14 12:49:11 +08:00
tianma-if 05cbd7887c fix(web): keep the English New note label from truncating
Give the primary create action its natural width, shorten the English
secondary label, and hide that label when the sidebar is too narrow.
2026-09-14 12:07:22 +08:00
tianma-if 760e82ab50 fix(i18n): fall unmatched locales back to English
Unknown browser and system languages now resolve to English instead of
Simplified Chinese, and Japanese App Store / Play listing copy is kept
in store-assets for console publishing.
2026-09-14 10:56:53 +08:00
tianma-if 0e5be33a44 feat(plugins): sync the install list across Web and desktop
Keep plugin and theme membership on the workspace so browsers and desktop apps can re-download verified packages. Settings, secrets, and native mobile runtimes stay out of this catalog.

Related Issue: #396
2026-09-14 10:41:56 +08:00
tianma-if 7ef79f5017 fix(web): balance desktop editor gutters and fill leftover width
Keep left-aligned notes flush with the chrome, dock the outline to the
right, and let the reading column grow into the gap between them.
2026-09-13 23:30:41 +08:00
tianma-if cf082734d6 fix(ai): default the whole-note assistant to a custom instruction
Restore the last processing method only when text is selected so Space and other whole-note opens start on custom.
2026-09-13 23:24:06 +08:00
tianma-if 4b4b5df8c1 fix(i18n): give editor themes original four-character names
Keep Chinese labels at four characters without a shared suffix, and stop reusing competitor theme names.
2026-09-13 23:00:41 +08:00
tianma-if 727430a747 fix(web): keep table geometry stable across editor themes
Stop preset and paper themes from overriding cell padding, line-height, and borders so switching themes no longer reflows tables.
2026-09-13 22:33:42 +08:00
tianma-if 82efbe4a3c fix(web): keep phone preview in sync when switching editor themes
Rebuild the preview from the current theme immediately, reapply article styles after markup updates, and stop reading a stale data-editor-theme from the DOM.
2026-09-13 19:12:35 +08:00
tianma-if dfdcfa11e4 feat(web): give paper themes independent palettes and tidy theme UX
Each paper layout now carries its own colors, ornaments, and reading rhythm instead of mixing with native green. Drop Classic Blue & White, unify preset names, move theme switching fully into the editor toolbar, and keep settings for custom palettes only.
2026-09-13 18:56:14 +08:00
tianma-if 7ab391c094 fix(web): share WeChat article HTML with phone preview
Build copy and preview from one publish pipeline, match images by source, and rasterize Mermaid to white JPEG so WeChat paste no longer fails.
2026-09-13 16:31:15 +08:00
tianma-if f6d8129f60 fix(web): restyle the phone preview frame and move its toggle
Use a thin dark bezel with a white island bar, and put the preview control in the note header instead of the format toolbar.
2026-09-13 15:22:03 +08:00