apps/tauri/TESTING.md
pkill -f 'target/debug/zeroclaw-desktop'
rm "$HOME/Library/Application Support/ai.zeroclawlabs.desktop/settings.json"
tccutil reset All ai.zeroclawlabs.desktop # for installed .app only — see notes
killall Dock # if dock icon looks stale
bash dev/run-tauri-dev.sh
tccutil reset only matches by bundle id, which is set on the .app, not the dev binary. For real fresh-permission tests, build the .app first:
cd apps/tauri && cargo tauri build
cp -R target/release/bundle/macos/ZeroClaw.app /Applications/
xattr -dr com.apple.quarantine /Applications/ZeroClaw.app
tccutil reset All ai.zeroclawlabs.desktop
open /Applications/ZeroClaw.app
x-apple.systempreferences:) or fires the native macOS prompt (Screen Recording, Microphone, Camera, Input Monitoring)onboarding/index.html)POST /api/devices/me/capabilities (best-effort)apps/tauri/src/macos/permissions.rs is #[cfg(target_os = "macos")]IOHIDCheckAccess) for Input MonitoringApplicationServices.framework (AXIsProcessTrusted) for AccessibilityCoreGraphics.framework (CGRequestScreenCaptureAccess) for Screen Recordingswift -e) for AVFoundation, UNUserNotificationCenter, SFSpeechRecognizerosascript bridge for Automationopen x-apple.systempreferences:...?Privacy_* for deep-linking.deb and .AppImage..deb install on Ubuntu 22.04+ → onboarding shows simplified ~2-step flow → tray works.AppImage on Fedora/Arch → samecd apps/tauri
cargo build --release --target x86_64-unknown-linux-gnu # needs cross toolchain
# Or build natively on a Linux box:
cargo tauri build
ms-settings: privacy pages..exe and .msi..msi install on Windows 11 → onboarding shows ~3–4-step Windows flow → system tray workscd apps/tauri
cargo build --release --target x86_64-pc-windows-msvc # needs cross toolchain
# Or build natively on Windows:
cargo tauri build
# Suggested when #6501 lands — run all three at minimum on cargo check
matrix:
os: [macos-14, ubuntu-22.04, windows-2022]
Today the gateway's POST /api/devices/me/capabilities is implemented in this branch but the running gateway behind the SSH tunnel is an older build. To verify capabilities actually land in the DB:
# Run a local gateway from this branch
cargo run -p zeroclaw -- gateway
# In another terminal, walk the wizard, click "Start ZeroClaw"
# Then query the local devices.db (path depends on workspace config):
sqlite3 <workspace>/devices.db "SELECT id, capabilities FROM devices;"
# Expected: one row with a JSON array of granted permission names.
When the production gateway is rebuilt from this branch, the same query against the VPS DB will show the production Mac's capabilities.