Skip to content

Fix Android 14 controls and split Claude/OpenCode routing - #3

Merged
toolazytoname merged 1 commit into
mainfrom
agent/fix-mobile-ai-control-routing
Aug 9, 2026
Merged

Fix Android 14 controls and split Claude/OpenCode routing#3
toolazytoname merged 1 commit into
mainfrom
agent/fix-mobile-ai-control-routing

Conversation

@toolazytoname

Copy link
Copy Markdown
Owner

What changed

  • Add five independent native controls for Happy, llama.cpp, Claude Code + Happy models, OpenCode Web, and OpenCode models.
  • Route widget actions through a short-lived foreground Activity so Android 14 permits Termux service startup.
  • Split Claude/Happy model selection (ai-model) from OpenCode model selection (oc-model).
  • Add OpenCode Web lifecycle controls and browser launch.
  • Make Happy's Kali PRoot environment compatible with Claude Code's root-safety check using the sandbox marker.
  • Document and test the two independent model routes in English and Chinese.

Why

The previous AppWidget BroadcastReceiver attempted to start Termux's service directly and Android 14 rejected it with BackgroundServiceStartNotAllowedException. Model switching also coupled Claude Code and OpenCode, so changing one agent could silently rewrite the other.

Impact

Users get readable, independent controls. Selecting a model changes configuration only; it does not start or stop Happy, llama.cpp, or OpenCode Web. Local Qwen remains an OpenCode-only option.

Validation

  • ./scripts/verify.sh
  • git diff --check
  • Android 0.5.7 debug APK builds and verifies with APK Signature Schemes v2/v3.
  • OnePlus 8T real-device checks:
    • Claude CLI through the OpenAI relay returned CLAUDE_OPENAI_OK.
    • Happy mobile round trip returned HAPPY_SANDBOX_OK.
    • OpenCode relay returned OPENCODE_OPENAI_FIXED_OK.
    • OpenCode local local-lite returned LOCAL_LITE_OK.
    • OpenCode Web opened on loopback and stopped cleanly.
    • Claude route activation left the OpenCode config hash unchanged.
    • No new background-service exception after widget/page actions.

@toolazytoname
toolazytoname merged commit f27fa8d into main Aug 9, 2026
2 checks passed
@toolazytoname
toolazytoname deleted the agent/fix-mobile-ai-control-routing branch August 9, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant