147 Commits
Author SHA1 Message Date
edgeever-updater[bot] 67cf5297de chore: update EdgeEver from v2.18.0
EdgeEver-Upstream-Commit: 4235f3f2f1f68ad94802612362d1daea6dabb3cb
2026-11-03 09:33:32 +00:00
edgeever-updater[bot] eaf37b4aeb chore: update EdgeEver from v2.16.1
EdgeEver-Upstream-Commit: 6e79c1bd81a3678b1d0d01f5476564cfecdd40d8
2026-10-31 08:26:31 +00:00
edgeever-updater[bot] d04350db18 chore: update EdgeEver from v2.14.0
EdgeEver-Upstream-Commit: 355286814e746828688e6b0de139c39d3ecd2b20
2026-10-29 08:29:49 +00:00
edgeever-updater[bot] 55a447d8f8 chore: update EdgeEver from v2.12.0
EdgeEver-Upstream-Commit: eeaab088f41d0417fbce2266f58ff4adde7f5d76
2026-10-28 08:33:37 +00:00
tianma-if 573b5a6a41 fix(web): match exported PDF styling to the note
Print preview used a separate navy and emerald palette. It now follows the editor's light prose, including account type size, line height, palette accents, custom CSS, and the note font. Saving the preview downloads a PDF with the heading outline.
2026-10-22 12:50:47 +08:00
sivdead 156cd5c574 fix(extension): remove broken Substack image link wrappers 2026-10-19 12:50:50 +08:00
LuoQianhong 545e1ce41d chore(extension): prepare Web Clipper 0.2.0 for store submission (#615) 2026-10-18 17:45:59 +08:00
Dariusz Korytoandtianma-if 5ac19b542b feat(web): show a QR code for note and notebook share links (#610)
Opening a shared note on a phone meant copying the link to another
device. Add a collapsible "QR code" section to the note and notebook
share dialogs that renders the public link as a scannable code.

- Rendered with qrcode.react 4.2.0 (SVG, no dependencies), loaded with
  the share dialogs only.
- Dark modules on a white panel in every theme so phone cameras can
  read it; labelled for screen readers, no native title tooltip.
- Hidden for password-protected links, so the code never replaces the
  password the recipient still has to receive separately.
- Copy in all four catalogs.

Co-authored-by: tianma-if <yingwaizhiying@gmail.com>
2026-10-18 11:39:00 +08:00
Dariusz Koryto bec688b91a ci: add oxlint correctness check and resolve its findings (#592)
* refactor: resolve oxlint correctness findings without behavior changes

- Snapshot iterations that mutate their collection with Array.from()
  instead of a spread (live childNodes, self-removing disposers, a Set
  extended inside its own loop).
- Drop empty spread fallbacks, redundant regex escapes, Boolean() casts
  inside negations, a rethrow-only try/catch and statement ternaries.
- Use startsWith/endsWith for anchored literal checks in the extension.
- List U+FE0F explicitly in the mobile attachment emoji class; the
  matched set is unchanged.
- Fix the WeChat copy fixture, where \oint in a template literal lost its
  backslash and the block formula never exercised \oint.
- Document the intentional control-character regexes (filename
  sanitizing and input validation), the throwing provider stream test,
  Astro's generated type reference and the mobile auto-sync finally
  block with narrow inline exceptions.

* ci: run oxlint correctness rules on pull requests

Pin oxlint 1.88.0 and enable only its correctness category across apps/
and packages/, excluding build output, vendored code and the iOS app.
Findings are errors and the script passes --deny-warnings, so CI fails
on any finding. no-unused-vars stays off until unused code is removed
in a dedicated pass.
2026-10-16 21:57:36 +08:00
LuoQianhong 1bb9580007 feat(extension): expand vertical and article platform clipping (#578) 2026-10-15 21:39:41 +08:00
tianma-if 71e2395e28 fix(editor): search and replace in the active editor mode
Search raw Markdown in source mode with literal character matching, batched undoable replacement, and matching highlights. Preserve query whitespace and keep replacement focus stable. Route source editor search shortcuts through the workspace controller.

Validation: 141 editor tests and 2 Chrome end-to-end cases passed; web and mobile typechecks and the web build passed.

Refs #574
2026-10-15 11:43:34 +08:00
tianma-if 6b5027e8b4 fix(security): harden renderer and desktop execution boundaries
Preserve trusted plugin and automatic ACP permission models. Track release and remaining validation in #546.
2026-10-13 00:42:36 +08:00
tianma-if 76596f79e7 refactor(extension): migrate clipper UI to React and Tailwind 2026-10-12 23:10:46 +08:00
tianma-if ea4867a173 fix: update vulnerable URI CSS and SVG dependency copies 2026-10-12 13:29:12 +08:00
tianma-if e4ede1dcd4 fix: upgrade XML and Firefox ZIP dependency chains 2026-10-12 13:13:25 +08:00
tianma-if 59d6548abd fix: harden remaining dependency paths and desktop npm
Remove the unused React Native Markdown renderer. Pin safe YAML, shell quoting, tar, and cache dependencies; upgrade npm within the 11 series and apply upstream fixes to its hidden bundled Undici and cache copies.

Add actual-consumer security regressions and an opt-in real npm/ACP upgrade verifier. Typechecks, Web build, Android APK/signature checks, and 2,997 tests passed (23 skipped). Real old-to-new npm installs, ACP initialize, rollback, restart, and fallback retention passed under the desktop Electron runtime.

Android USB-device validation and full desktop automatic-update release gates remain pending. Dependency audit is reduced from 85 to 74 unique advisories; this is not a complete security clearance.
2026-10-12 12:48:47 +08:00
tianma-if 0e958b4944 chore: upgrade core dependencies and migrate site to Astro 7
Align editor, AI SDK, query, and Expo SDK 57 dependencies; pin floating versions and rebase the Mermaid and Android sharing patches. Refresh the standalone iOS editor bundle and migrate site content collections while preserving routes.

Validation: typechecks for Web/API, Android, and iOS editor; Web, site, iOS editor, Worker, Docker server, extension, and Android APK builds; 2,994 tests passed, 23 skipped. Built-in browser verified rich-text paste/undo and bilingual site navigation.

USB-device upgrade/data/share verification and desktop cross-version release gates remain pending. Remaining dependency audit advisories are not all resolved.
2026-10-12 12:22:42 +08:00
tianma-if 69d4668d06 test: isolate fetch mocks and declare DOM test dependency 2026-10-11 00:58:58 +08:00
tianma-if 0da78f6ce8 feat: add native poster notes and unified AI editing 2026-10-11 00:38:44 +08:00
tianma-if d42fbec67e feat(editor): add visual formula editing with MathLive
Add an on-demand formula keyboard, editable placeholder styling, and LaTeX source switching. Expand MathLive macros for KaTeX compatibility and prevent applying incomplete formulas.

Refs #514
2026-10-10 19:39:49 +08:00
tianma-if ccc73ab6af feat(markdown): preserve front matter on import and export
Support imported YAML properties without adding a toolbar entry. Keep ordinary single-note exports body-only and retain full metadata for ZIP backups.
2026-10-10 18:42:45 +08:00
tianma-if a4d391d36b Add on-demand DOCX previews for note attachments 2026-10-08 21:43:45 +08:00
tianma-if 49de42a430 Remove editor block drag handle 2026-10-07 21:26:37 +08:00
tianma-if 916b1b35e8 Move note attachment transcription to direct client processing 2026-10-07 20:22:31 +08:00
tianma-if 2e15f325c5 revert: withdraw unreleased video transcription feature 2026-10-07 17:30:14 +08:00
tianma-if 46f1c7d764 feat(speech): extract video-note subtitles from a workspace speech service
Video notes keep a hidden marker, and the note list can queue subtitle extraction. The desktop app downloads the audio with yt-dlp and sends it to the selected OpenAI-compatible speech service.
2026-10-07 11:36:12 +08:00
Dariusz Koryto 40321fe1f8 feat(extension): keep page clip images inside the note (#474)
Copy images in generic page and selection clips into note resources so clips can retain them when source URLs change. Keep remote URLs for images that cannot be copied.

Protect concurrent note edits, parse Markdown image syntax correctly, and bound image transfers by time and size. Add unit and Chromium browser coverage.

Refs #159
2026-10-06 16:24:49 +08:00
tianma-if c32789ee30 chore(extension): bump Web Clipper to 0.1.16
Refs #464
2026-10-04 17:10:35 +08:00
tianma-if dbe76323f7 chore(extension): bump Web Clipper to 0.1.15 2026-10-03 20:53:34 +08:00
tianma-if 7008f369a5 refactor(extension): shorten Xiaohongshu clip menu text 2026-10-02 23:56:56 +08:00
tianma-if 8f08c89c1b fix(extension): stabilize clip menus and clarify Zhihu notes 2026-10-02 23:44:45 +08:00
tianma-if 4ed13eb0ad feat(desktop): manage ACP adapters and connect local agents 2026-09-30 11:51:21 +08:00
tianma-if 871a9325d5 feat(web): replace the AI dialog with a companion sidebar
Notes open a right-hand assistant that can attach files and asks before changing note content. Desktop can talk to a local ACP agent without handing over the note directory.
2026-09-29 22:19:55 +08:00
tianma-if 53290535ff feat(web): share note size, line height, and palette
Keep the native editor theme, store column width on this device, and publish account font size, line height, palette, and custom CSS to the editor, public shares, and WeChat paste. Highlight custom CSS with CodeMirror.
2026-09-29 16:20:57 +08:00
tianma-if f26c288b60 chore: unify web and site on Tailwind CSS 4 2026-09-24 23:39:41 +08:00
tianma-if 0d3a47eca5 feat: use AI Elements for infographic conversation 2026-09-24 23:32:57 +08:00
tianma-if c3de2cd102 feat: add AI-driven infographic notes 2026-09-24 21:19:23 +08:00
tianma-if c2a26b23ac feat(web): add a beta structured table note
Store typed records in the note body and edit them as a grid on web and desktop. Phones and iOS stay read-only so the record model is not overwritten.
2026-09-23 00:00:44 +08:00
tianma-if 5880699347 feat(web): add block drag handles and formula insert
Let users reorder blocks from the desktop rich editor, and insert or edit LaTeX from the toolbar, slash menu, or by clicking a formula.
2026-09-20 23:42:38 +08:00
tianma-if e0a2f38447 feat(web): add GitHub-style details fold blocks (#418) 2026-09-20 19:35:04 +08:00
tianma-if efb5648c63 fix(web): window the memo list so only visible cards mount
Use TanStack Virtual for the loaded memo pages. Keep infinite-scroll data
as-is, but stop rendering every card into the DOM while scrolling.
2026-09-18 16:11:52 +08:00
tianma-if a9cd05e960 feat(web): highlight Markdown source and switch themes from the toolbar
Light auto theme now colors headings, marks, quotes, and links so source
mode is readable. The editor toolbar can pick the same Markdown themes as
settings.
2026-09-12 00:07:05 +08:00
tianma-if 3b91161f4b chore: refresh workspace lockfile 2026-09-06 23:36:42 +08:00
tianma-if 559768034e feat(mcp): support semantic diagram note creation 2026-09-06 20:48:53 +08:00
tianma-if 7e419b6464 feat: render mobile diagram notes with X6 2026-09-06 14:00:45 +08:00
tianma-if 12f16633c2 fix: prevent diagram metadata leaking on mobile 2026-09-06 13:06:40 +08:00
tianma-if 5fdc1c1aa1 fix(editor): stop links extending into new text
Make the shared TipTap link mark non-inclusive so text typed after a pasted or terminal link remains plain across web, desktop, Android, and iOS editors.

Refs #355
2026-09-05 22:39:10 +08:00
tianma-if d400371841 feat: add editable mind map and flowchart notes 2026-09-05 15:44:48 +08:00
tianma-if ce6d4a18e9 fix(ios): make Xcode Cloud editor build reproducible 2026-09-05 00:26:02 +08:00
tianma-if 12fca0db5f perf(plugins): keep public requests off the backend when possible 2026-09-04 13:35:27 +08:00