feat: agent overlay, stop-goal support, and state persistence across app kill

- Add draggable agent overlay pill (status dot + step text + stop button)
  that shows over other apps while connected. Fix ComposeView rendering
  in service context by providing a SavedStateRegistryOwner.
- Add stop_goal protocol message so the overlay/client can abort a
  running agent session; server aborts via AbortController.
- Persist screen-capture consent to SharedPreferences so it survives
  process death; restore on ConnectionService connect and Settings resume.
- Query AccessibilityManager for real service state instead of relying
  on in-process MutableStateFlow that resets on restart.
- Add overlay permission checklist item and SYSTEM_ALERT_WINDOW manifest
  entry.
- Filter DroidClaw's own overlay nodes from the accessibility tree so the
  agent never interacts with them.
This commit is contained in:
Somasundaram Mahesh
2026-02-18 18:49:13 +05:30
parent 88af77ddc7
commit 011e2be291
11 changed files with 389 additions and 9 deletions

View File

@@ -7,7 +7,8 @@ export type DeviceMessage =
| { type: "goal"; text: string }
| { type: "pong" }
| { type: "heartbeat"; batteryLevel: number; isCharging: boolean }
| { type: "apps"; apps: InstalledApp[] };
| { type: "apps"; apps: InstalledApp[] }
| { type: "stop_goal" };
export type ServerToDeviceMessage =
| { type: "auth_ok"; deviceId: string }