- outlook-auth.js: one-time device-code flow against Microsoft login;
stores the refresh token in the outlook-tokens compose volume
- update-outlook.js: per-minute cron fetching the unread count and the
latest unread messages via Microsoft Graph; caches access tokens and
persists rotated refresh tokens
- Widget is hidden until the mailbox is actually authorized, so it
stays out of sight while (admin) consent is pending
- New external card for Outlook (Office 365) with the official icon
- compose: pass OUTLOOK_CLIENT_ID/OUTLOOK_TENANT/GITEA_TOKEN from .env
- README: Entra ID app registration steps and the tenant-ID hint for
directories not resolvable via the organizations endpoint
- Apply GTK-like color scheme (dark greys, #f76b2f accent) across
cards, buttons, glows and category colors
- Service cards use the official logo icons; Netbird card shows live
reachability + latency instead of a separate top widget
- Top widgets: Today (calendar events with in-progress highlighting),
Git activity (3 rows visible, scrollable), GPU with live ROCm stats
and loaded Ollama models incl. GPU/CPU split
- Open WebUI card: inline prompt line with model selection
- Calendar section grouping events by day below the services
- data.json fetch with boot retry; GPU/Ollama poll every 5 s
- Today entries wrap long titles; README documents widgets,
environment variables and the .env secrets pattern