perf(desktop): Dashboard-Aufbau in der Linux-App ohne Einblend-Animation, Melder gegen Fokus-Schuebe gedrosselt
Tessera CI/CD / Lint & Type Check (push) Successful in 49s
Tessera CI/CD / Tests (push) Successful in 1m45s
Tessera CI/CD / Desktop-Pakete bauen (push) Successful in 18s
Tessera CI/CD / Build & Publish Images (push) Successful in 4m35s

Gemessen in der echten Linux-App (WebKitGTK): Haenger beim Oeffnen des
Dashboards von 550-1100 ms auf 250-350 ms. Im alpha-Log kamen beim Oeffnen
bis zu 50 Abfragen je Sekunde von Erinnerungs- und Nextcloud-Melder; Fokus-/
Sichtbarkeitswechsel loesen jetzt hoechstens alle 10 s eine Abfrage aus.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-10-03 01:19:35 +02:00
parent 19340fcebd
commit 53a49a109f
7 changed files with 87 additions and 1 deletions
@@ -143,4 +143,16 @@ describe('ReminderNotifier', () => {
});
expect(mockList.mock.calls.length).toBe(after401 + 1);
});
it('viele Fokus-Ereignisse kurz hintereinander loesen nur eine Abfrage aus', async () => {
mockList.mockResolvedValue([]);
render(<ReminderNotifier />);
await advance(0);
await advance(15_000);
const before = mockList.mock.calls.length;
await act(async () => {
for (let i = 0; i < 50; i++) window.dispatchEvent(new Event('focus'));
await vi.advanceTimersByTimeAsync(0);
});
expect(mockList.mock.calls.length).toBe(before + 1);
});
});