Commit Graph
478 Commits
Author SHA1 Message Date
tianma-if 72b4791557 fix(sync): resolve memo conflicts with adopt-cloud and copy-draft actions
Give Web, desktop, and mobile the same product-baseline conflict recovery:
copy the local draft, then adopt the cloud version and rehydrate, instead of
telling users to reload while durable local conflict state remains.
2026-08-05 21:44:45 +08:00
tianma-if 4d95d834f3 feat(web): explain note save conflicts with concrete reasons
Surface revision, content, edit-session, and offline-stale conflict details in the editor, keep error metadata through the sync queue, and avoid hook-order crashes plus stale dev service workers after failed HMR.
2026-08-05 17:19:55 +08:00
tianma-if 6bebb5c1d6 feat(web): expose note delete as a direct list action
Make deleting notes one click on desktop list cards instead of buried under the more menu, while keeping the existing menu path for keyboard and right-click.
2026-08-05 16:53:03 +08:00
tianma-if 7a7f89339f fix(web): harden Mermaid preference reads against test window stubs
getStoredMermaidRenderer assumed localStorage always exists whenever window
was defined, so full bun test runs could fail after other suites stubbed a
partial window. Safe-read the storage key and clean up shared window mocks
so Verify update stays green for forked deployments.
2026-08-05 14:41:01 +08:00
tianma-if b20d43e642 fix(web): prevent stale remote detail from clobbering editor state
Stop getMemo background refresh from overwriting newer local autosaves or
queued updates, and skip redundant setContent when reopening a note so the
caret no longer jumps to the end after detail refetches.
2026-08-05 13:54:08 +08:00
tianma-if b94903fb52 feat: add instance-level S3-compatible object storage
Let instance owners route new uploads to an external OSS while keeping
existing attachments on their original store. Secrets are encrypted with
EDGE_EVER_STORAGE_ENCRYPTION_KEY before being stored in D1.
2026-08-05 12:27:10 +08:00
tianma-if 6f865125a9 fix: refine image resource controls 2026-08-04 19:55:12 +08:00
小秘书 e707bebc07 fix: allow scrolling on public share pages
Global app CSS sets html/body/#root { overflow: hidden } for the
three-pane workspace layout. Public share pages (/share/:token) inherit
this and cannot scroll when content exceeds the viewport. Restore
document scrolling when .edgeever-public-share is present via :has().
2026-08-04 14:24:05 +08:00
tianma-if 8ffd4062fa Unify editor text spacing across themes 2026-08-04 12:30:40 +08:00
tianma-if 2e3678121b feat: add shared resource actions for note media 2026-08-04 11:59:16 +08:00
tianma-if f3f61922e7 Add mobile attachment actions 2026-08-04 01:07:04 +08:00
tianma-if a31a8e263e Add attachment hover actions 2026-08-04 00:39:36 +08:00
tianma-if d8e04e3330 Improve note action menu access 2026-08-03 23:54:24 +08:00
tianma-if 5708fb472b restore compact Mermaid presentation 2026-08-03 19:33:25 +08:00
tianma-if e5169b27e1 fix Mermaid preview scroll chaining 2026-08-03 19:13:16 +08:00
tianma-if ba742a5d1d feat: add browser choices for web clipper 2026-08-03 18:37:49 +08:00
tianma-if c391a4ff97 feat: add desktop client download entry 2026-08-03 18:23:32 +08:00
tianma-if f167779a66 feat(ui): show active note sharing status (#24) 2026-08-03 18:07:46 +08:00
tianma-if 35614697a6 fix(ui): keep new note action visible (#162) 2026-08-03 17:39:41 +08:00
tianma-if 8050acad57 feat: add note link shortcut hint 2026-08-03 14:31:02 +08:00
tianma-if 008c0c6424 fix: use verified desktop clipboard writes 2026-08-03 12:49:24 +08:00
tianma-if 2ec3d50ba7 feat(web): add Modern Mint editor theme 2026-08-03 00:17:14 +08:00
tianma-if d66a7a1179 feat(web): add WeChat Classic Green editor theme 2026-08-03 00:05:50 +08:00
tianma-if 270d9ffd69 fix: clarify share link copy feedback 2026-08-02 22:40:06 +08:00
tianma-if 3a6b3e2a67 fix: render WeChat images without referrer 2026-08-02 21:36:02 +08:00
tianma-if 4d2ae5e27c feat: add revocable note sharing 2026-08-02 21:11:16 +08:00
tianma-if a8a8a37565 fix: tone down pending sync status 2026-08-02 19:15:23 +08:00
tianma-if bc8236ea00 refactor: share memo content styling 2026-08-02 13:42:03 +08:00
tianma-if 0c4cfb3e81 fix: preserve rich content when merging notes 2026-08-02 10:42:35 +08:00
tianma-if ab3c9eee3e fix: include nested notes in desktop notebooks 2026-08-02 01:33:52 +08:00
tianma-if 2b971a5395 fix merged note title selection 2026-08-02 01:12:04 +08:00
tianma-if aa01d2aa84 refactor: adopt Motion for workspace animations 2026-08-02 00:21:16 +08:00
tianma-if ce7339f688 feat: refine desktop motion feedback 2026-08-01 23:26:29 +08:00
tianma-if 4099584cfb fix desktop sync on memo selection 2026-08-01 22:37:02 +08:00
tianma-if 2253653a47 refactor: modularize cross-platform workspace architecture 2026-08-01 20:47:37 +08:00
tianma-if 7418d0b6a1 fix(desktop): preserve trash navigation and image sync 2026-08-01 20:00:34 +08:00
nzhdotmeandClaude Opus 5 4cc88ca9b3 fix(web): guard window access in the shared API request path
`request()` read `window.edgeeverDesktop` without a `typeof window`
guard, unlike every other `window` access in this file. Any environment
without a `window` global throws `ReferenceError: window is not defined`
before the request is sent.

This makes `bun test` fail on a clean checkout: three cases in
`tests/web-sync-queue.test.ts` fail because `syncQueuedChanges()` never
reaches `fetch` and records the queue item as `error` with
`lastError: "window is not defined"`.

Also give the `globalThis.window` stubs in `api.test.mjs` and
`desktop-resources.test.mjs` a `location`. Bun runs every test file in
one process, so these top-level stubs leak into later files; without a
`location`, `isLoopbackOrigin()` in `network-status.ts` throws
`TypeError: undefined is not an object (evaluating
'window.location.hostname')`. Whether this surfaces depends on test file
discovery order, so it reproduces on Linux but not on macOS.

Before: 296 pass, 3 fail. After: 299 pass, 0 fail.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-01 19:03:50 +08:00
tianma-if 05dbd1d4f9 fix: surface system info in mobile profiles 2026-08-01 11:24:30 +08:00
tianma-if f302f9d584 fix: aggregate nested notebook note counts 2026-08-01 10:46:41 +08:00
tianma-if 9e32d317da fix(web): make multi-image uploads resilient 2026-08-01 10:14:10 +08:00
tianma-if 1bc3d0790e fix(sync): refresh external memo changes 2026-08-01 09:59:17 +08:00
tianma-if b04f15f7fd fix(desktop): preserve login across upgrades 2026-07-31 21:14:19 +08:00
tianma-if 79ff20f7c4 feat: add Firefox extension support 2026-07-30 23:58:21 +08:00
tianma-if 08d1aacb97 fix: create mobile PWA memos before editing 2026-07-30 20:42:02 +08:00
DDVandchenshen.zhang 44f8906193 feat(web): improve Mermaid rendering controls and diagram viewer (#123)
* feat: improve Mermaid diagram controls

* fix: restore Mermaid viewer panning

* fix(web): fall back for unsupported Mermaid diagrams

* fix(web): use Mermaid palette for viewer background

---------

Co-authored-by: chenshen.zhang <2676274256@qq.com>
2026-07-30 20:33:17 +08:00
tianma-if 1b2f85bb22 feat: upgrade editor custom theme system with multi-theme, dark mode support, CSS sandbox and WeChat copy inlining 2026-07-30 15:12:48 +08:00
tianma-if cca9ce5992 fix(web): require modifier click to open editor links 2026-07-30 11:09:57 +08:00
tianma-if 063ad8c7ad feat: show client type in system info 2026-07-30 10:29:11 +08:00
tianma-if 8e36fedcbf fix: hide desktop local backup entry 2026-07-30 10:10:29 +08:00
tianma-if f6f22c0817 fix: hide WebDAV backup entry 2026-07-30 10:02:53 +08:00