Blank create focuses the native title field immediately so typing works
while DomWebView cold-starts, reclaiming title focus after the editor
attaches. Template/share drafts and edit mode refocus the body and show
the soft keyboard again (full-tree single WebView). setContent no longer
steals focus on draft restore.
Add note-from-template on iOS with the same entry points as Android, harden
Android create/edit so DomWebView keeps focus, and silence stale injectJavaScript
rejections after editor unmount. Related to #187.
Add template picker entry points for mobile note creation (create header,
empty list, long-press +) using built-in presets and saved cloud templates.
Related to #187.
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.
Align iOS TipTap images with Android (width presets, ⋯ actions, WebP
compress, reliable preview). Persist contentJson so image width survives
detail/viewer; force shared WebView re-push and block late autosave so
new notes open empty. Long-press fullscreen image preview opens resource
actions on both iOS and Android.
Make create Back commit like Android so notes appear in the list and the
next New note opens empty. Harden memo-card press feedback, allow
programmatic WKWebView keyboard focus, and pin the format toolbar above
the scrolling editor body so it no longer jumps under the software keyboard.
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
Bump marketing/build versions for the Swift client, reuse the existing
App Store share-extension App ID, and add ExportOptions/fastlane/archive
scripts so the native binary can be signed and submitted without EAS iOS.
Pre-store bumps set package and Expo marketing versions to 1.12.6 without a GitHub Release. Restore the formal baseline so release automation can cut v1.12.6. Keep Android versionCode at 86 so the release commit advances it safely.
Unify /blob path normalization for authenticated note images, log and surface load failures once per note, and show a skeleton instead of a broken-image flash while resources decode.
Root bun install does not install apps/ios/EditorSource deps, so
including its Vite config in root typecheck failed with missing
vite-plugin-singlefile. Mirror mobile: exclude the nested package
and expose typecheck:ios-editor for optional local checks.
Fixes#189
Rebase stale outbox revisions, leave edit onto the list without flashing
detail, treat TipTap JSON as structural truth for image order while
deriving markdown for sync, and force the detail viewer through
setMarkdown so flattened contentJson no longer kills headings/lists.
Replace the silent PhotosPicker/Transferable path with PHPicker, insert
into TipTap with local hydrate, and flush materialized create/edit body
so uploaded images survive list → detail reopen.
Focus at document end only once when opening a note for edit. SwiftUI
re-binds and setContent no longer call focusEnd on every keystroke, so
mid-document editing keeps the caret in place.
Keep one long-lived viewer and editor WKWebView so switching notes only
rebinds setContent instead of reloading the EditorBundle. Warm both
runtimes after sign-in, restore Evernote-style focus-at-end on edit,
block empty autosave from clobbering notes, and stop showing flattened
contentText when the rich viewer is still booting.
Add bottom-sheet resource actions (share, download, rename, delete)
with success and failure feedback. Viewer image tap opens fullscreen
preview; long-press and attachment taps open the menu. Download uses
the Files export picker so users always know whether the save worked.
Pre-hydrate protected image srcs before TipTap setContent so file://
WebView never loads /api paths under sandbox. Detect SVG correctly,
emit data URLs for SVG assets, treat numeric image width as percent,
and keep unit tests off real demo cache keys.