Commit Graph
13 Commits
Author SHA1 Message Date
Somasundaram MaheshandClaude Opus 4.6 a30341516f feat(android): auto-connect, assistant invocation, suggestion cards, and onboarding assistant step
- Auto-connect to server on app open when API key is configured
- Show error card below top bar on connection errors
- Fix VoiceInteractionService registration with RecognitionService stub
- Voice session triggers overlay command panel instead of separate UI
- Add suggestion cards (recent goals + defaults) to HomeScreen empty state
- Add digital assistant setup step to onboarding with skip option
- Add ACTION_SHOW_COMMAND_PANEL to ConnectionService and AgentOverlay

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 06:54:00 +05:30
Somasundaram Mahesh 474395e8c4 feat(android): add overlay command panel, dismiss target, vignette, voice integration, and theme updates
- Add CommandPanelOverlay with suggestion cards and text input for goals
- Add DismissTargetView for drag-to-dismiss floating pill
- Add VignetteOverlay for crimson glow during agent execution
- Integrate voice mic button in command panel
- Add VoiceInteractionService for system assistant registration
- Store recent goals in DataStore for command panel suggestions
- Update GradientBorder and VoiceOverlayContent to DroidClaw crimson/golden theme
- Fix default assistant settings to use ACTION_VOICE_INPUT_SETTINGS
- Merge upstream voice overlay architecture with local overlay features
2026-02-20 06:23:00 +05:30
Somasundaram Mahesh e1bc16397e Revert "feat(android): make battery optimization permission optional"
This reverts commit 795e0299fa.
2026-02-19 00:56:28 +05:30
Somasundaram Mahesh 795e0299fa feat(android): make battery optimization permission optional
Remove battery exemption from required permissions gate in onboarding
and permission status bar — it is now informational only and does not
block "Get Started" or the all-permissions indicator.

Bump download links to v0.3.2.
2026-02-19 00:34:12 +05:30
Somasundaram Mahesh 5aace17096 feat(overlay): tap floating button to return to app
Detect taps vs drags in the overlay touch handler — if movement is
under 10px, launch MainActivity with REORDER_TO_FRONT so tapping
the pill from any other app brings DroidClaw back into focus.
2026-02-18 23:08:07 +05:30
Somasundaram Mahesh 4199143de8 feat(android): UI overhaul — branded theme, onboarding, chat-style home
- Replace default purple Material 3 theme with logo-derived palette
  (crimson red primary, dark charcoal surfaces, golden accent)
- Add Instrument Serif + Inter fonts for custom typography scale
- Add first-launch onboarding flow (API key + server URL, permissions)
- Restructure navigation: 2-tab bottom nav (Home + Settings), logs
  via top bar icon, permission status indicators in top bar
- Redesign HomeScreen as chat-style interface with goal/step bubbles,
  auto-scroll, bottom input bar with send/stop buttons
- Redesign SettingsScreen with Server → Connection → Permissions sections
- Redesign LogsScreen with goal banner, step badges, timestamps
- Replace default Android icon with DroidClaw logo at all densities
- Add hasOnboarded DataStore flag with auto-connect on completion
- Fix logs navigation not clearing when switching bottom tabs
2026-02-18 22:09:32 +05:30
Somasundaram MandGitHub d8659cfe17 Merge pull request #6 from msomu/feat/overlay-and-state-persistence
feat: agent overlay, stability fixes, and workflow automation
2026-02-18 18:53:49 +05:30
Somasundaram Mahesh 4d4b7059e4 feat: workflow automation via NotificationListenerService
Add workflow system that lets users describe automations in natural
language through the same input field. The server LLM classifies
input as either an immediate goal or a workflow rule, then:

- Parses workflow descriptions into structured trigger conditions
- Stores workflows per-user in Postgres
- Syncs workflows to device via WebSocket
- NotificationListenerService monitors notifications and triggers
  matching workflows as agent goals

Also cleans up overlay text and adds network security config.
2026-02-18 18:51:25 +05:30
Somasundaram Mahesh 45766621f2 fix(android): switch Ktor CIO engine to OkHttp for stable background WebSocket
CIO uses Java NIO selectors which Android's power management freezes
when the app is backgrounded, dropping the WebSocket connection. OkHttp
is Android-native and maintains connections through the OS network stack.
2026-02-18 18:51:24 +05:30
Somasundaram Mahesh 0b36d92fef fix: thread AbortSignal through LLM calls so stop_goal cancels immediately
The agent loop checked signal.aborted only at the top of each iteration,
but the LLM fetch() call (which takes seconds) never received the signal.
Now the signal is passed to fetch() and checked after LLM errors and
before the inter-step sleep, so aborting takes effect mid-step.
2026-02-18 18:51:01 +05:30
Somasundaram Mahesh 011e2be291 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.
2026-02-18 18:51:01 +05:30
Somasundaram MandGitHub b65004e015 Merge pull request #5 from msomu/main
Fix Settings UI reactivity, resolve compiler warnings, update .gitignore
2026-02-18 08:46:41 +05:30
Somasundaram Mahesh 5207e4ea9b Fix Settings UI reactivity, resolve compiler warnings, update .gitignore
- Make screen capture permission and battery optimization states reactive
- Add lifecycle observer to refresh battery status on resume
- Add lifecycle-runtime-compose dependency for non-deprecated LocalLifecycleOwner
- Replace deprecated LocalLifecycleOwner import
- Remove unused REQUEST_CODE constant
- Use KTX createBitmap() and bitmap[x,y] extensions
- Add misc.xml and junie.xml to .gitignore
2026-02-18 07:47:28 +05:30