Add Termux/Termux-command support, new providers (Groq, Cloudflare, Puter) and feedback prefs#95
Conversation
There was a problem hiding this comment.
Review Summary
I've reviewed the PR that adds support for Termux commands, new API providers (Groq, Cloudflare, Puter), and feedback preferences for app/Termux availability. The changes add new command types, provider configurations, and preference utilities as described.
The implementation appears functional overall. The new Command.TermuxCommand type is properly integrated into the command parser and accessibility service, and the feedback preference utilities follow the existing pattern for state management.
All changes follow the existing code patterns and structure in the codebase. The additions are primarily new functionality rather than modifications to existing critical paths.
You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.
Motivation
Description
ApiProviderentriesGROQandCLOUDFLARE, updatedApiKeyDialogto load keys for those providers, include them in the provider chips list, and added provider-specific URLs and informationalToasts for Puter and Cloudflare.ModelOptionentries for Groq and Cloudflare models and added model hint strings inMenuScreenfor these models.Commandsealed class withTermuxCommandand updatedCommandParserto recognizeTermux("...")patterns and log parsed Termux commands.executeTermuxCommandinScreenOperatorAccessibilityServicewhich attempts to dispatch a Termux Tasker intent, and added handling to mark Termux missing viaTermuxFeedbackPreferenceswhen dispatch fails.AppOpenFeedbackPreferencesandTermuxFeedbackPreferencesutility objects to persist and consume one-shot feedback flags about app/Termux not found, and wired consumption intoPhotoReasoningViewModelso enriched screen info can include those diagnostics.TrialManagerto prohibit trial extension, and updatedSystemMessagePreferencesdefault message to includeTermux("command")guidance.Testing
./gradlew assembleDebugwhich completed successfully../gradlew testand they passed locally.Codex Task