379 Commits
Author SHA1 Message Date
edgeever-updater[bot] 507cb892ad chore: update EdgeEver from v2.19.0
EdgeEver-Upstream-Commit: a80d9bfda1aad846e20882813758a59fe27bf8ca
2026-11-04 09:13:22 +00:00
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] d78620caaa chore: update EdgeEver from v2.15.0
EdgeEver-Upstream-Commit: e052ac3b54bdcba4b2c452e6b06c091b1e2c70f4
2026-10-30 08:39:50 +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
edgeever-updater[bot] 83a99699c3 chore: update EdgeEver from v2.9.0
EdgeEver-Upstream-Commit: d5c62eeda4ece2affc36c7d5463c87dd7a8a292f
2026-10-27 07:52:48 +00:00
edgeever-updater[bot] 05e53dcba3 chore: update EdgeEver from v2.7.0
EdgeEver-Upstream-Commit: 30fcb3fc65c419000a3e6f8cfb70eca47ae53914
2026-10-26 07:48:43 +00:00
tianma-if 644ed04d62 chore: release v2.5.0 [skip ci] 2026-10-25 11:05:36 +08:00
tianma-if cf3435de43 feat(desktop): upload images through a remote PicList
Allow a saved PicGo or PicList address beyond loopback, and send the
optional server key on both the connection check and the upload.
2026-10-24 11:03:24 +08:00
tianma-if f7f10e64ee fix(desktop): open the main window when launching at startup
Drop the tray-only choice and the repeated description. A login launch shows the main window, and an older tray preference is rewritten on the next start. Local web dev still shows the switch for preview only.
2026-10-24 11:01:00 +08:00
tianma-if 7a91e7d592 chore: release v2.4.0 [skip ci] 2026-10-24 00:59:55 +08:00
tianma-if a092052892 feat(desktop): add a startup launch setting
Packaged Windows and macOS can open EdgeEver after the computer starts.
The switch stays off until the user turns it on, and can open the main window or stay in the tray.
2026-10-24 00:54:29 +08:00
tianma-if 0f21f09444 feat(editor): set heading levels with number shortcuts
Ctrl or Cmd plus 1 through 6 sets the current rich-text paragraph to that heading. 0 restores body text. The desktop app keeps that 0 chord from also resetting the window zoom.
2026-10-23 23:36:20 +08:00
tianma-if 92a0a71b61 chore: release v2.3.0 [skip ci] 2026-10-22 14:41:07 +08: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
tianma-if 4f49821e3f chore: release v2.2.0 [skip ci] 2026-10-21 23:59:38 +08:00
tianma-if 942dadc00e fix(desktop): keep sidebar ACP chats on one agent process
Follow-up messages were starting a new agent every time, so each reply waited through process startup and a new session before the model was called.
2026-10-21 23:03:42 +08:00
tianma-if e15792d0a6 chore: release v2.1.0 [skip ci] 2026-10-21 18:57:02 +08:00
tianma-if 55d7e48225 fix(desktop): find npx when a Dock-launched agent starts MCP servers 2026-10-21 18:09:48 +08:00
tianma-if 5d1a0661d1 chore: release v2.0.3 [skip ci] 2026-10-21 00:28:45 +08:00
tianma-if 2523d0c1fb chore: release v2.0.2 [skip ci] 2026-10-20 22:19:54 +08:00
tianma-if cc71768c0f chore: release v2.0.1 [skip ci] 2026-10-20 07:07:17 +08:00
tianma-if 55f7767fdf chore: release v2.0.0 [skip ci] 2026-10-20 01:18:31 +08:00
tianma-if c25fdf68e5 refactor(ai)!: require client-direct model calls across all platforms 2026-10-20 01:13:40 +08:00
tianma-if b3d0c47977 fix(desktop): connect directly to private AI model endpoints 2026-10-20 00:45:22 +08:00
tianma-if 6539323ae1 chore: release v1.125.0 [skip ci] 2026-10-19 20:45:42 +08:00
LuoQianhong e637679290 fix(desktop): 通过服务器调用受直连限制的 AI 模型 (#624)
* fix(desktop): proxy server-local AI model requests

* test(mobile): remove unnecessary regex escape
2026-10-19 20:41:53 +08:00
tianma-if 7d2e54966b feat(poster): guide AI template selection with shared descriptions 2026-10-19 17:33:04 +08:00
tianma-if 3519fc9ec3 feat: support SVG image uploads and previews 2026-10-19 16:43:11 +08:00
tianma-if fdad077843 chore: release v1.124.0 [skip ci] 2026-10-19 11:42:38 +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
tianma-if 8820de1273 chore: release v1.121.0 [skip ci] 2026-10-17 01:23:52 +08:00
Dariusz Koryto ccc5ed3f29 refactor: remove unused code and enforce no-unused-vars (#598)
* refactor: remove unused imports, variables and parameters

Remove the 110 bindings reported by no-unused-vars:

- 78 unused imports. Nine whole value-import statements disappear:
  shadcn/ui input, tooltip, button and switch, MobileWebClipCapture,
  AccountSecurityModal and @/lib/api in plugin-host. None of these
  modules has top-level side effects beyond displayName assignments,
  and @/lib/api is still imported by 60 other web modules. The other
  removals are type-only imports or bindings from modules that stay
  imported, so module evaluation is unchanged.
- Dead helpers: appendResourceMarkdown, handleTogglePin (mobile),
  CheckCircleCheck, moveTargetTitle, moveTargetSelectRef,
  handleMoveTargetSelectKeyDown (memo list), copiedLabel (share
  dialog), and an unused palette and flowchart in the diagram editor.
- Component props that are passed but never read are dropped from the
  destructuring only. Their prop types and call sites are unchanged,
  so no caller changes behaviour.
- Tests: iterate Object.values() where keys were unused, and drop
  unused fixture bindings and callback parameters.

* ci: enforce no-unused-vars in oxlint

Turn the rule on with the conventional escapes: names starting with an
underscore and rest siblings used to omit a property
(`({ id, ...item }) => item`) are allowed.
2026-10-17 01:11:05 +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 70d486e4d7 fix(desktop): exclude development files from production packages 2026-10-16 21:44:29 +08:00
yulei666andClaude Opus 5.5 e85916de78 fix(desktop): connect to WorkBuddy 5.8+ lite-wb CLI over stdio ACP (#586)
WorkBuddy 5.8+ ships only dist/codebuddy-lite-wb.mjs. Its loader picks that
bundle only with CODEBUDDY_FORCE_LITE_WB_BUNDLE=1, otherwise --acp requires the
removed dist/codebuddy and exits. A bare --acp in the lite-wb bundle also runs a
one-shot print session; stdio ACP is served only together with --serve.

When the lite-wb layout is detected, set the bundle variable and launch with
--acp --serve --acp-transport stdio. --serve also starts WorkBuddy's local
gateway, so pin it to loopback with --host 127.0.0.1 and SERVER__HOST, which
overrides an inherited SERVER__HOST; the port stays WorkBuddy's random default.
Older layouts keep the previous launch, and the login flow adds only --port
when the command already serves.

Fixes #584

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 13:00:35 +08:00
yulei666andClaude Opus 5.5 d26988e0ee fix(desktop): allow clearing local data from the scoped userData directory (#585)
The packaged app is named @edgeever/desktop, so Electron stores userData at
<appData>/@edgeever/desktop. The reset guard only accepted a direct child of
appData and therefore always failed with unsafe-data-directory. Also accept a
single @scope/name directory while still rejecting other nested paths.

Fixes #583

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-16 12:52:41 +08:00
Thorsten Ruf 367cb8368d feat(web): add a table context menu with copy and paste (#579)
* feat: add table context menu with copy and paste

* fix(web): preserve native input and test table context menu regressions

* fix: harden table context actions and desktop clipboard
2026-10-16 11:24:46 +08:00
tianma-if 1d6cc281e2 chore: release v1.120.0 [skip ci] 2026-10-16 01:51:16 +08:00
tianma-if 3853b54c1b test(desktop): separate POSIX pipe inheritance from portable closure checks 2026-10-15 22:24:41 +08:00
tianma-if 3eaad71509 fix(desktop): await ACP process closure before workspace cleanup
Track close separately from exit, preserve probe outcomes on cleanup errors, and cover inherited pipes and Windows cwd locks. Add cross-platform CI with the official Codex ACP process chain smoke check.

Refs #523
2026-10-15 22:19:48 +08:00
tianma-if 544a6e8e8c chore: release v1.119.0 [skip ci] 2026-10-15 12:46:48 +08:00
tianma-if f4b36fc64f fix(desktop): repair ACP updates and add manual retry 2026-10-15 11:10:39 +08:00
Dariusz Koryto bbe80d18db fix(api): store LF line breaks for multipart image notes; make ACP host tests portable (#568)
* fix(api): store LF line breaks for multipart image notes

multipart/form-data encodes line breaks in text fields as CRLF. Browsers
always do so, and Bun 1.4 now does as well, so notes created through
POST /api/v1/memos/with-image (used by the Web Clipper) were stored with
CRLF line breaks, while every other note uses LF. The route now normalizes
the Markdown field to LF before creating the note.

This also fixes the existing route contract test under Bun 1.4, and a new
test sends a CRLF multipart body like a browser does.

* test(desktop): make ACP host tests independent of the machine and Bun version

- The ACP command allow-list test checked that a missing command is not
  installed, but on macOS the resolver also looks in /opt/homebrew/bin and
  /usr/local/bin, so it failed on any machine with that command installed.
  The test now only sees its temporary directory.
- The fake WorkBuddy agent started its account API without a port during
  probes and chats. Bun 1.3 then listened on a random port, while Bun 1.4,
  like Node, rejects port NaN, so six WorkBuddy session tests hung until
  their timeout. Like WorkBuddy itself, the fake agent now serves the
  account API only when started with a port.
2026-10-15 09:22:42 +08:00
tianma-if 2977f07bdb fix(desktop): support bundled WorkBuddy credential codec exports 2026-10-15 01:20:12 +08:00
tianma-if 3c77c67155 fix(desktop): defer local AI probes until selector opens
Record adapter process lifecycle diagnostics to correlate transient Windows consoles.

Refs #561; Windows device verification remains pending.
2026-10-14 17:53:03 +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