Commit Graph

177 Commits

Author SHA1 Message Date
Haitao Pan
a12384274f docs(cases): add gateway turn acceptance summary 2026-06-28 11:29:28 +08:00
Haitao Pan
5360d0d427 docs(runbooks): record gateway turn stability case 2026-06-27 12:44:40 +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
1ee185bc60 docs(cases/06): 4-layer chain full live evaluation — end-to-end PASS
Live-verified one gateway turn across all four layers against 8787 (bridge 188ca4b,
gateway 6 plugins): session.start → real plugin session.prepare mapping → chat.send
→ xworkmate.tasks.get returns status=completed, constraintSatisfied=True, and
summary.md (438B) actually landed in tasks/<sani(sessionKey)>/<runId>/ and is
retrievable via xworkmate.artifacts.export. All xworkmate.* gateway methods ✓.
T12 metrics all 0 (no resilience fallback needed). Supersedes the earlier
no_native_task_record observation, which was a derived symptom of the plugin not
being loaded (the S0 symlink root cause).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 12:08:13 +08:00
Haitao Pan
9b31d9810b docs(gateway): map durable agent terminal recovery 2026-06-27 12:03:08 +08:00
Haitao Pan
1cce388da7 docs(case06): reconcile TODO status + consolidated cross-repo stability backlog
- Flip stale §5 checkboxes (T1/T2/T3/T4/T6) to done with code anchors —
  they had lagged behind §2/§6 which already marked them merged.
- Add §9: authoritative full-chain status across all 4 repos' main
  (app/bridge/openclaw/playbooks HEADs), the completed stability closure,
  and the precise remaining backlog (S1 redo, S2 status ambiguity, T8b
  cross-restart persistence) with acceptance criteria + anti-regression
  recommendations.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 11:34:29 +08:00
Haitao Pan
e6f0e43ff7 docs(case06): close out acceptance log 2026-06-27 11:28:38 +08:00
Haitao Pan
49f619dbcc fix(gateway): harden OpenClaw polling and acceptance notes 2026-06-27 11:27:14 +08:00
Haitao Pan
3422aae9bf docs(cases/06): mark S1 done — default expectedArtifactDirs (live-verified, bridge 0280893)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 06:34:32 +08:00
Haitao Pan
fdf449a3a0 docs(cases/06): S0 done — stable plugin install verified
Root cause of the plugin not loading was a symlink
~/.openclaw/extensions/openclaw-multi-session-plugins -> /tmp/... (ephemeral).
Replaced with a real dir, registered via `openclaw plugins install --force`,
restarted the gateway: now boots with "6 plugins ... openclaw-multi-session-plugins"
from the stable path, provenance warning gone, and xworkmate.session.prepare returns
the real plugin mapping (no bridge fallback). Survives restart.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 06:19:50 +08:00
Haitao Pan
830759313f docs(cases/06): definitive 4-layer chain incl. multi-session plugin + live verification
Rewrites the timeline (§1) and topology (§2) as the correct FOUR-layer chain
App → bridge → openclaw-multi-session-plugins → OpenClaw gateway, and documents the
plugin's multi-session/multi-thread role: session mapping (appThreadKey⇄openclawSessionKey),
per-(session,run) artifactScope = tasks/<sanitize(sessionKey)>/<runId>, the strict
sessionKey/runId/artifactScope triplet validation, and the expectedArtifactDirs
workspace-root fallback scan.

Live-verified against 127.0.0.1:8787 (plugin loaded, commit 2333c3e):
- session.prepare returns a real mapping; chat.send returns runId; xworkmate.tasks.get
  is handled by the plugin but returns no_native_task_record with an empty task scope
  (chain reaches the plugin layer; the agent run produced no queryable task / no file —
  a layer-4 execution/landing issue).

Adds §7 stability improvements grounded in this live run:
- S0 install the plugin from a stable path (not /private/tmp) — the primary reliability fix.
- S1 expectedArtifactDirs was [] → the plugin's workspace-root fallback is inert; bridge
  should always pass default dirs (reports/, artifacts/).
- S2 no_native_task_record status ambiguity (running vs completed-without-artifact).
- S3 sessionKey/runId/artifactScope triplet consistency (don't pre-prefix agent:main:).
- S4 runtime observability across all four layers.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 23:18:04 +08:00
Haitao Pan
8ba7804fa2 docs(cases/06): correct root cause — plugin not loaded, not protocol drift
Live verification disproved the earlier "xworkmate.* protocol namespace drift"
conclusion. The xworkmate.* gateway methods are REAL — registered at runtime by
the openclaw-multi-session-plugins plugin (index.ts registerGatewayMethod). The
actual failure: the running OpenClaw gateway did not load that plugin because its
source path was the ephemeral /private/tmp/openclaw-multi-session-plugins/... and
the gateway booted (09:21) ~9h before those files were populated (18:40), so it
started with 5 plugins (no multi-session) and every xworkmate.* returned
"unknown method". Restarting the gateway loads 6 plugins and the methods work
(errors shift to plugin-level param validation).

Changes:
- Add a corrected conclusion banner up top distinguishing the primary root cause
  (plugin load) from the T1-T9 robustness hardening.
- Replace the wrong "protocol drift / native alignment" section with the
  plugin-not-loaded root cause + evidence + the abandoned-branch note
  (fix/gateway-task-protocol-alignment must NOT be merged).
- Fix failure-row 10, T13 (runtime-state check now covers gateway plugin load),
  and the landing-order to put the plugin fix as step 0.
- Cross-reference openclaw-gateway-e2e-regression/ROOT_CAUSE_ANALYSIS.md (which
  was already correct about the 4-layer chain).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 23:08:01 +08:00
Haitao Pan
efb7f6b860 docs(cases/06): record definitive root cause — xworkmate.* gateway protocol drift
Adds the 2026-06-26 decisive finding: the bridge forwards `xworkmate.*` method
names the OpenClaw 2026.6.2 gateway does not implement (it uses native
tasks.get/list/cancel and artifacts.list/get/download). Documents the corrected
end-to-end turn timeline with the three break points (tasks.get unknown method;
{taskId}-only param shape + taskId!=runId; artifacts.* drift blocking .md delivery),
the evidence (gateway source + schema + CHANGELOG), the implemented task-lifecycle
fix, and the precisely-specified remaining work (artifact-method alignment + test
fixture migration). Corrects the earlier (wrong) "push/pull mismatch" conclusion.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 20:38:33 +08:00
Haitao Pan
a09a85c507 docs(cases): record local bridge runtime validation 2026-06-26 19:19:40 +08:00
Haitao Pan
9b437a99b2 docs(cases/06): mark T7/T8/T9 done with impl locations & design trade-offs
Records the durable per-session run-registry implementation (bridge branch
fix/gateway-durable-run-registry): T7 gateway-unconfirmed fallback, T8 terminal
result cache, T9 DeadlineAt interrupt — with the trade-offs (no gatewayruntime
pending-map rewrite; per-session in-memory store not yet cross-restart durable;
T9 only force-terminates when the gateway is unconfirmed) and the test names that
cover each.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 18:54:40 +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
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
867629900a Improve assistant task UX 2026-06-07 12:03:08 +08:00
Haitao Pan
4f25126d4f fix: align OpenClaw task key flow 2026-06-06 13:56:03 +08:00
Haitao Pan
152074129a docs clarify openclaw artifact workspace ownership 2026-06-06 12:17:28 +08:00
Haitao Pan
05fc574f8b chore: retire rust ffi scaffold 2026-06-06 12:00:13 +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
c16704b052 Refactor OpenClaw task integration as thin adapter 2026-06-06 07:56:32 +08:00
Haitao Pan
ea781b5206 refactor/app-thread-key 2026-06-06 06:51:30 +08:00
Haitao Pan
495af092c5 Add OpenClaw thin adapter refactor plan 2026-06-05 21:55:15 +08:00
Haitao Pan
046020d8d7 Remove Patrol from macOS package 2026-06-05 21:47:08 +08:00
Haitao Pan
a6879d9d1f feat: pass OpenClaw artifact dir whitelist 2026-06-05 21:25:29 +08:00
Haitao Pan
5f3dc974aa Document OpenClaw artifact dirs protocol boundary 2026-06-05 21:23:56 +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
debd54e14c fix: sync openclaw terminal snapshots in app 2026-06-05 17:13:05 +08:00
Haitao Pan
2f8a047798 add design doc: multi-session-plugin-optimization 2026-06-05 14:53:47 +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
Haitao Pan
3522bb7b99 docs: add cross-repo architecture chain maps and risk analysis
- Add 4 chain maps: task-execution, artifact-lifecycle, session-recovery, bridge-distributed
- Add cross-repo call analysis with top-10 fragile points
- Update AGENTS.md with 'Cross-Repo Architecture Chain Maps' section
- Document artifact path gap: OpenClaw tools output to ~/.openclaw/media/ but plugin export scans tasks/<session>/<run>/
2026-06-05 02:54:11 +00: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
77be6981cc fix: finalize openclaw task polling results 2026-06-05 07:30:51 +08:00
Cowork 3P
8b91b9a434 update architecture docs 2026-06-05 06:59:42 +08:00
Cowork 3P
7573780956 docs(architecture): fix critical accuracy errors, stale refs, paths
Accuracy fixes:
- app-orchestration.md: remove non-existent constructor params
- models-and-config.md: remove wrong multiAgent field from SettingsSnapshot
- runtime-contracts.md: add missing multiAgent/collaborationMode/routingHint fields

Stale multi-agent refs:
- unified-routing-architecture.md: agent/multi-agent → agent (含 bridge 转发)
- bridge-runtime-routing-map.md: multi-agent tasks → multi-agent forwarding tasks
- cross-repo-task-state-workflow.md: remove multi-agent orchestration from mermaid
- runtime-contracts.md, feature-surfaces.md: 多 agent → agent

Organization:
- Move cloud-session-service and stage4-helper to archive/
- Fix 22 xworkmate/ → xworkmate-app/ paths in archive doc
- Fix XWorkmate.svc.plus repo name in simple-theme-default.md
- Update README.md index and public-api/README.md coverage stats (132/590)
2026-06-04 06:53:38 +00:00
Cowork 3P
74b9d1814d docs: add architecture README with categorized navigation 2026-06-04 06:32:27 +00:00
Cowork 3P
fdda0b7d85 test,docs: fix all stale references to deleted multi-agent subsystem
Test fixes (6 files, -303 lines):
- Delete app_controller_acp_mount_resilience_test.dart (entirely about deleted types)
- Remove multi-agent test cases from gateway_acp_client_auth_test.dart
- Rename _manifestWithDesktopMultiAgentEnabled → _defaultDesktopManifest
  in assistant_execution_target_test, assistant_lower_pane_test,
  mobile_assistant_page_test

Docs fixes (6 files):
- Regenerate public-symbol-inventory.json/md via make docs-public-api
- Remove multi-agent sections from public-api/models-and-config.md,
  app-orchestration.md, runtime-contracts.md
- Fix xworkmate/ → xworkmate-app/ paths in cloud-session doc
- Remove multiAgent references from app-external-service-api-test-matrix.md
2026-06-04 06:31:45 +00:00
Cowork 3P
376797a553 docs(cases): clean up test cases — remove ai-security-evolution scenario, fix issues
- Delete ai-security-evolution-content-scenario/ (8 files, referenced by removed MANUAL-LOCAL-001A)
- Remove MANUAL-LOCAL-001A from core-integration-manual-cases.md
- Fix duplicate section numbering (#5#6 for general thread scenarios)
- Remove misplaced workspace sync rules from MANUAL-ACP-004 (bridge auth case)
- Update README.md index
2026-06-04 06:13:38 +00:00
Haitao Pan
81ecfba85a feat: Remote Desktop UI and Client WebRTC Integration 2026-06-03 10:50:06 +08:00
Haitao Pan
22a0376b00 fix: repair bridge login sync runtime state 2026-06-01 10:02:13 +08:00
Haitao Pan
ee8bfa48fd chore: update core integration cases and runtime helpers 2026-05-30 12:04:54 +08:00
Haitao Pan
94236c90e1 test: align openclaw e2e prompts 2026-05-29 14:09:49 +08:00
Haitao Pan
e6cde355bc docs: record openclaw gateway e2e cases 2026-05-29 14:05:47 +08:00
Haitao Pan
8469537060 chore: prepare v1.1.3 release metadata 2026-05-28 13:20:57 +08:00
Haitao Pan
6806ac0045 Release v1.1.3 2026-05-27 15:10:07 +08:00