9 Commits

Author SHA1 Message Date
bc96fed884 fix: correct TemplateResponse arg order (request, name, context)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 21:48:24 +02:00
2f553295cb fix: TemplateResponse for Starlette 1.0 (request as keyword arg)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 21:46:39 +02:00
6f52c43aca fix: use keyword args for TemplateResponse (Starlette 0.40+ compat)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 21:45:13 +02:00
40c9607598 fix: clear old auth record before device code flow to force fresh login
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 21:22:03 +02:00
dd9e2f4acd fix: use allow_unencrypted_storage for headless Linux token cache
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 21:15:16 +02:00
3ddb3ce8c4 fix: pin msgraph-core to <1.0.0 (v1.x broke GraphClient API)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 21:13:21 +02:00
63d8ee3e99 fix: use cp1252 encoding for config.cfg (Windows umlauts)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 21:11:19 +02:00
a41849ff7d docs: add README with installation and usage instructions
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 20:49:59 +02:00
5267baf0b4 feat: rewrite busylight as FastAPI web application with SQLite
Replace the standalone Python script + config.cfg with a full web
application featuring:
- FastAPI backend with REST API
- SQLite database (config, state, activity log separated)
- Bootstrap 5 web interface for configuration
- Pages: Dashboard, Users, Devices, Assignments, Color Rules, Settings, Log
- APScheduler background polling for Teams presence + AIDA status
- systemd service file for Linux deployment
- Migration script to import existing config.cfg data

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 20:46:33 +02:00