Skip to content

Release 0.9.12

Choose a tag to compare

@DiMoGro1 DiMoGro1 released this 26 Dec 08:28
· 261 commits to main since this release

πŸš€ 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.