- fetchWithTimeout now rejects non-2xx HTTP status codes
- normalizeStats takes system object, reads dbPath from config
- Inventory special-cased (no longer syncs GitHub)
- dashboard.html detects HTML/auth redirect and shows reload link
- dashboard-systems.json: add dbPath for all UseCaseGen apps