Commit Graph
1187 Commits
Author SHA1 Message Date
tianma-if ef3b81aaa5 feat(editor): render LaTeX formulas (#197) 2026-08-09 15:45:11 +08:00
tianma-if 27a3470302 fix(web): refresh workspace after ZIP import (#202) 2026-08-09 13:52:53 +08:00
tianma-if 939203a631 chore: release v1.13.3 [skip ci] 2026-08-09 11:56:40 +08:00
tianma-if 27c2ed2b73 test(web): cover new memo sync race 2026-08-09 11:55:22 +08:00
tianma-if 4017d09bff fix(web): preserve new memo drafts during sync 2026-08-09 11:37:09 +08:00
tianma-if fec726b3af chore: release v1.13.2 [skip ci] 2026-08-09 09:59:32 +08:00
tianma-if 12ce051c15 fix(mobile): restore Android list motion 2026-08-09 09:52:15 +08:00
tianma-if d4835b0ee6 fix(mobile): focus note body on create 2026-08-09 09:25:01 +08:00
tianma-if 3d30f0681b chore: release v1.13.1 [skip ci] 2026-08-09 01:37:27 +08:00
tianma-if b357d1d9d3 refactor: modularize cross-platform workspace flows 2026-08-09 01:12:09 +08:00
tianma-if 754e520aa7 refactor: split iOS settings and revision views 2026-08-08 23:12:30 +08:00
tianma-if 8ecb338635 refactor: extract API storage token and sync routes 2026-08-08 23:07:53 +08:00
tianma-if 5cf1179e0a refactor: extract resizable image extension 2026-08-08 22:44:15 +08:00
tianma-if 4d8ff712a4 refactor: extract mobile workspace action sheets 2026-08-08 22:41:47 +08:00
tianma-if 8ede5c0de3 refactor: extract API auth and resource routes 2026-08-08 22:39:28 +08:00
tianma-if f39c24b96d refactor: split API seeds and iOS editor helpers 2026-08-08 22:27:45 +08:00
tianma-if 30f47dac4c refactor: harden mobile editing and PWA caching 2026-08-08 21:47:55 +08:00
tianma-if c9f2c0f6a2 fix(mobile): restore create-note autofocus and soft keyboard
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.
2026-08-08 20:35:03 +08:00
tianma-if 6062124e44 chore: release v1.13.0 [skip ci] 2026-08-08 12:30:48 +08:00
tianma-if ca218b3226 feat(mobile,ios): template create parity and DomWebView input stability
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.
2026-08-08 12:22:02 +08:00
tianma-if fc60daf89c feat(mobile): create notes from templates on Android
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.
2026-08-08 11:16:31 +08:00
tianma-if 12e1d9d872 chore: release v1.12.8 [skip ci] 2026-08-08 01:11:29 +08:00
tianma-if 7f1af71dcb feat: use semantic merge dividers between combined notes
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.
2026-08-08 01:10:07 +08:00
tianma-if 6066678adb docs: clarify release version bump selection
Require an explicit SemVer --bump and forbid compressing user-visible
new capabilities or platforms into patch for release cadence.
2026-08-08 00:43:31 +08:00
tianma-if b9a2052ca2 chore: release v1.12.7 [skip ci] 2026-08-08 00:31:27 +08:00
tianma-if 270a5355ff chore(i18n): shorten editor link-open preference description
Keep the personal-center helper text to a single concise line in both
Chinese and English so the settings row does not wrap.
2026-08-08 00:27:04 +08:00
tianma-if 9de7455f6b feat(web): default click-to-open links with desktop modifier preference
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.
2026-08-08 00:08:14 +08:00
tianma-if ac22958302 fix(web): show open-link tip for external hyperlinks while editing
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.
2026-08-07 23:53:38 +08:00
tianma-if 8f1d0e9327 fix(web): make Markdown source editor fill the editor pane
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.
2026-08-07 23:33:05 +08:00
tianma-if 676ae9c530 fix(editor): style default-theme external hyperlinks
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.
2026-08-07 23:15:17 +08:00
tianma-if a32272019f feat(ios): show first-login note sync progress like Android
Surface bootstrap loaded/total counts with the same loading card, list banner, and error UI so first sign-in feels responsive instead of empty.
2026-08-07 23:07:44 +08:00
tianma-if 7a44e9c8ff chore(ios): ignore Xcode userdata and local build artifacts
Keep machine-local xcuserdata, userstate, and signing material out of git.
2026-08-07 22:53:21 +08:00
tianma-if 73d3bad9a3 fix(ios): harden Xcode Cloud store builds and auto-upload
Use Automatic signing and Cloud lifecycle scripts so App Store IPAs get
correct build numbers and reach ASC even when secondary exports fail.
2026-08-07 22:51:36 +08:00
tianma-if 7ceed4ea16 feat(ios): route App Store archives through Xcode Cloud on beta macOS
Add Cloud post-clone setup and docs so store binaries build on Apple's
release hosts; block local archive-app-store on seed OS to avoid ITMS-90111.
2026-08-07 19:54:28 +08:00
tianma-if 5124ef3539 fix(ios): image UX, editor stability, and create draft hygiene
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.
2026-08-07 19:12:27 +08:00
tianma-if 96e4473a1b fix(ios): create-back commit, press motion, editor keyboard and toolbar
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.
2026-08-07 14:54:04 +08:00
tianma-if 74fef8c57b feat(editor): add insert/edit external hyperlink controls
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
2026-08-07 14:50:56 +08:00
tianma-if 0bbfd47357 release(ios): ship SwiftUI binary 1.12.6 (31) for App Review
Bump the native build number, prefer stable Xcode for archives, disable
fastlane precheck IAP checks, and document the App Store archive path.
2026-08-07 13:45:57 +08:00
tianma-if cf76d9dbb8 release(ios): prepare native SwiftUI App Store archive path
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.
2026-08-07 13:16:17 +08:00
tianma-if 47832af55c chore: release v1.12.6 [skip ci] 2026-08-07 12:48:40 +08:00
tianma-if a46ad3f7b5 chore: restore release baseline to 1.12.5 for formal cut
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.
2026-08-07 12:48:02 +08:00
tianma-if 8bd21e2911 chore: ignore local App Review crash dump directory
Keep .tmp-app-review-crashes out of version control so device crash logs and self-test screenshots stay local.
2026-08-07 12:44:55 +08:00
tianma-if f4868b3136 fix(mobile): improve protected image load UX and diagnostics
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.
2026-08-07 12:43:11 +08:00
tianma-if 93cceada28 fix(typecheck): exclude iOS EditorSource from root tsc
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
2026-08-07 12:28:36 +08:00
tianma-if aaa8d47799 fix(ios): harden edit/sync so notes keep text, order, and Markdown rendering
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.
2026-08-07 12:19:14 +08:00
tianma-if 16c1d836d5 fix(ios): make note image upload pick, insert, and persist on reopen
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.
2026-08-07 11:38:30 +08:00
tianma-if c246f916f7 fix(ios): stop yanking caret to end while typing in the editor
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.
2026-08-07 11:15:17 +08:00
tianma-if 753a09c9a4 perf(ios): reuse TipTap WebViews and harden detail/edit open path
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.
2026-08-07 11:12:04 +08:00
tianma-if dfc96c686c feat(ios): Android-parity image and attachment action menus
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.
2026-08-07 10:33:27 +08:00
tianma-if c22064bcea fix(ios): render demo note images including SVG blobs
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.
2026-08-07 10:15:10 +08:00