Commit Graph

423 Commits

Author SHA1 Message Date
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
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
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
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
7f42fbbda0 Fix gateway dispatch test pipeline 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
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
0358a4aaac fix: keep bridge token usable after sync block 2026-06-06 19:40:44 +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
Haitao Pan
b0389e9b2c Merge release/v1.1.4 into main 2026-06-06 11:51:09 +08:00
Haitao Pan
fe84d69e10 refactor: align OpenClaw session key state flow 2026-06-06 11:51:01 +08:00
Haitao Pan
248d4b7013 refactor: explicitly pass openclawSessionKey in task start 2026-06-06 07:24:59 +08:00
Haitao Pan
ea781b5206 refactor/app-thread-key 2026-06-06 06:51:30 +08:00
Haitao Pan
a6879d9d1f feat: pass OpenClaw artifact dir whitelist 2026-06-05 21:25:29 +08:00
Haitao Pan
53875ff37b fix(chat): drop root-level expectedArtifactDirs to satisfy chat.send schema
- Remove the unexpected property at the root of gateway task metadata.
  Keep the value nested in xworkmateTaskArtifactContract where the
  OpenClaw chat.send schema allows it (-32002: invalid chat.send params).
- Drop dead local vars and the unused asInt helper in OpenClaw task
  association parsing.
- Remove the obsolete 'sendChatMessage restarts before handling
  OpenClaw artifact guard results' test superseded by the new terminal
  artifact failure test.
2026-06-05 19:12:31 +08:00
Haitao Pan
6d5122682c refactor: Remove OpenClaw rigid time limits and false positive no-exported-artifacts judgment 2026-06-05 18:10:34 +08:00
Haitao Pan
7047a4f38b fix(assistant): clear pending tool calls when task completes to fix sticky running status 2026-06-05 17:51:18 +08:00
Haitao Pan
0b1373c6c1 fix: resolve openclaw partial artifacts and eliminate legacy fallback code 2026-06-05 17:30:14 +08:00
Haitao Pan
debd54e14c fix: sync openclaw terminal snapshots in app 2026-06-05 17:13:05 +08:00
Haitao Pan
5909e6518b fix: allow stopping archived tasks 2026-06-05 16:59:41 +08:00
Haitao Pan
1e20c8e6ed fix: merged cleanup branch and stashed fixes 2026-06-05 13:42:21 +08:00
Haitao Pan
1d5f5a1440 fix(arch): conservative fallback for gateway error codes 2026-06-05 13:41:30 +08:00
Haitao Pan
3e20fcb504 fix(arch): A1-A3 app layer anti-patterns cleanup 2026-06-05 13:05:04 +08:00
Haitao Pan
1878ce1bb2 fix(webrtc): resolve remote desktop black screen by properly binding remote video tracks and removing legacy Plan B constraints 2026-06-05 12:38:43 +08:00
Cowork 3P
f8449d42e7 Merge branch 'codex/openclaw-final-deliverables' into release/v1.1.4
# Conflicts:
#	docs/architecture/cross-repo-task-state-workflow.md
#	test/runtime/assistant_execution_target_test.dart
2026-06-05 07:47:04 +08:00
Cowork 3P
3b08995c0f feat(xworkmate): optimize desktop thread actions and Go task service client 2026-06-05 07:40:25 +08:00
Cowork 3P
77be6981cc fix: finalize openclaw task polling results 2026-06-05 07:30:51 +08:00
Cowork 3P
4d43a4f0e1 fix: poll openclaw task handle to terminal snapshot 2026-06-05 06:16:05 +08:00
Cowork 3P
a05318324b fix: preserve openclaw failure artifacts 2026-06-04 22:59:56 +08:00
Cowork 3P
60ed369df7 refactor: remove stale runtime fallbacks 2026-06-04 22:38:09 +08:00
Cowork 3P
a908b5118f refactor: remove multi-agent orchestration subsystem (Path B)
Remove the entire multi-agent collaboration execution path, including:
- MultiAgentOrchestrator and its 4-phase pipeline (Architect→Engineer→Tester→Iteration)
- ARIS framework preset and mount infrastructure
- Hardcoded model defaults (kimi-k2.5, minimax-m2.7, glm-5)
- Deprecated runCliPromptInternal() and its fallback call chain
- All related types: MultiAgentConfig, AgentWorkerConfig, MultiAgentRole, etc.

This collapses the architecture to a single clean path:
Flutter → GoTaskServiceClient → ACP Transport → Go Bridge → Remote Execution

2886 lines removed across 41 files.
2026-06-04 05:34:58 +00:00
Cowork 3P
eb58364db6 refactor(skills): clean Path B, add retry + auto-refresh, fix silent failures
- Remove Path B (direct WebSocket RPC), unify skills loading via ACP bridge sessionClient
- Delete skillsStatusPayloadInternal fragile nested-key parsing
- SkillsController: explicit error when offline (no more silent empty), auto-retry with 2s/4s backoff
- Auto-refresh on gateway connect via ChangeNotifier listener
- Gateway connect: concurrent Future.wait for independent controller refreshes
- UI: retry button in skill picker empty/error states
- Clean up skillsController from relayChildChangeInternal listeners
2026-06-04 03:48:29 +00:00
Haitao Pan
0b5f07a86b fix(runtime): restore skills loading and group rendering 2026-06-04 09:40:16 +08:00
Haitao Pan
3d1d037e1a fix: WebRTC remote desktop connection, cleanup local fallback, and ignore .gradle cache 2026-06-04 09:12:08 +08:00
Haitao Pan
0fdac8aedd chore: prepare release v1.1.4 (app store compliance, remote desktop fixes, ci verification) 2026-06-03 15:52:44 +08:00
Haitao Pan
fe1502520d feat: add runtime logs tab to settings page 2026-06-03 14:29:37 +08:00