Repository navigation
Release 0.9.12
π Major Architecture Overhaul & SQLite Telemetry
This release represents a comprehensive modernization of the application architecture, moving from a static frontend and CSV logging to a robust Vue.js application and database-backed telemetry.
β¨ Key Changes
ποΈ Complete Frontend Rewrite (Static JS β Vue.js)
We have fully migrated the frontend from static HTML/JavaScript to a modern Vue.js 3 Single Page Application (SPA).
- Motivation: The legacy static-site architecture had become unmaintainable. Managing state across disparate files and ensuring UI consistency was increasingly difficult and error-prone.
- Improvements:
- Component-Based Architecture: Modular, reusable components greatly improve code organization and maintainability.
- Robust State Management: Implemented Pinia for predictable, centralized management of device application state.
- Unified UX: A consistent design language and global modal system replace the disjointed legacy UI.
πΎ SQLite Telemetry Backend
The file-based CSV logging system has been replaced with an SQLite database engine.
- Why: CSV files were prone to concurrency issues and made querying historical data inefficient.
- Benefits:
- Performance: Instantaneous retrieval of historical data for graphing.
- Reliability: ACID transactions prevent data corruption during writes.
- Scalability: Supports complex querying for the new Telemetry Explorer efficiently.
π Critical Fixes
- fix: Hybrid approach for FindPort with guaranteed cleanup
- Implemented a hybrid approach for serial port detection to solve hanging issues.
- Keeps a goroutine for hard timeout protection against hanging ports.
- Stores the port handle in a shared variable for reliable external cleanup.
- Force closes the port when the main thread times out, preventing both process hangs and orphaned port handles.
Run npm run build in AscomAlpacaProxy/frontend-vue before building the Go binaries to ensure these changes are included.