Commit Graph
443 Commits
Author SHA1 Message Date
tianma-if 6539323ae1 chore: release v1.125.0 [skip ci] 2026-10-19 20:45:42 +08:00
tianma-if 10b4753955 feat(poster): automatically ensure static thumbnails during development and builds 2026-10-19 18:17:47 +08:00
tianma-if 5f54aeaddc perf(poster): use pregenerated static template thumbnails 2026-10-19 17:57:35 +08:00
tianma-if fdad077843 chore: release v1.124.0 [skip ci] 2026-10-19 11:42:38 +08:00
tianma-if 5eecc8df13 perf: reduce bundled fonts and defer startup dependencies
Keep shared offline defaults and download optional fonts into a validated cache with reliable export fallbacks. Prune stale Android DOM assets and refresh the smaller iOS editor bundles.

Preserve lazy startup boundaries through direct shared exports and dependency-aware splitting. Add ESM graph and Chrome startup checks to prevent eager editor and font loading.
2026-10-19 11:10:25 +08:00
tianma-if cb13c07592 chore: release v1.123.0 [skip ci] 2026-10-18 22:21:14 +08:00
tianma-if 862132acc7 chore: release v1.122.0 [skip ci] 2026-10-18 12:47:22 +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
tianma-if 8820de1273 chore: release v1.121.0 [skip ci] 2026-10-17 01:23:52 +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
tianma-if 1d6cc281e2 chore: release v1.120.0 [skip ci] 2026-10-16 01:51:16 +08:00
tianma-if 6113e18fff test: isolate ACP cleanup in full regression suite 2026-10-16 01:50:03 +08:00
tianma-if bc617ccd93 test(desktop): keep ACP cleanup in the isolated test group 2026-10-15 22:20:33 +08:00
Dariusz Koryto ffff9ac2a1 ci(desktop): discover main-process tests instead of listing them (#576)
test:desktop listed 40 of the 49 Electron main-process test files by hand,
and the five ACP tests that need the desktop working directory ran in a
second command. Four files were missing from both lists
(desktop-device-model, edit-context-menu, rpc, window-lifecycle), so the
desktop build never ran them.

The first command now runs everything under apps/desktop/src/main and
ignores only the five tests the second command runs with --cwd
apps/desktop. The renderer tests and the sidecar step are unchanged, and a
new main-process test is picked up without editing the script.
2026-10-15 21:54:48 +08:00
LuoQianhong 1bb9580007 feat(extension): expand vertical and article platform clipping (#578) 2026-10-15 21:39:41 +08:00
tianma-if 544a6e8e8c chore: release v1.119.0 [skip ci] 2026-10-15 12:46:48 +08:00
tianma-if 4609f72a85 test: isolate WorkBuddy launcher subprocess checks 2026-10-15 12:42:37 +08:00
tianma-if 2ba1e8e70e chore: release v1.118.0 [skip ci] 2026-10-14 11:03:01 +08:00
tianma-if 8127802f32 chore: release v1.117.0 [skip ci] 2026-10-14 10:56:01 +08:00
tianma-if c6a5eeef5d chore: release v1.116.0 [skip ci] 2026-10-14 10:51:28 +08:00
tianma-if 30a4ab08ca chore: release v1.115.0 [skip ci] 2026-10-13 18:04:02 +08:00
tianma-if ccc8a57129 chore: release v1.114.0 [skip ci] 2026-10-13 17:55:08 +08:00
tianma-if c7c4a5e329 chore: release v1.113.0 [skip ci] 2026-10-13 14:15:15 +08:00
tianma-if be93432e78 fix: capture desktop update network diagnostics
Record sanitized request URLs, redirects, timing, HTTP errors and proxy resolution from the actual updater session. Include the trace in copyable update diagnostics. Refs #513
2026-10-13 13:40:11 +08:00
tianma-if 9011a1ce62 feat(plugins): add guarded editing for structured notes 2026-10-13 13:25:16 +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 16e8f1a8f3 chore: release v1.112.0 [skip ci] 2026-10-12 23:54:04 +08:00
tianma-if 435376ca56 feat: add optional desktop PicGo image uploads
Add local PicGo configuration, connection testing, and explicit upload failure recovery. Expose the configuration preview on Web.

Refs #530
2026-10-12 21:45:06 +08:00
tianma-if 566d65fde0 chore: release v1.111.1 [skip ci] 2026-10-12 14:06:05 +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 1b0bbf6ed6 chore: release v1.111.0 [skip ci] 2026-10-11 23:42:12 +08:00
tianma-if 12874df3de chore: release v1.110.0 [skip ci] 2026-10-11 18:31:06 +08:00
tianma-if 615a99b230 chore: release v1.109.0 [skip ci] 2026-10-11 15:34:52 +08:00
tianma-if 69d4668d06 test: isolate fetch mocks and declare DOM test dependency 2026-10-11 00:58:58 +08:00
tianma-if 57e47a9d12 chore: release v1.108.0 [skip ci] 2026-10-11 00:54:26 +08:00
tianma-if 068235614b feat: show desktop update download progress
Add read-only Windows taskbar shortcut diagnostics to investigate stale targets. Refs #513
2026-10-10 23:49:44 +08:00
tianma-if f9e1214a79 fix: expose detailed desktop update diagnostics
Refs #513
2026-10-10 23:41:19 +08:00
tianma-if cf540e88b8 fix: prevent WorkBuddy ACP login from hanging after cancellation 2026-10-10 21:08:24 +08:00
tianma-if 2d604b8fac chore: release v1.107.0 [skip ci] 2026-10-10 19:47:46 +08:00
tianma-if 58bb4b4fee chore: release v1.106.0 [skip ci] 2026-10-10 12:24:56 +08:00
tianma-if 97e3a87f28 chore: release v1.105.0 [skip ci] 2026-10-10 00:05:25 +08:00
tianma-if 31e11c1bc9 chore: release v1.104.0 [skip ci] 2026-10-09 22:12:34 +08:00
tianma-if 8883bc25d1 chore: release v1.103.0 [skip ci] 2026-10-09 10:32:27 +08:00
tianma-if dc8f51460f chore: release v1.102.0 [skip ci] 2026-10-08 22:51:47 +08:00
tianma-if 6cb09f4007 feat(desktop): add configurable global window shortcut
Refs #495
2026-10-08 17:03:19 +08:00
tianma-if 62486ee83d chore: release v1.101.0 [skip ci] 2026-10-07 23:30:57 +08:00
tianma-if 49de42a430 Remove editor block drag handle 2026-10-07 21:26:37 +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