Release v0.3.1
DroidMind 0.3.1 is a major release that significantly enhances the project's architecture, user experience, and feature set. This release includes a comprehensive documentation framework, unified tool interfaces, improved error handling, and enhanced security features. The project now offers a more maintainable codebase with better organization and consistent API design.
✨ Highlights
📝 Comprehensive Documentation
Added extensive MkDocs-based documentation with detailed user guides, reference materials, and examples to make DroidMind more accessible to new users.
♻️ Unified Tool Interfaces
Refactored all tool modules into consistent, action-based interfaces that provide a more intuitive and maintainable API for developers and AI assistants.
🔒️ Enhanced Security Framework
Implemented a robust security system with risk categorization, command sanitization, and path protection to ensure safe device operations.
🐳 Docker Support
Added containerized deployment with multi-stage builds for smaller image size and flexible transport mode support.
✨ New Features
- Added comprehensive MkDocs documentation framework with detailed user guides and reference materials
- Added Docker support for containerized deployment with multi-stage build for smaller image size
- Implemented advanced diagnostic tools for bug reports and heap dumps
- Added UI automation tools for device interaction (tap, swipe, input_text, press_key, start_intent)
- Added comprehensive security framework with risk categorization and command sanitization
- Added file logging capabilities with automatic directory creation
- Added 'monkey' command to allowed shell commands list for UI/application stress testing (#4)
- Added 8 new diagnostic prompts for device analysis and troubleshooting
♻️ Refactoring
- Refactored all tool modules (app, device, UI, log, diagnostics, file) into unified operations with action parameters
- Moved app manifest functionality from resources to app_management package
- Moved logging functionality from resources to tools package
- Moved device info code from resources to tools package
- Refactored screenshot capture with improved file handling and random filenames
- Refactored bug report handling for better code organization with dedicated helper methods
- Migrated from mypy to pyright for type checking with better starlette type support
🔧 Improvements
- Enhanced CI/CD workflow with improved structure, documentation build, and Docker image publishing
- Added development scripts for project maintenance (lint.py and release.py)
- Updated dependencies to latest versions for better compatibility and features
- Added project branding with new logo and enhanced visual identity
- Changed default port from 6463 to 4256 (h.a.l.o) for better consistency (#3)
- Standardized Android tool naming to android- prefix for consistency
🐛 Bug Fixes
- Fixed release workflow issues and simplified the release process
- Fixed serial decoding in device queries for better TCP/IP device handling
- Improved screenshot security with temporary hidden filenames and timestamps
- Enhanced error handling and output management across the ADB stack
📝 Documentation
- Added online documentation badge to README for better discoverability
- Added comprehensive source code documentation with full type annotations
- Updated app management documentation with new app info tools
🔧 Upgrade Notes
- Tool naming has been standardized with android- prefix (e.g., android-app, android-ui, android-diag)
- Default server port has changed from 6463 to 4256
- Type checking now uses pyright instead of mypy
📊 Metrics
- Total Commits: 81
- Files Changed: 422
- Insertions: 45254
- Deletions: 31525
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Full Changelog: https://github.com/hyperb1iss/droidmind/commits/v0.3.1