Ben/skill file uploader - #8
Open
vahid-ai wants to merge 26 commits into
Open
Conversation
Addresses findings from SECURITY_AUDIT.mdx: - Fix hostname verifier to use platform default when not pinning (GatewayTls) - Escape shell metacharacters in WiFi SSID/password (ConnectivitySkill) - Disable ADB backup (allowBackup=false) and add proper exclusion rules - Change FLAG_MUTABLE to FLAG_IMMUTABLE on PendingIntents (Termux, Aurora) - Remove wallet addresses from log statements (MessengerSkill) - Add caller UID validation to AiNameProvider ContentProvider - Add manifest-level permission to exported HeartbeatBindingService and LauncherBindingService Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix critical and high security audit findings
…ras, RUN_COMMAND permission not requested at runtime Problems found: 1. TermuxCommandRunner used PendingIntent.FLAG_IMMUTABLE which silently drops fill extras on API 31+. Termux sends stdout/stderr/exitCode via PendingIntent.send(ctx, code, fillIntent), but with IMMUTABLE the fillIntent extras are ignored — so the result callback always arrived with empty stdout, empty stderr, and exitCode -1. 2. com.termux.permission.RUN_COMMAND is declared as a dangerous (runtime) permission by Termux, not a normal/install-time permission. Declaring it in AndroidManifest.xml alone is insufficient — it must be granted at runtime like camera or contacts permissions. 3. The Termux diagnostic in debug settings only showed "non-zero exit code" without checking the internalError field, RUN_COMMAND permission status, or service resolution — making it hard to diagnose failures. Fixes: - Change FLAG_IMMUTABLE to FLAG_MUTABLE in TermuxCommandRunner so Termux result extras (stdout, stderr, exitCode) are delivered - Add requiredPermissions = ["com.termux.permission.RUN_COMMAND"] to TermuxSkill's termux_run_command tool so the app's permission flow requests it automatically before execution - Improve Termux debug diagnostic: check RUN_COMMAND permission grant status, verify RunCommandService resolves, show internalError field, provide specific failure guidance for common issues - Add TermuxConnectionTest instrumented test that isolates each failure point: installation, permission, service resolution, broadcast roundtrip, FLAG_IMMUTABLE extras bug, and end-to-end command execution - Make chat submit button blue when idle (minor UI change) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The diagnostic tried to access Termux's private data dir (/data/data/com.termux/) which the shell user (uid 2000) cannot read. The old code did a raw `ls` with no privilege escalation; the updated code used `run-as com.termux` which only works for debuggable apps (release Termux isn't debuggable). Now the diagnostic: verifies Termux is installed via `pm path`, tries `run-as` first at adb level, falls back to direct execution for permissive SELinux / custom ROMs, and gives clear actionable guidance when all strategies fail instead of a dead-end error. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add navigationBarsPadding() to ChatScreen and DgenBackNavigationBackground so content respects the device nav bar dynamically across all screen sizes and navigation modes. Replace hardcoded 32dp bottom padding in ChatInputBar with 8dp since insets are now handled by the parent. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Redesign the app's theme system around Material 3 color roles with blue (#2196F3) as primary, pure black backgrounds, and white text. Replace dgen library theme imports with local compat aliases mapped to M3 equivalents. Update typography to use SansSerif across all M3 slots. Tone down ChadBackground effects for a cleaner look. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace dgen SystemColorManager with MaterialTheme.colorScheme.primary across all screens. Change text colors, icon tints, cursor colors, and input field text from white to blue (#2196F3). Remove SystemColorManager refresh calls that are no longer needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…e setup - Add GitHub Actions workflow that builds signed release + debug APKs on tag push or manual trigger with auto-versioning - Fix release build by adding empty-string DEBUG_* buildConfigField defaults to the release build type - Rewrite README build/release sections with end-to-end setup guide covering local builds, signing, GitHub Secrets, and CI releases - Add troubleshooting section for common build and release errors Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add CI release workflow and build/release documentation
Filter tags with v*.*.* instead of v* so single-number tags (v19, v18, etc.) are ignored during auto-versioning. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Use v*.*.* glob to skip non-semver tags (v19, v18, etc.) - Use printf instead of heredoc to avoid leading whitespace in property keys Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…lchain Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The free GitHub runner (7GB RAM) was running out of memory building both release and debug APKs in parallel with only 2GB heap for R8 minification. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix release workflow and update README
Allow users to enter any OpenRouter model ID via a new "Add Custom Model" button in the model selection screen. Custom models are persisted, shown in the dropdown, and passed directly to the OpenRouter API. Refactored AgentLoop to accept modelId/maxTokens strings instead of the AnthropicModels enum so arbitrary model IDs work end-to-end. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add custom OpenRouter model support
Adds an "Upload" button in Settings > Registered Skills that opens a file picker to select a .md skill file from the device. The file is parsed for its frontmatter name, saved to the ClawHub managed skills directory, and registered through the same pipeline as ClawHub downloads so it immediately appears with enable/disable toggle. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.