You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Established the GridStack dashboard foundation with palette window, component registry, and dense modern styling so users can compose layouts freely (2884c66, eb137fe, 2221d9a, 947a90a, 8710553).
Added component pinning with shortcut dialogs plus rounded multi-window support, keeping pinned widgets synchronized with polling and the log system (13dc8cf, df82527).
Introduced per-printer layout and shortcut persistence keyed by stable serials, a redesigned welcome screen, and layout reset
tooling for easy recovery (bf073da, da9c2cd, 2f1d9ea).
Modularized the gigantic app.ts into feature modules (auth, contexts, layout/theme, job control, material matching, spoolman, camera) plus shared utilities and UI controllers, then migrated renderer code to webpack bundles for maintainability (652e0a1, 88919cd, ead74db, 335a8bc, 5c1b90e, 4b25169, 2607b28, ff1fffe)
Spoolman Integration
Integrated Spoolman across desktop and WebUI: IPC handlers, dialogs, component registration,
config broadcasting, and AD5X safeguards (d8a1b2d, b3308bb, cc04a5a).
Migrated spool state into the main process, sequenced initialization after window creation, added connection tests/health monitoring/offline dialog, and ensured multi-context trackers stay in sync with temperature monitors (e778289, 8eccf5f, 635fb06, e3ee61d, ed90189, e0e628a).
Update, Notifications, & Services
Implemented a GitHub-powered auto-update pipeline with dialogs, sanitized release notes, macOS ZIP handling, and CI workflow updates (1f28d5d, 764d087, b93bd13).
Implemented precise job timers, centralized print/temperature monitors, Discord webhook restoration with a settings test button, and Spoolman usage tracking across contexts (8aac234, ed90189, e0e628a, 469ee23, 18d1588).
Extended Rounded UI compatibility checks and upgraded headless/bootstrap logic so configs resolve correctly before service initialization (d630743, 5669d69, 9d3691b).
Fixed RTSP streaming by always initializing services, expanding ffmpeg path detection, patching PATH propagation, and moving camera initialization to safe points (2103d28, 2cfc722, 0bbd3d0, 1d7ea08).
Removed restrictive CORS middleware, standardized NSIS artifact naming, ensured .npmrc exists in CI, corrected headless config paths, and mirrored AD5X fixes into the WebUI (5b129a5, cbe48d4, 9ba4919, 1d764c0, 5669d69, f5c85c0).
Hardened Spoolman initialization queues, temperature displays, and config race conditions so components and dialogs always hydrate with validated data (635fb06, e3a1835, 01e9bb1).
Addressed security and packaging by overriding js-yaml to 4.1.1, unifying Lucide resource paths, and cleaning dangling filament-tracker routes/config keys (6ff96c1, b424245, 8d3a2ab, 926be79).
Improved window controls hover coverage, disabled Clear Status during prints, and ensured AD5X single-color jobs always trigger material mapping (db69004, 7101310, 80c1d8e).
About Dialog
Added an about dialog with app metadata, version info (stable/pre-release detection), developer credits, and external links to GitHub/documentation. Accessible from the main drop-down menu with security-validated link opening via Electron shell (1efa7f3)
Refactored Settings Window (Backend)
Refactored settings renderer into modular section-based architecture. Extracted 9 individual section classes (AutoUpdate, DesktopTheme, Discord, InputDependency, PrinterContext, RoundedUI, Spoolman, Tab) with shared SettingsSection interface for improved maintainability and testability (77a5067)
Optimize Lucide Bundling
Replaced dynamic runtime resolution with static ESM imports using custom icon registry.
Reduced renderer.bundle.js from ~7.5 MiB to ~3 MiB through proper tree-shaking