3df670c9f8
Merge pull request 'Add email digest schedule controls to Alert Settings' ( #5 ) from flotilla-fc1-email-digests-let-users-choose-delivery--f63 into email-notifications
...
CI / lint-check-build (pull_request) Successful in 4m17s
Reviewed-on: #5
Reviewed-by: matt <matt@lorentz.is>
2026-09-23 20:37:15 +00:00
Agent
f9878fdff1
feat(settings): merge email digest schedule controls onto email-notifications
...
CI / lint-check-build (pull_request) Successful in 3m19s
Resolves PR #5 conflict resolution: rebased the digest-schedule work (from
flotilla-fc1, built against dev) onto the email-notifications branch.
- settings.ts: add emailHour/emailMinute/emailDayOfWeek/emailTimezone to
SettingsValues + defaults (17:00, device timezone, dayOfWeek undefined)
- alerts/+page.svelte: keep the email-notifications card (gated on
EMAIL_NOTIFICATION_SERVER, communities warning, error state, NIP-98
register/enable flow); add HH:MM time input + weekly day-of-week picker;
weekly select defaults dayOfWeek to Monday; publish schedule fields via
AppData publishSettings
- mail/index.ts: register() accepts hour/minute/dayOfWeek/timezone and PUTs
them to mailship; enable()/sync() pass stored schedule through
Dropped dev-based duplicates: src/app/mail.ts, VITE_MAILSHIP_URL (.env +
env.ts) — the email-notifications mail adapter and
VITE_EMAIL_NOTIFICATION_SERVER are canonical. PUT contract matches mailship
PR #28 : {email, frequency, hour, minute, dayOfWeek, timezone}.
2026-09-23 14:09:39 -04:00
mplorentz
609a2f65ea
Email digest: GET-first restore on boot so reloads stop re-sending confirmations
...
CI / lint-check-build (pull_request) Successful in 3m25s
Mail.sync's boot reconcile now GETs the existing subscription (NIP-98
auth) before deciding what to do. When a subscription already exists for
the pubkey with the same email and frequency, its key/callback are
restored in memory and the PUT is skipped entirely. Only a matching
subscription missing the requested params triggers a PUT, so a page
refresh of an unconfirmed address no longer makes mailship re-send a
confirmation email (previously each reload sent one).
2026-09-22 12:31:56 -04:00
mplorentz
63cf801ef1
Fix settings hydration
CI / lint-check-build (pull_request) Successful in 3m23s
2026-09-21 16:14:02 -04:00
mplorentz
b90a20424e
Fix Mail.sync to only fire when the user saves, or when contents are loaded from disk
CI / lint-check-build (pull_request) Successful in 4m9s
2026-09-21 11:54:19 -04:00
hudson
ce8920123f
Keep signer-not-responding toast; drop only the dead Details action button
CI / lint-check-build (pull_request) Successful in 4m14s
2026-09-17 16:40:09 -04:00
hudson
1cff79dba2
Remove signer-not-responding toast with dead Details link
CI / lint-check-build (pull_request) Failing after 1m40s
2026-09-16 15:13:47 -04:00
Agent
3981ed9608
fix email notifications: match mailship PUT API with full-URL NIP-98 and payload tag
...
CI / lint-check-build (pull_request) Successful in 3m19s
- register(): sign makeHttpAuth with full URL (/subscription/email),
method PUT, and serialized body so both u-tag and payload tag match
mailship's verifyNip98Auth. Drop pubkey from request body (server
reads it from the auth event).
- unregister(): sign makeHttpAuth with full URL (/subscription/:key)
and method DELETE, matching mailship's u-tag expectation.
Closes PR #4
2026-09-16 13:50:47 -04:00
mplorentz
d6f0e47edf
debounce subscription syncing
CI / lint-check-build (pull_request) Successful in 4m4s
2026-09-03 13:43:10 -04:00
mplorentz
cbba1035e7
Fix bug where email 30390s would be deleted if push notifications were toggled off.
CI / lint-check-build (pull_request) Has been cancelled
2026-09-03 13:04:29 -04:00
mplorentz
42561c8c02
Use salt instead of device id for email settings
2026-09-03 12:47:36 -04:00
mplorentz
2b2515b1be
check for nip-9a support
2026-09-03 12:40:28 -04:00
mplorentz
a7b948740c
Omit email digest UI if env variable is not set.
2026-09-03 12:03:34 -04:00
mplorentz
8047a4f084
Always PUT email subscription (remove GET-first lookup)
...
CI / lint-check-build (pull_request) Has been cancelled
Mailship's /subscription/email is now an idempotent PUT upsert. Drop the
lookup-before-register dance and always PUT the settings; mailship skips the
confirmation email when nothing changed or only the frequency changed.
2026-09-03 11:52:31 -04:00
mplorentz
3e892d76f6
Sync email settings only when changed
CI / lint-check-build (pull_request) Has been cancelled
2026-09-01 15:59:30 -04:00
mplorentz
83a8bb1572
Send include_event tag with 30390
CI / lint-check-build (pull_request) Has been cancelled
2026-08-27 15:44:37 -04:00
mplorentz
dd1182cb32
Save email notification prefs to app settings
CI / lint-check-build (pull_request) Has been cancelled
2026-08-27 15:08:37 -04:00
5c027dd823
Accept VITE_* build args for branding/feature overrides
...
CI / lint-check-build (pull_request) Has been cancelled
Self-hosted deployments can now pass --build-arg VITE_PLATFORM_URL,
VITE_PLATFORM_NAME, VITE_EMAIL_NOTIFICATION_SERVER, etc. to override the
tracked .env defaults at build time. Unset args fall back to .env values
via scripts/build.sh's exported-env restore.
2026-08-25 11:03:57 -04:00
Agent
49df66a58a
Fix error message when saving email prefs fails
CI / lint-check-build (pull_request) Has been cancelled
2026-08-25 10:32:51 -04:00
Agent
bced45814b
Merge branch 'dev' into email-notifications
2026-08-25 10:25:53 -04:00
Agent
e3e2e2f57c
Onboarded to fragua
CI / lint-check-build (push) Has been cancelled
2026-08-25 10:23:35 -04:00
mplorentz
c0f545350c
Merge branch 'dev' into email-notifications
CI / lint-check-build (pull_request) Has been cancelled
2026-08-24 14:40:44 -04:00
mplorentz
645174447d
Merge branch 'dev' into email-notifications
2026-08-24 14:36:08 -04:00
Jon Staab
637be41a8b
Await deletions
CI / lint-check-build (push) Waiting to run
2026-08-22 12:36:25 -07:00
Jon Staab
35ed7bc09f
React to addressed events getting updated for delete status
2026-08-22 11:40:05 -07:00
Jon Staab
735231f8bc
Make some event rendering components reactive
2026-08-22 11:30:30 -07:00
Jon Staab
8d7b640d0f
Fix thread permalinks
2026-08-22 11:20:33 -07:00
Jon Staab
99be43f396
Fix pagination collapse
2026-08-22 11:11:57 -07:00
Jon Staab
2edcfd9a79
Fix a test, avoid link nesting in article cards
2026-08-22 11:00:22 -07:00
Jon Staab
08821d27f4
Bump eslint
2026-08-22 10:32:51 -07:00
Jon Staab
5f3b964eec
Bump welshman
2026-08-22 10:06:29 -07:00
Jon Staab
e869b2631e
Fix US-039 spec
2026-08-22 09:24:36 -07:00
Jon Staab
ef1981c685
Fix the admin spec
2026-08-22 09:10:47 -07:00
Jon Staab
a4193c8629
Report clock drift in tests
2026-08-22 09:00:18 -07:00
Jon Staab
1c58c075a4
Bump welshman
2026-08-21 16:41:57 -07:00
Jon Staab
a28a4fd72a
Show error toast on failed report resolution
2026-08-21 15:54:11 -07:00
Jon Staab
0e35cadebe
Fix role create/edit colors
2026-08-21 14:11:13 -07:00
Jon Staab
3e4ae49eed
Include space urls in hints for profile derivation
2026-08-21 13:47:06 -07:00
Jon Staab
5ecb811b24
Auto-cleanup
2026-08-21 11:29:15 -07:00
Jon Staab
4c21de57e2
Cleanup prose in e2e files
2026-08-20 14:58:26 -07:00
Jon Staab
196bea79b6
Add ci job
2026-08-20 14:43:33 -07:00
Jon Staab
aa2483fe78
Add tests for all user stories
2026-08-20 14:32:30 -07:00
Agent
5cbc1e459c
Show email registration errors in UI
...
- Add error field to EmailNotificationState type
- Set user-friendly error messages in MailNotifications.register() for:
missing signer, missing server config, NIP-98 auth failure,
network errors, and server errors
- Clear error on successful registration
- Show inline error banner in the email settings card
- Return early on registration failure (like push does)
- Clear error when user edits email/frequency or clicks reset
2026-08-20 12:22:53 -04:00
mplorentz
725ef45d9d
Fix signer error
2026-08-20 11:51:26 -04:00
Agent
fee6f565ff
Email notifications: settings UI + mail adapter
...
- Add VITE_EMAIL_NOTIFICATION_SERVER env var
- Extend notificationSettings with email, emailFrequency, emailAddress
- Add emailNotificationState store in push/adapters/common.ts
- New src/app/mail/index.ts with MailNotifications class:
register/unregister with mailship via NIP-98 auth,
publish kind 30390 NIP-9a subscription events
- Wired into alerts settings save handler
- Email Digest Settings card in alerts UI
2026-08-20 11:15:35 -04:00
Jon Staab
c53aaf8df8
Add e2e user stories
2026-08-19 10:32:47 -07:00
Jon Staab
d95ea3c905
Bump version
2026-08-18 15:22:25 -07:00
Jon Staab
e8455f2c8d
Add a script to bump the version across web, ios, android
2026-08-18 15:22:14 -07:00
Jon Staab
d5dbb7fba1
Update server.js to use new welshman implementation
2026-08-18 15:13:12 -07:00
Jon Staab
56b9e6f031
Update changelog, bump version
2026-08-18 14:58:41 -07:00