CI / Build & Quality Checks (push) Skipped
CI / Secret scan (gitleaks) (push) Skipped
CI / Playwright smoke (e2e) (push) Skipped
CI / Build & Quality Checks (pull_request) Successful in 3m16s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Secret scan (gitleaks) (pull_request) Successful in 8s
CI / Playwright smoke (e2e) (pull_request) Successful in 19m2s
New end-to-end coverage for two Lotus features the October audit listed as untested, checked against the server at each step: - scheduled-messages.spec: schedule (tray + one delayed event on the server), Send now (arrives once, delayed event gone), cancel (gone from the server, never sent). - offline-outbox.spec: offline, three messages show "Queued. Will send when you are back online"; back online, the server has each exactly once and in order; the queued marks clear. The scheduled-messages test found a real bug: Synapse rate-limits delayed event management per user, and a quick Send now then Cancel got a 429, so the tray showed "Could not cancel this message" although nothing was wrong. All scheduled-message calls (schedule, list, send now, cancel, restart) now wait out a 429 (Retry-After, bounded) and retry; scheduling reuses its txnId. Unit test for the retry helper. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017PCb59uY3UKqDqt7B6hzd5