CI / build-and-test (push) Canceled after 0s
Fehlzeiten-/Klassenbuch-Reports (reports.do, api/polling/REPORT) sowie der JSON-RPC-Login schickten bisher keinen User-Agent, Referer oder die übrigen Header, die WebUntis' eigene WebApp immer mitsendet - führte zu HTTP 403. Header 1:1 aus einem echten Browser-Request übernommen und zusätzliche Set-Cookie-Werte (z.B. Tenant-Id) aus der Login-Antwort eingesammelt statt nur JSESSIONID/schoolname. Zusätzlich eine feste kurze Pause zwischen Login und erstem Report-Request. Die Klassenlehrer-Übersicht holt WebUntis-Daten jetzt nicht mehr eager beim Navigieren oder bei jedem Sync-Ereignis, sondern nur noch über den bestehenden "Aktualisieren"-Button - vermeidet spürbare Startlatenz und unnötige WebUntis-Last. Eingehende Sync-Ereignisse (z.B. ein auf einem anderen Gerät geschlossener Vorgang) bauen die Ansicht per RefreshFromLocalDataOnly() weiterhin sofort neu auf, aber ausschließlich aus den zuletzt geholten WebUntis-Daten plus aktuellen lokalen Daten - ohne selbst je einen WebUntis-Request auszulösen. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>