read.markets/app
Giorgio Gilestro e338650dfa beta-launch: respect returning-user opt-out + show digest job in ops LEDs
- verify_submit now applies the subscribe checkbox only at first sign-up.
  Returning users keep whatever they set via Settings or the one-click
  unsubscribe link — previously, every login silently re-enrolled them.
- JOB_NAMES gains email_digest_job so the ops footer reflects its health.

Adds tests/test_verify_subscribe.py::test_returning_user_login_preserves_unsubscribe.
2026-05-25 23:33:53 +02:00
..
jobs jobs: extract shared market-context helpers from ai_log_job 2026-05-25 23:18:27 +02:00
routers beta-launch: respect returning-user opt-out + show digest job in ops LEDs 2026-05-25 23:33:53 +02:00
services email: render_digest_email — multipart digest template 2026-05-25 23:02:05 +02:00
static beta: header chip flagged by BETA_MODE config (default on) 2026-05-25 22:42:19 +02:00
templates pricing: free=6h news + Sunday digest; paid=24h + daily digest 2026-05-25 23:29:40 +02:00
__init__.py initial commit — cassandra v0.1 2026-05-15 21:56:10 +01:00
auth.py public: landing + pricing + legal pages, apex-ready, lawyer-reviewed 2026-05-24 00:08:02 +02:00
branding.py public: landing + pricing + legal pages, apex-ready, lawyer-reviewed 2026-05-24 00:08:02 +02:00
cli.py cli: send-test-digest for previewing digest emails 2026-05-25 23:30:33 +02:00
config.py beta: header chip flagged by BETA_MODE config (default on) 2026-05-25 22:42:19 +02:00
db.py sync: encrypted cloud backup for portfolios + settings UX rework 2026-05-23 16:15:54 +02:00
logging.py initial commit — cassandra v0.1 2026-05-15 21:56:10 +01:00
main.py email: one-click unsubscribe endpoint w/ signed token 2026-05-25 23:07:38 +02:00
models.py db: drop redundant user_id index on email_sends 2026-05-25 22:55:33 +02:00
redis_client.py phase G: data minimisation + passwordless auth + DeepSeek-first LLM 2026-05-18 14:16:57 +01:00
scheduler_main.py scheduler: register email_digest_job at 06:30 UTC 2026-05-25 23:20:06 +02:00
schemas.py news: auto-tag headlines + market-aware cadence + filter UI 2026-05-21 23:25:03 +01:00
templates_env.py beta: header chip flagged by BETA_MODE config (default on) 2026-05-25 22:42:19 +02:00