XWorkmate is a Flutter-based AI workspace shell for running assistant threads, local or remote gateway tasks, and multi-agent collaboration in one app.
* 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> |
||
|---|---|---|
| .github | ||
| android | ||
| assets | ||
| config | ||
| docs | ||
| images | ||
| integration_test | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| packaging/windows | ||
| releases/v0.5 | ||
| scripts | ||
| test | ||
| tmp | ||
| tool | ||
| windows | ||
| .env.example | ||
| .gitignore | ||
| .gitmodules | ||
| .metadata | ||
| agent.md | ||
| AGENTS.md | ||
| analysis_options.yaml | ||
| CHANGELOG.md | ||
| dart_test.yaml | ||
| LICENSE | ||
| Makefile | ||
| package.json | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
xworkmate-app
Flutter-based AI workspace shell for running assistant threads with local and remote gateway task execution via ACP bridge.
Architecture
Single execution path: Flutter → GoTaskServiceClient → ACP Transport → xworkmate-bridge → Remote Provider
See docs/architecture/ for the full architecture documentation.
Dependencies
| Repository | Role |
|---|---|
| xworkmate-bridge | Go-based ACP control plane and bridge backend |
| xworkspace-core-skills | Core skill bundles (pptx, docx, xlsx, pdf, image, browser automation) |
| openclaw-multi-session-plugins | OpenClaw Gateway multi-session plugin runtime |
| playbooks | Deployment playbooks and infrastructure automation |
Quick Start
git clone https://github.com/x-evor/xworkmate-app.git
cd xworkmate-app
flutter pub get
flutter analyze
flutter test
flutter run -d macos
For local development, keep xworkmate-bridge checked out alongside xworkmate-app, or set XWORKMATE_BRIDGE_DIR explicitly before building.
macOS (Xcode)
open macos/Runner.xcworkspace
# or
make open-macos-xcode
In Xcode:
- Select the shared
Runnerscheme - Select
My Macas the destination - Configure signing only on the
Runnertarget - Leave CocoaPods plugin targets under
Podsalone
For release builds:
flutter build macos
make build-macos
For a one-line install from the latest GitHub release:
curl -sfL https://install.svc.plus/xworkmate-app | bash -
Downloads
| Platform | Download |
|---|---|
| macOS | Latest Release |
| Windows | Latest Release |
| Linux | Latest Release |
| iOS | Latest Release |
| Android | Latest Release |