Skip to content

Conversation

@jhr-debug
Copy link
Contributor

Core

  • Model Browser - Browse and search AI models
  • AI Playground - Mobile-optimized Input/Output tab switching
  • Templates - Save, export/import parameter configurations
  • History - Grid view with batch selection and download

Free Tools (Offline)

  • Video Enhancer (2x-4x AI upscaling)
  • Image Enhancer (ESRGAN models)
  • Background Remover
  • Image Eraser (LaMa inpainting)
  • Segment Anything
  • Video Converter (WebM/MP4)

Mobile-Specific

  • Bottom navigation instead of sidebar
  • Long-press selection mode
  • Local input parameter cache
  • Persistent Free Tools state
  • Touch-optimized UI with haptic feedback

Tech Stack

  • React 18 + TypeScript
  • Capacitor 6.2
  • shadcn/ui + Tailwind CSS
  • ONNX Runtime / TensorFlow.js

Requirements

  • Android 5.0+ (API 21)
  • Package: ai.wavespeed.mobile.

Version

  • Current: 0.8.2

Haorui Jiang and others added 29 commits December 12, 2025 03:10
- Fix security: disable webContentsDebuggingEnabled in production
- Add Vitest test framework with 44 passing tests
- Fix memory leaks in worker hooks (cleanup event listeners)
- Add ErrorBoundary component for better error handling
- Add mediaUtils for file type detection
- Add workerUtils for common worker patterns
- Remove console.log from production code
- Models page: change buttons to open docs and WaveSpeed page
- Fix Input/Output tab labels in mobile playground

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add FlappyBird canvas game component with casual difficulty
- Add GameDialog wrapper for game modal
- Add game button to MobileHeader (Gamepad2 icon)
- Add game suggestion prompt in Output view during model running
- Add game translations for all 18 languages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
… i18n support

- Add Video Converter, Audio Converter, Image Converter tools
- Add Media Trimmer and Media Merger tools
- Add Face Enhancer tool with YOLO + GFPGAN AI models
- Add i18n translations for all 18 locales (mediaTrimmer, mediaMerger, faceEnhancer)
- Fix AudioRecorder to request mic access on click instead of mount
- Add Free Tools button to Settings page header
- Improve slider component styling
- Various mobile layout improvements

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…port

## New Features
- Add WelcomePage with feature overview for first-time users
- Add BatchControls and BatchOutputGrid components for batch image generation
- Integrate batch generation into mobile Playground

## Bug Fixes
- Fix Android file picker not working (add onShowFileChooser in MainActivity.java)
- Fix batch download using openExternal for browser download
- Fix Dialog accessibility warnings (add DialogDescription)
- Fix batch results not saving to history

## Improvements
- Add download translations (downloadSuccess, downloadFailed, downloadAllSuccess)
- Add CapacitorHttp for native file downloads (bypass CORS)
- Add web fallback for downloadFile in platform service

## Documentation
- Add MOBILE_DEV_GUIDE.md with complete development guide

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix zip file upload by improving MIME type parsing in FileUpload
- Add dropzoneAccept useMemo for proper MIME type to extension mapping
- Support application/zip and application/x-zip-compressed for compatibility

- Add one-click update feature in Settings page
- Check for updates via GitHub API (looks for releases with .apk assets)
- Compare versions and show download button when update available
- Open browser to download APK when user clicks download

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ixes

- Add single and bulk delete functionality for history items
- Implement long-press to enter selection mode (mobile-friendly UX)
- Add bulk download for selected history items
- Fix slider touch interaction by removing touch-none class
- Reset batch mode when switching models in playground
- Update API key link to wavespeed.ai/accesskey
- Remove unused processing/created status filters from history
- Upgrade Gradle to 8.5 for Java 21 compatibility
- Add i18n translations for delete and download features

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add GitHub Actions workflow for mobile APK builds
- Update main README with Android download links and mobile section
- Fix mobile README: version, history status, GitHub issues link
- Add changelog for v0.8.1 features
- Update .gitignore for mobile build artifacts and temp files

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Translate mobile/README.md to English
- Keep Chinese version locally as README.zh-CN.md (gitignored)
- Update .gitignore to exclude local Chinese README

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove paths filter for tags (tags don't have path info)
- Rename APK to WaveSpeed-Mobile.apk for clarity
- Update README download link to match new APK name
- Only upload release APK to GitHub Release (not debug)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Create mobile/src/api/client.ts (mobile-specific API client with delete methods)
- Create mobile/src/components/ui/slider.tsx (touch-friendly slider without touch-none)
- Reset shared src/ files to match main branch
- Add Vite aliases for mobile overrides

This ensures mobile-app branch can be merged without conflicting with
desktop-specific changes in src/.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Resolved conflicts by using main's version for shared src/ files.
Mobile-specific code is in mobile/src/ with Vite alias overrides.

Key changes from main:
- Z-Image local generation
- Face Swapper and Face Enhancer tools
- FFmpeg-based media conversion tools
- History delete functionality
- Many bug fixes and improvements

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- MobileHistoryPage: Add responsive grid columns (2→3→4→5)
- SettingsPage: Make select triggers full width on small screens

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add connection retry logic for mobile networks
- Add dynamic timeout for file uploads based on file size
- Add abort signal support for cancellable uploads
- Add client tracking headers (X-Client-Name, X-Client-Version, X-Client-OS)
- Add maxBodyLength/maxContentLength for large files
- Keep mobile-specific features (getPredictionDetails, simplified history filters)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add CI check to detect Electron dependencies in shared files
- Add @mobile-safe comment to ModelsPage.tsx
- Prevents accidental breaking changes to mobile app

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Only trigger on mobile-app branch and mobile/** paths
- Remove shared file checks that could block desktop updates
- Desktop and mobile can now update independently

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Mobile releases triggered by 'mobile-v*' tags (e.g., mobile-v0.8.1)
- Desktop releases triggered by 'v*' tags (e.g., v1.0.48)
- Each platform has independent version and release cycle

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Link to releases page filtered by 'mobile' since mobile has separate release tags

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Mobile-specific changes should not modify shared code.
Reverted: workers, hooks, components that were accidentally modified.
This fixes the Desktop build failure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Required by upscaler.worker.ts for WASM backend support.
WASM backend is more stable than WebGL (avoids CONTEXT_LOST errors).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Properly separate mobile and desktop code:
- Mobile workers in mobile/src/workers/
- Mobile hooks in mobile/src/hooks/
- Mobile components in mobile/src/components/
- Desktop src/ unchanged (synced with main)
- Only shared: i18n translations

This ensures desktop updates don't affect mobile and vice versa.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…on fixes

- Add video preview thumbnails in History and Playground pages
- Improve download functionality with proper file naming
- Fix FlappyBird game text for mobile (remove Space key reference)
- Add missing translations for saveTemplate, game prompts, settings
- Update VideoPreview component to show first frame
- Add MobileImageEraserPage component
- Fix responsive layout issues

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update version in package.json, build.gradle, README.md
- Add responsive/adaptive design section to README
- Update changelog with v0.8.2 changes
- Add download badge to mobile README

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add @capacitor/core and @capacitor/filesystem to rollupOptions.external
in electron.vite.config.ts to prevent build errors when these mobile-only
modules are dynamically imported in shared components.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fix permission denied error when running gradlew on Linux CI runner.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove paths filter from mobile workflow so that changes to shared
code (src/) also trigger mobile builds on mobile-app branch.

This ensures compatibility issues are caught when shared components
are modified.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix version number to 0.8.2
- Fix mobile tag parsing (mobile-v prefix)
- Add startup update check (once per session)
- Implement APK download with progress bar
- Save APK to Download folder for installation
- Add REQUEST_INSTALL_PACKAGES permission
- Add translations for download progress and instructions
- Update MOBILE_DEV_GUIDE with iOS considerations and roadmap

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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.

2 participants