Insert a dedicated merge-divider node instead of a plain horizontal rule so
theme hairlines no longer wash out merge boundaries, with Markdown round-trip
markers and stronger multi-client styling.
Open navigable hyperlinks on a plain click while editing (Evernote-style).
Add a desktop-only personal preference to require Ctrl/⌘+click instead,
stored in localStorage. Mobile always opens on tap; tips only appear when
the modifier mode is enabled. Attachment chips stay on the resource menu.
Editable notes intentionally require Ctrl/⌘+click so a plain click can
place the caret. Note links already surfaced this; extend the same tip to
all navigable editor links (except attachment chips) on hover/click.
The source-mode textarea used min-h-[300px] with h-full, but parents only
had min-height so percentage height collapsed to 300px and left a large
white margin. Fill the pane with a flex height chain and absolute-position
the textarea so long notes scroll inside a full-height source view.
External links were indistinguishable from body text under the default
theme because Tailwind preflight resets anchors. Add brand-green
underline styles for ProseMirror (Web, mobile web, Android, iOS) while
leaving note/attachment chips unchanged. Closes the styling half of #193;
Notion-style link cards remain deferred per #192.
Give the rich-text and Markdown editors a dedicated hyperlink entry
separate from note linking, with Ctrl/Cmd+K, URL normalization, and
remove-link support. Closes the discoverability gap in #192; link
preview cards remain out of scope.
Related Issue: #192
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.
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.
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.
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.
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.
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.
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().