Commit Graph

429 Commits

Author SHA1 Message Date
f8a5401963
[backport] fix(macos): workaround App Store Connect dSYM validation bug for App.framework (#63)
* fix(macos): workaround App Store Connect dSYM validation bug for App.framework

* trigger ci

* test: mock device and package plugins and increase timeout

- Increase sync loop timeout in thread workspace binding test to avoid flakiness
- Mock device_info and package_info plugins for gateway runtime tests
- Update pubspec.yaml version

* test: fix missing plugin in runtime_controllers_settings_account_test

* build: make sync-version.sh auto-increment build number

---------

Co-authored-by: Haitao Pan <manbuzhe2009@qq.com>
2026-06-30 10:38:44 +08:00
6357f620c5
ci: TestFlight opt-in toggle + Xcode 27 build fixes (#54) (#56)
* ci: gate TestFlight behind opt-in toggle + Xcode 27 build fixes

TestFlight is now opt-in (default OFF). A workflow_dispatch boolean
`enable_testflight` (or the `ENABLE_TESTFLIGHT` repo variable) drives a
`prepare.outputs.testflight_enabled` flag that gates the macOS
app-store-pkg build leg and both testflight_ios/testflight_macos upload
legs. Missing Apple signing secrets no longer fail the normal DMG/IPA
release path (package-macos-app-store-pkg.sh hard-exits without them).

Xcode 27 build compatibility:
- Align Apple deployment targets so no pod sits below the app minimum
  (Xcode 27 rejects this): macOS pods + RunnerTests -> 15.6, iOS pods
  -> 15.5 to match the Runner targets.
- Add a `lipo` shim (scripts/xcode-tools/lipo) wired onto PATH in the
  iOS/macOS build phases; Xcode 27 only accepts one `-verify_arch`
  architecture per call while Flutter passes them all at once.
- macOS project hygiene: correct PrivacyInfo.xcprivacy path, set app
  display name + LSApplicationCategoryType.



* test: make temp-dir cleanup resilient to concurrent-write races

The assistant execution target tests deleted their temp HOME/workspace
dirs with a raw recursive delete in addTearDown. A background flush
(e.g. controller dispose still persisting state) can keep writing into
the dir while the delete walks it, so the delete races and fails with
"Directory not empty" (errno 39), failing the test on CI.

Route all unguarded teardown deletes through the existing
_resilientDelete helper (re-check existence + retry), and harden that
helper so its final fallback never re-throws — a temp-dir cleanup
failure must never fail a test.



---------

Co-authored-by: Haitao Pan <manbuzhe2009@qq.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-30 08:32:58 +08:00
b1ec29fa36 fix: reveal artifact files without blocking (#24)
Co-authored-by: Haitao Pan <haitao.pan@xworkmate.ai>
2026-06-28 15:44:29 +08:00
fd28b4f485 fix(artifacts): prioritize PDF deliverables in sidebar
Co-authored-by: Haitao Pan <haitao.pan@xworkmate.ai>
2026-06-28 11:27:41 +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
49f619dbcc fix(gateway): harden OpenClaw polling and acceptance notes 2026-06-27 11:27:14 +08:00
Haitao Pan
345930f284 test: stabilize assistant gateway recovery cases 2026-06-26 20:01:31 +08:00
Haitao Pan
04df0f5c0e test: align gateway recovery expectations 2026-06-26 19:52:27 +08:00
Haitao Pan
afdc50cfd0 test: keep layered flutter tests aligned with repo 2026-06-26 19:39:14 +08:00
Haitao Pan
c89ffb51ed fix(gateway): harden OpenClaw task recovery tests 2026-06-26 18:30:34 +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
1b8718087d chore: temporarily disable desktop ai workspace 2026-06-19 18:40:25 +08:00
Haitao Pan
db8275ca27 test: ignore transient cleanup races 2026-06-18 16:57:04 +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
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
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
Haitao Pan
4f25126d4f fix: align OpenClaw task key flow 2026-06-06 13:56:03 +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
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
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
3e20fcb504 fix(arch): A1-A3 app layer anti-patterns cleanup 2026-06-05 13:05:04 +08:00
Haitao Pan
b11df437ac fix: remaining webrtc stream and test artifact changes 2026-06-05 12:49:46 +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
92f81eb27a refactor: eliminate dead codex_runtime methods, add anti-fallback policy
codex_runtime.dart (-290 lines):
- Remove 17 dead methods behind UnsupportedError guard
  (findCodexBinary, startStdio, request, startThread, resumeThread,
   sendMessage, interrupt, getAccount, listModels, listSkills, stop,
   dispose, _resolveLaunchConfiguration + 3 @visibleForTesting wrappers)
- Remove 10 dead fields (_process, _state, _pendingRequests, _events, etc.)
- Remove ChangeNotifier mixin (nothing to notify)
- Keep only model types, enums, and standalone helper functions

AGENTS.md (+21 lines):
- Add Fallback and Dead Code Elimination Policy section
- Forbidden: cascading fallbacks, lingering DEPRECATED code,
  dead code behind guards, silent catch blocks, redundant indirection,
  excessive JSON key probing
- Required: inline WHY comments on every retained fallback chain

Additional cleanup:
- gateway_acp_client.dart: remove unused _GatewayAcpSessionUpdate class
- runtime_controllers_entities.dart: replace _canRefreshThroughRuntime
  with runtimeInternal.isConnected
- runtime_models_gateway_entities.dart: relocate CollaborationAttachment
2026-06-04 07:13:29 +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