Repository navigation
v2.0.80
🚀 Performance: Logcat Virtualization
Solution: Implemented react-virtuoso to render the Logcat stream.
Result: The UI now remains fluid and responsive even with thousands of log lines, as only the visible items are rendered to the DOM.
Behavior: It automatically scrolls to the bottom for new logs, but intelligently pauses auto-scroll if you scroll up to inspect history.
🛡️ Security: Backend Hardening
Mutex Safety: Replaced all unsafe .unwrap() calls on Mutex locks in appium.rs and shell.rs with safe error propagation. This prevents the entire application from crashing if a background thread fails.
File Scope: Reviewed fs:scope. We maintained the wildcard ** for compatibility as prioritized, but improved the surrounding code quality.
⚡ Backend Optimization
Smart Log Reading: Modified logs.rs to read only the headers and footers of large XML files in the History tab. This drastically reduces memory usage and load times for large test suites.
💎 Code Quality
Consolidation: Unified the "Open File/Folder" logic in the Rust backend.
Linting: Fixed TypeScript issues and imports related to the virtualization libraries.
The application is stable, faster, and more secure
🔳 RunConsole Optimization & UX Overhaul
Performance: Refactored log parsing to reduce complexity, eliminating UI lag during long test runs.
Real-Time Feedback: Implemented a Live Buffer view with a "Running" indicator/spinner. Users can now see logs streaming instantly for the active test instead of waiting for the test to finish (PASS/FAIL) to see the output.
Strict Nesting Logic: Fixed structural bugs where sub-suites with similar names (e.g., "Suite A" and "Suite A Cloud") were incorrectly nested. Introduced explicit SuiteStartNode detection and exact name matching to guarantee the correct hierarchy.
Smart Filtering: Redundant "Suite Header" text lines are now hidden from the UI (but preserved in data structure), and Artifact links (Output/Log/Report) are immediately flushed and clickable.
⚖️ Execution Stability:
Test Stopping: Replaced complex stop logic with an asynchronous Force Kill. This eliminated the UI Freeze that occurred when trying to stop a test on Windows.
Appium Startup: Resolved an issue where the Appium server took too long to respond, causing "Run Selected" failures. Added robust status checks.
✨ New Apps Tab:
APK Installation: Installation now runs in the background (async), preventing the app from freezing. Added translated Toast notifications for success and error.
Friendly Names: The app list now displays readable names (e.g., "Chrome" instead of com.android.chrome) where possible, with logic to handle duplicate names.
Tools: Added buttons to Sort (Name/Package) and Refresh the list.
### 🪟 Window/Modal System:
Overlay Fix: Confirmation windows now cover the entire screen (including the header), fixing a visual bug where the top of the app was not dimmed.
Standardization: Created and implemented standard components (ConfirmationModal and WarningModal) throughout the system (Settings, Tests, File Explorer).
New Warnings: When trying to start a test on a busy device and When incorrectly selecting a folder in file mode.
### 🗺️ Translations:
Several translation keys (PT, EN, ES) were added to cover all new error, success, and confirmation messages.
Full Changelog: v2.0.78...v2.0.80