jared and Claude Opus 5.5
99b0cf9c47
CI / Build & Quality Checks (push) Skipped
CI / Secret scan (gitleaks) (push) Skipped
CI / Playwright smoke (e2e) (push) Skipped
CI / Secret scan (gitleaks) (pull_request) Failing after 25s
CI / Build & Quality Checks (pull_request) Successful in 5m49s
CI / Trigger Desktop Build (pull_request) Skipped
CI / Docker image build & smoke test (pull_request) Skipped
CI / Playwright smoke (e2e) (pull_request) Successful in 24m2s
feat(notifications): Web Push for the web app, client side ( #202 )
...
Background notifications while no Lotus tab is open. Inert until
config.json lists a push gateway for the account's homeserver
(`webPush: { "<server>": { gatewayUrl, appId, vapidPublicKey } }`).
- sw.ts: `push` handler. Shows the notification unless a Lotus tab is
focused (the in-app toast covers that), silently during pause / quiet
hours (prefs mirrored from the page into Cache Storage), updates the
app badge. Clicks forward the room so the page can tell DMs apart; a
click with no tab open is held until the new window asks for it.
- swPush.ts: pure payload → notification (Sygnal webpush fields). Same
conventions as the in-app OS notifications: logo icon, room /
room:thread tag, invites to the invites page, calls with their own
tag, never any text from encrypted rooms, Reply only where the
worker can send it.
- useWebPush: subscribes this browser with the gateway's VAPID key and
registers an HTTP pusher (pushkey = p256dh, endpoint + auth in data,
events_only, our user_id in default_payload); removes it again when
turned off. Never in the desktop app.
- Settings → Notifications → "Notify when Lotus is closed" (web, only
when a gateway is configured; device-local, on by default).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
2026-11-09 17:47:06 -05:00
..
2026-09-23 19:48:29 -04:00
2026-02-22 15:14:04 +11:00
2026-07-07 23:24:08 -04:00
2026-05-21 23:30:50 -04:00
2026-07-11 13:52:36 -04:00
2026-05-21 23:30:50 -04:00
2026-09-15 13:07:32 -04:00
2026-07-02 20:20:07 -04:00
2023-06-12 16:45:23 +05:30
2026-06-02 10:34:46 -04:00
2026-05-21 23:30:50 -04:00
2026-10-24 16:15:24 -04:00
2025-07-15 22:40:16 +10:00
2024-01-21 18:20:56 +05:30
2026-09-25 18:13:47 -04:00
2024-01-21 18:20:56 +05:30
2026-09-12 14:48:35 -04:00
2026-09-12 19:46:05 -04:00
2026-09-12 19:46:05 -04:00
2026-05-23 11:26:45 -04:00
2026-09-19 12:55:01 -04:00
2026-10-30 21:19:56 -04:00
2026-09-19 00:53:24 -04:00
2026-10-20 20:33:07 -04:00
2026-10-18 00:55:29 -04:00
2026-09-18 23:15:00 -04:00
2026-09-26 22:04:54 -04:00
2026-09-19 17:17:58 -04:00
2026-09-19 01:12:25 -04:00
2026-06-30 22:34:17 -04:00
2026-10-17 20:20:12 -04:00
2026-09-26 22:04:54 -04:00
2024-06-01 00:19:46 +10:00
2026-05-21 23:30:50 -04:00
2026-11-09 17:47:06 -05:00
2026-09-19 12:27:15 -04:00
2026-05-21 23:30:50 -04:00
2025-02-10 16:49:47 +11:00
2026-05-21 23:30:50 -04:00
2026-05-22 13:24:07 -04:00
2026-09-20 14:27:23 -04:00
2026-06-13 18:52:23 -04:00
2026-10-18 00:48:46 -04:00
2026-05-21 23:30:50 -04:00
2026-06-09 22:56:06 -04:00
2025-08-13 00:12:30 +10:00
2023-10-21 12:44:21 +05:30
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-06-10 21:31:58 -04:00
2026-07-01 10:40:31 -04:00
2026-09-19 17:28:25 -04:00
2026-05-21 23:30:50 -04:00
2026-05-22 13:24:07 -04:00
2026-05-21 23:30:50 -04:00
2026-10-17 19:29:01 -04:00
2026-10-17 19:29:01 -04:00
2026-09-12 14:48:34 -04:00
2025-02-28 18:47:23 +11:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-22 17:17:26 -04:00
2024-06-01 00:19:46 +10:00
2026-05-21 23:30:50 -04:00
2023-06-12 16:45:23 +05:30
2025-08-27 22:25:49 +10:00
2026-03-09 21:39:58 +11:00
2024-06-01 00:19:46 +10:00
2026-06-03 23:15:29 -04:00
2026-10-20 20:13:04 -04:00
2026-09-28 19:39:48 -04:00
2026-09-28 19:39:48 -04:00
2023-06-12 16:45:23 +05:30
2026-05-21 23:30:50 -04:00
2024-09-14 18:54:06 +05:30
2024-06-01 00:19:46 +10:00
2026-09-19 13:05:10 -04:00
2026-07-18 21:10:33 -04:00
2025-01-26 22:53:16 +11:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-22 17:17:26 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-10-18 00:17:04 -04:00
2026-06-18 13:34:40 -04:00
2026-05-21 23:30:50 -04:00
2026-09-19 22:50:32 -04:00
2026-05-21 23:30:50 -04:00
2024-06-01 00:19:46 +10:00
2026-06-18 17:56:34 -04:00
2026-09-12 02:05:34 -04:00
2026-09-12 02:05:34 -04:00
2026-09-15 22:43:17 -04:00
2026-10-16 22:19:24 -04:00
2026-05-21 23:30:50 -04:00
2026-05-30 17:13:54 -04:00
2026-07-18 22:24:26 -04:00
2026-06-30 15:51:23 -04:00
2026-06-30 15:51:23 -04:00
2026-05-21 23:30:50 -04:00
2024-01-21 18:20:56 +05:30
2026-06-12 19:53:19 -04:00
2025-02-10 21:02:33 +11:00
2026-09-24 21:33:13 -04:00
2026-09-24 21:33:13 -04:00
2026-10-20 19:49:15 -04:00
2026-05-21 23:30:50 -04:00
2026-10-25 20:14:12 -04:00
2024-07-08 21:27:10 +10:00
2026-09-20 15:15:04 -04:00
2026-05-21 23:30:50 -04:00
2026-09-17 13:31:29 -04:00
2026-07-02 00:19:16 -04:00
2026-09-20 00:15:09 -04:00
2026-07-02 21:40:07 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-09-12 19:46:05 -04:00
2025-05-24 20:07:56 +05:30
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2025-03-23 22:09:29 +11:00
2025-03-19 23:14:54 +11:00
2026-07-07 23:32:50 -04:00
2026-10-28 22:07:03 -04:00
2026-09-12 19:46:06 -04:00
2026-05-21 23:30:50 -04:00
2025-08-13 00:12:30 +10:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-07-18 21:05:39 -04:00
2026-09-26 19:31:10 -04:00
2026-07-18 21:10:33 -04:00
2026-07-18 21:10:33 -04:00
2023-06-22 09:14:50 +10:00
2026-09-12 14:48:35 -04:00
2026-10-12 15:40:56 -04:00
2026-09-18 00:18:45 -04:00
2026-05-21 23:30:50 -04:00
2024-12-16 16:25:15 +05:30
2026-09-15 21:32:06 -04:00
2026-09-15 21:32:06 -04:00
2026-07-01 22:53:32 -04:00
2026-05-22 11:16:11 -04:00
2025-03-19 23:14:54 +11:00
2026-09-13 00:56:22 -04:00
2026-07-11 13:52:36 -04:00
2026-05-21 23:30:50 -04:00
2026-07-03 22:30:57 -04:00
2026-10-17 20:55:05 -04:00
2026-10-17 20:55:05 -04:00
2026-05-21 23:30:50 -04:00
2025-02-10 16:49:47 +11:00
2026-09-19 23:06:02 -04:00
2026-11-04 21:25:22 -05:00
2026-09-12 20:28:42 -04:00
2026-09-12 19:46:05 -04:00
2026-09-12 19:46:05 -04:00
2026-10-25 11:56:24 -04:00
2026-05-21 23:30:50 -04:00
2026-07-07 22:29:47 -04:00
2024-06-01 00:19:46 +10:00
2026-05-21 23:30:50 -04:00
2026-09-19 23:25:49 -04:00
2024-01-21 18:20:56 +05:30
2024-07-30 22:18:59 +10:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-07-09 23:30:08 -04:00
2026-10-18 00:09:14 -04:00
2026-09-23 15:20:22 -04:00
2026-09-23 15:20:22 -04:00
2026-05-21 23:30:50 -04:00
2026-07-01 09:07:03 -04:00
2026-09-12 20:28:41 -04:00
2026-07-02 20:56:27 -04:00
2026-09-23 19:32:42 -04:00
2026-07-01 09:07:03 -04:00
2026-07-01 09:07:03 -04:00
2026-07-02 20:56:27 -04:00
2026-07-01 09:07:03 -04:00
2026-09-23 22:04:48 -04:00
2026-09-23 21:53:48 -04:00
2026-09-23 19:48:23 -04:00
2026-09-30 19:00:10 -04:00
2026-07-01 09:07:03 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-06-28 16:47:50 -04:00
2026-07-19 02:47:27 -04:00
2026-07-01 23:43:20 -04:00
2026-05-22 13:24:07 -04:00
2026-05-21 23:30:50 -04:00
2026-09-20 00:28:47 -04:00
2026-05-20 21:26:18 -04:00
2026-05-21 23:30:50 -04:00
2026-07-07 23:24:08 -04:00
2026-10-28 06:28:36 -04:00
2026-05-21 23:30:50 -04:00
2026-05-21 23:30:50 -04:00
2026-05-23 12:19:06 -04:00
2026-05-21 23:30:50 -04:00
2026-05-22 13:24:07 -04:00
2026-10-11 22:07:18 -04:00
2026-11-09 17:47:06 -05:00
2023-10-06 08:14:06 +05:30