Commit Graph

688 Commits

Author SHA1 Message Date
6fb1441226
refactor: replace super_clipboard with pasteboard (drop cargokit/Rust) (#55)
* refactor: replace super_clipboard with pasteboard, drop cargokit/Rust

super_clipboard pulled in super_native_extensions (a Rust native layer
built via cargokit), whose precompiled-binary download from GitHub
release assets has been intermittently failing the build ("Connection
closed while receiving data"). It was used for exactly one feature -
reading a clipboard image into the composer - in a single file; the
other 12 imports were dead.

- Swap super_clipboard -> pasteboard (platform-channel, no Rust).
- Rewrite readClipboardImageAsXFileInternal() on Pasteboard.image
  (PNG bytes), collapsing three helpers into one.
- Remove 12 unused super_clipboard imports.
- Regenerated plugin registrants / lockfiles drop super_native_extensions.

Removes the Rust toolchain requirement and the flaky download entirely.
Text copy/paste already used Flutter's built-in Clipboard and is
unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* ci: keep TestFlight package release-only

---------

Co-authored-by: Haitao Pan <manbuzhe2009@qq.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 08:30:26 +08:00
Haitao Pan
c8e59a54dd fix(assistant): keep manual bridge usable when signed out of svc.plus
The gateway connection resolver short-circuited to "请先登录 svc.plus"
whenever the account was signed out, before checking whether a manual
bridge was configured or whether capability discovery was still running.
A saved manual bridge could therefore never be used while signed out.

- Only emit the signed-out prompt when neither an account session nor a
  manual bridge is configured (`!accountSignedIn && !bridgeConfigured`).
- Gate the sync-blocked branch on `accountSignedIn` so it no longer
  hijacks the manual-bridge discovery path.

Adds tests covering manual-bridge discovery and discovery-failure while
signed out. See docs/cases/manual-bridge-login-state/README.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-29 10:57:00 +08:00
bce20fcdae chore: update tested linux labels (#23)
Co-authored-by: Haitao Pan <haitao.pan@xworkmate.ai>
2026-06-28 15:54:29 +08:00
Haitao Pan
e5e1a06e2a fix: reveal artifact files without blocking 2026-06-28 14:49:41 +08:00
Haitao Pan
39ba3d0772 fix(artifacts): prioritize PDF deliverables in sidebar 2026-06-28 10:55:29 +08:00
Haitao Pan
80861283f9 fix(gateway): keep polling undecorated running snapshots 2026-06-27 12:27:42 +08:00
Haitao Pan
ef849d7317 fix(prompt): simplify gateway workspace context to avoid conflicting paths (S5)
Every gateway turn's prompt prefix injected three near-duplicate absolute paths:
currentTaskWorkspace + localWorkspace + remoteWorkspaceHint. localWorkspace is the
App's LOCAL thread dir (~/.xworkmate/threads/...) which the gateway agent cannot
access, and remoteWorkspaceHint duplicates currentTaskWorkspace. The conflicting
paths leave the agent unsure where to work and can block conversation continuation.

For gateway turns the prompt now carries only currentTaskWorkspace (the plugin owns
the artifact scope); localWorkspace is kept only for non-gateway (local agent runs
there); remoteWorkspaceHint is dropped when equal to currentTaskWorkspace. sessionKey
is kept (short, not a path). UI is unaffected (chat bubble shows the raw user message;
the prompt-debug parser only special-cases Execution context / Preferred skills /
Attached files). Tests updated; assistant_execution_target_test green (74).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 12:15:27 +08:00
Haitao Pan
5a4a63ad2a fix(artifacts): route signed downloads through active bridge 2026-06-27 12:15:17 +08:00
Haitao Pan
49f619dbcc fix(gateway): harden OpenClaw polling and acceptance notes 2026-06-27 11:27:14 +08:00
Haitao Pan
c89ffb51ed fix(gateway): harden OpenClaw task recovery tests 2026-06-26 18:30:34 +08:00
Haitao Pan
40c59269e9 fix(gateway): day-1 stability — stop infinite "running" and un-stoppable tasks
Symptom: a gateway turn shows "任务运行中..." forever and 停止 has no effect,
even though the OpenClaw gateway has already finished (ACP_HTTP_CONNECTION_CLOSED).

- T3: add a hard deadline to the running-handle poll branch so the client no
  longer polls forever when tasks.get keeps returning "running". Budget is
  derived from taskLoadClass (10/30/60min, aligned with the bridge) + grace;
  on timeout the turn lands in a recoverable `interrupted` state
  (OPENCLAW_RUN_POLL_TIMEOUT) prompting the user to resend.
- T4: make 停止 locally authoritative — capture the association, mark the turn
  aborted immediately (clears pending, exits the poll loop), then fire
  tasks.cancel best-effort so a hung/failed cancel RPC can't block termination.
- T6: applyGatewayChatFailureInternal now authoritatively clears the pending
  flag (both raw + normalized key). Previously runOpenClawGatewayQueuedTurnInternal's
  finally never cleared it, leaving "error shown but still running".

Full cross-repo analysis + remaining TODO in docs/cases/06.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 10:48:45 +08:00
Haitao Pan
09352b35a0 chore: update macOS deployment target to 14.0 and commit pending changes 2026-06-25 09:52:33 +08:00
Haitao Pan
39bb2d459d fix: preserve primary bridge auth token 2026-06-18 10:01:19 +08:00
Haitao Pan
a353f6866f fix(settings): update account panel and assistant connection state 2026-06-17 21:01:56 +08:00
Haitao Pan
ab0ecdd005 feat: add explicit gateway task case hints for openclaw-gateway-e2e-regression 2026-06-17 16:00:54 +08:00
Haitao Pan
7e4b2a756a fix: prioritize managed bridge sync state 2026-06-16 06:20:13 +08:00
Haitao Pan
4b08f76232 feat(workspace): run remote setup script 2026-06-14 14:28:20 +08:00
Haitao Pan
5932b70f70 fix(desktop): bound WebRTC offer wait 2026-06-13 07:10:28 +08:00
Haitao Pan
2309d5bbb4 chore(desktop): remove advanced options panel 2026-06-13 07:09:06 +08:00
Haitao Pan
4b62300e40 feat(assistant): include attachment source paths in gateway prompts 2026-06-12 16:58:24 +08:00
Haitao Pan
d23bd2708c chore: remove stale Flutter code 2026-06-12 14:52:23 +08:00
Haitao Pan
017216e812 fix(app): bound OpenClaw artifact sync polling 2026-06-12 14:08:23 +08:00
Haitao Pan
c21ea080e7 fix: split desktop mouse move data channel 2026-06-09 15:55:02 +08:00
Haitao Pan
3c3473a8f3 fix: use renderer first-frame signal for desktop video 2026-06-09 15:25:53 +08:00
Haitao Pan
91bb9a180e fix: clear desktop first-frame overlay after decode 2026-06-09 15:20:45 +08:00
Haitao Pan
923ec8fb76 feat: align workspace ready actions and naming 2026-06-09 10:58:15 +08:00
Haitao Pan
b356714d52 fix: smooth remote desktop input over webrtc 2026-06-09 10:47:05 +08:00
Haitao Pan
064e0fdc27 fix: isolate remote desktop webrtc sessions 2026-06-08 21:09:11 +08:00
Haitao Pan
b222434a9d Add default bridge save action 2026-06-08 18:35:20 +08:00
Haitao Pan
23d8dd741a Improve workspace status summary wording 2026-06-08 18:13:52 +08:00
Haitao Pan
2c28984a1d Relax workspace prechecks and add post-deploy validation 2026-06-08 17:43:54 +08:00
Haitao Pan
95b7d0d7f6 Clarify bridge DNS precheck message 2026-06-08 16:53:50 +08:00
Haitao Pan
2e76d833e4 Make workspace advanced configs extensible 2026-06-08 16:35:15 +08:00
Haitao Pan
d33e1df4d2 Relax workspace OS checks and add YAML import/export 2026-06-08 16:14:08 +08:00
Haitao Pan
c19a1c755e Harden workspace prechecks 2026-06-08 15:52:26 +08:00
Haitao Pan
7f42fbbda0 Fix gateway dispatch test pipeline 2026-06-08 15:52:26 +08:00
Haitao Pan
ae16a2d978 Add AI workspace management provisioning flow 2026-06-08 15:52:26 +08:00
Haitao Pan
f034e6f28e Stabilize OpenClaw artifact sync 2026-06-08 10:49:09 +08:00
Haitao Pan
7f665862e6 chore: log remote desktop WebRTC stats 2026-06-07 22:25:42 +08:00
Haitao Pan
525d082bf6 fix: show remote desktop first-frame state 2026-06-07 21:57:53 +08:00
Haitao Pan
43db901e6f Sync artifact sidebar with selected task 2026-06-07 12:13:58 +08:00
Haitao Pan
867629900a Improve assistant task UX 2026-06-07 12:03:08 +08:00
Haitao Pan
f81c4e8c76 fix: keep syncing partial OpenClaw artifacts 2026-06-07 07:38:04 +08:00
Haitao Pan
7b0502323b fix: accept review bridge token from account sync 2026-06-06 22:08:06 +08:00
Haitao Pan
0358a4aaac fix: keep bridge token usable after sync block 2026-06-06 19:40:44 +08:00
Haitao Pan
20257f392e fix: unify bridge auth token for desktop connect 2026-06-06 19:24:48 +08:00
Haitao Pan
b7a842fce3 fix: require OpenClaw artifact export before completion 2026-06-06 18:23:05 +08:00
Haitao Pan
b2f4fc7868 fix: keep OpenClaw artifact sync polling 2026-06-06 18:02:13 +08:00
Haitao Pan
dd57b0320f fix: trim OpenClaw task prompt context 2026-06-06 17:40:43 +08:00
Haitao Pan
195827c67d fix: backfill OpenClaw artifacts on sidebar refresh 2026-06-06 14:50:16 +08:00