# TECH-CHANGELOG This changelog documents technical and developer-relevant changes included in public releases. For development workspace changes, see DEV-CHANGELOG.md. Not all changes here are reflected in the user-facing changelog (`program-info.json`), and not all UI/feature changes are repeated here. Some changes (e.g., backend refactoring, API adjustments, infrastructure, developer tooling, or internal logic) may only appear in TECH-CHANGELOG.md. For UI/feature changes, see `dashboard/public/program-info.json`. --- ## 2025.1.0-alpha.13 (2025-10-19) - πŸ—“οΈ Events/API: - Implemented new `webuntis` event type. Event creation now resolves the URL from the system setting `supplement_table_url`; returns 400 if unset. - Removed obsolete `webuntis-url` settings endpoints. Use `GET/POST /api/system-settings/supplement-table` for URL and enabled state (shared for WebUntis/Vertretungsplan). - Initialization defaults: dropped `webuntis_url`; updated `supplement_table_url` description to β€œVertretungsplan / WebUntis”. - 🚦 Scheduler payloads: - Unified Website/WebUntis payload: both emit a nested `website` object `{ "type": "browser", "url": "…" }`; `event_type` remains either `website` or `webuntis` for dispatch. - Payloads now include a top-level `event_type` string for all events to aid client dispatch. - πŸ–₯️ Frontend/Dashboard: - Program info updated to `2025.1.0-alpha.13` with release notes. - Settings β†’ Events: WebUntis now uses the existing Supplement-Table URL; no separate WebUntis URL field. - Event modal: WebUntis type behaves like Website (no per-event URL input). - πŸ“– Documentation: - Added `MQTT_EVENT_PAYLOAD_GUIDE.md` (message structure, client best practices, versioning). - Added `WEBUNTIS_EVENT_IMPLEMENTATION.md` (design notes, admin setup, testing checklist). - Updated `.github/copilot-instructions.md` and `README.md` for the unified Website/WebUntis handling and settings usage. Notes for integrators: - If you previously integrated against `/api/system-settings/webuntis-url`, migrate to `/api/system-settings/supplement-table`. - Clients should now parse `event_type` and use the corresponding nested payload (`presentation`, `website`, …). `webuntis` and `website` should be handled identically (nested `website` payload). ## 2025.1.0-alpha.12 (2025-10-19) - πŸ› οΈ Backend: Seeded presentation defaults (`presentation_interval`, `presentation_page_progress`, `presentation_auto_progress`) in system settings; applied on event creation. - πŸ—ƒοΈ Data model: Added `page_progress` and `auto_progress` fields to `Event` (with Alembic migration). - πŸ—“οΈ Scheduler: Now publishes only currently active events per group (at "now"); clears retained topics by publishing `[]` for groups with no active events; normalizes naive timestamps and compares times in UTC; presentation payloads include `page_progress` and `auto_progress`. - πŸ–₯️ Dashboard: Settings β†’ Events tab now includes Presentations defaults (interval, page-progress, auto-progress) with load/save via API; event modal applies defaults on create and persists per-event values on edit. - πŸ“– Docs: Updated README and Copilot instructions for new scheduler behavior, UTC handling, presentation defaults, and per-event flags. --- ## 2025.1.0-alpha.11 (2025-10-16) - ✨ Settings page: New tab layout (Syncfusion) with role-based visibility – Tabs: πŸ“… Academic Calendar, πŸ–₯️ Display & Clients, 🎬 Media & Files, πŸ—“οΈ Events, βš™οΈ System. - πŸ› οΈ Settings (Technical): API calls now use relative /api paths via the Vite proxy (prevents CORS and double /api). - πŸ“– Docs: README updated for settings page (tabs) and system settings API. ## 2025.1.0-alpha.10 (2025-10-15) - πŸ” Auth: Login and user management implemented (role-based, persistent sessions). - 🧩 Frontend: Syncfusion SplitButtons integrated (react-splitbuttons) and Vite config updated for pre-bundling. - πŸ› Fix: Import error β€˜@syncfusion/ej2-react-splitbuttons’ – instructions added to README (optimizeDeps + volume reset). ## 2025.1.0-alpha.9 (2025-10-14) - ✨ UI: Unified deletion workflow for appointments – all types (single, single instance, entire series) handled with custom dialogs. - πŸ”§ Frontend: Syncfusion RecurrenceAlert and DeleteAlert intercepted and replaced with custom dialogs (including final confirmation for series deletion). - πŸ“– Docs: README and Copilot instructions expanded for deletion workflow and dialog handling. ## 2025.1.0-alpha.8 (2025-10-11) - 🎨 Theme: Migrated to Syncfusion Material 3; centralized CSS imports in main.tsx - 🧹 Cleanup: Tailwind CSS completely removed (packages, PostCSS, Stylelint, config files) - 🧩 Group management: "infoscreen_groups" migrated to Syncfusion components (Buttons, Dialogs, DropDownList, TextBox); improved spacing - πŸ”” Notifications: Unified toast/dialog wording; last alert usage replaced - πŸ“– Docs: README and Copilot instructions updated (Material 3, centralized styles, no Tailwind) ## 2025.1.0-alpha.7 (2025-09-21) - 🧭 UI: Period selection (Syncfusion) next to group selection; compact layout - βœ… Display: Badge for existing holiday plan + counter β€˜Holidays in view’ - πŸ› οΈ API: Endpoints for academic periods (list, active GET/POST, for_date) - πŸ“… Scheduler: By default, no scheduling during holidays; block display like all-day event; black text color - πŸ“€ Holidays: Upload from TXT/CSV (headless TXT uses columns 2–4) - πŸ”§ UX: Switches in a row; dropdown widths optimized ## 2025.1.0-alpha.6 (2025-09-20) - πŸ—“οΈ NEW: Academic periods system – support for school years, semesters, trimesters - πŸ—οΈ DATABASE: New 'academic_periods' table for time-based organization - πŸ”— EXTENDED: Events and media can now optionally be linked to an academic period - πŸ“Š ARCHITECTURE: Fully backward-compatible implementation for gradual rollout - βš™οΈ TOOLS: Automatic creation of standard school years for Austrian schools ## 2025.1.0-alpha.5 (2025-09-14) - Backend: Complete redesign of backend handling for group assignments of new clients and steps for changing group assignment. ## 2025.1.0-alpha.4 (2025-09-01) - Deployment: Base structure for deployment tested and optimized. - FIX: Program error when switching view on media page fixed. ## 2025.1.0-alpha.3 (2025-08-30) - NEW: Program info page with dynamic data, build info, and changelog. - NEW: Logout functionality implemented. - FIX: Sidebar width corrected in collapsed state. ## 2025.1.0-alpha.2 (2025-08-29) - INFO: Analysis and display of used open-source libraries. ## 2025.1.0-alpha.1 (2025-08-28) - Initial project setup and base structure.