Repository navigation
Release Notes
What's Changed
Security & Hardening
- WebView Access Restrictions: Hardened local file access and URL schemes within the WebView to prevent unauthorized device file reading.
- Path Traversal Protection: Added path normalization and boundary validation to the embedded asset web server.
- Structured Payload Validation: Replaced exception-driven JSON parsing with explicit key verification and structured
400 Bad Requesthandling across all POST endpoints.
Concurrency & Stability
- Lifecycle & Memory Management: Decoupled background HTTP server operations from the Activity context to eliminate memory leaks during lifecycle events.
- Thread-Safe State & Storage: Added synchronization monitors across
SharedPreferencesand applied volatile state tracking across NanoHTTPD worker threads.
Network & UI Synchronization
- LAN IP Resolution: Improved network interface discovery to prioritize active physical interfaces (
wlan,eth) while filtering out virtual adapters, VPN tunnels (e.g. Tailscale), and bridge networks. - Dynamic Port Fallback: Fixed an on-screen display desync to ensure fallback web server ports are immediately reflected in the configuration UI.
Build & CI/CD
- Automated CI/CD Versioning: Integrated dynamic
versionCodeandversionNameresolution into the GitHub Actions release workflow. - Modern Gradle DSL: Migrated to the modern
kotlin.compilerOptionsDSL and unified all project dependencies under Gradle Version Catalogs (libs.versions.toml).
Full Changelog: v1.1.3...v1.1.4