-
-
Notifications
You must be signed in to change notification settings - Fork 0
0.29.0
Hussein Jarrar edited this page Sep 12, 2026
·
2 revisions
7 changes · 3 Bugfixes, 4 New Features.
-
RADD-970 Finish the env→row split: the poller gate, the ack sender, and one definition of our own addresses
RADD-958 moved mail config into rows but three seams still read the environment:
109c8f84 -
RADD-971 Two of the nine mute checkboxes do nothing: AUTOMATION and PAGE_UPDATED bypass muted_types
muted_typesis enforced in exactly one place —notify/consumer.py:361, inside the event-consumer path. The two notification types that are created by DIRECTservice.create_notificationcalls skip it entirely:
c978d168 -
RADD-965 RADD_SMTP_FROM is documented everywhere and read nowhere — outbound mail says radd@localhost
The settings field issmtp_from_address, so pydantic-settings readsRADD_SMTP_FROM_ADDRESS. Every document and the live deployment setRADD_SMTP_FROM— which nothing reads. The field silently kept its default, so for months outbound mail (notify digests, CSAT, canned send_email) went out asRadd… [b8f497ef`](https://git.radd-hq.com/Radd/Radd/commit/b8f497ef)
-
RADD-686 Per-user notification & email preferences
Notification fan-out (spec 26) is instance-shaped on the email side:notification_prefslets a user mute a type's inbox row and toggle the digest, but there is no per-type choice of CHANNEL. RADD-968 built the delivery path (notify/mailer.py mails notification rows immediately forDEFAULT_IMMEDIATE_EMAIL_TYPES =…notify· [cac3ca7d`](https://git.radd-hq.com/Radd/Radd/commit/cac3ca7d) -
RADD-969 Gmail and Outlook out of the box: sender/source presets on the spec-110 pattern, and Settings → Email catches up to Sign-in
MailSenderKindhas exactly one member (SMTP); the add-sender form hardcodeskind: "smtp" as constand prefillssmtp.migadu.com/imap.migadu.com— this instance's own relay baked into the product's React state. An admin wiring a Gmail or Hotmail/Outlook mailbox must know four hostnames, two ports and a TLS…
c69afb2a -
RADD-968 One fan-out: notify decides who hears, mailintake carries the mail — permission-gated, team-participant-complete
Two recipient models decide email, and neither is the one deciding the inbox.mailintake/outbound.py:_recipientsmailsnotify.watcher_idsminus the author on every public comment — while the inbox fans out over watchers ∪ participant-team members THROUGHnotify/consumer._allowed(item.read + relation scope +…
141a3d1f -
RADD-967 One rendering layer: every product email says who did what, quotes it, and links the issue — in text and HTML
An outbound comment reply's body isawait comments.comment_body(...)verbatim (mailintake/outbound.py:172-177) — raw markdown, no author name (thecomment.createdpayload'sauthorref is never read), no issue key/title in the body, no link (settings.app_base_urlappears nowhere in mailintake), no footer…
81ac607c
Changes from v0.28.0 to v0.29.0.
Mirrored from project.radd-hq.com on 2026-09-12. Documentation is written there; this copy is regenerated by scripts/publish_wiki.py and hand edits do not survive it.
-
Developer guide
- Architecture: the kernel and plugins
- Develop, test and deploy
- Events and consumers
- Permissions and access control
- The MCP server
- The query language for developers
- The REST API and authentication
- Write a backend plugin
- Write a page editor extension
- Write a plugin user interface
- Write an automation node
-
Release notes
- 0.36.4
- 0.36.3
- 0.36.2
- 0.36.1
- 0.36.0
- 0.35.0
- 0.34.0
- 0.33.0
- 0.32.0
- 0.31.1
- 0.31.0
- 0.30.0
- 0.29.0
- 0.28.0
- 0.27.0
- 0.26.0
- 0.25.1
- 0.25.0
- 0.24.1
- 0.24.0
- 0.23.1
- 0.23.0
- 0.22.0
- 0.21.0
- 0.20.0
- 0.19.0
- 0.18.1
- 0.18.0
- 0.17.2
- 0.17.1
- 0.17.0
- 0.16.0
- 0.15.0
- 0.14.1
- 0.14.0
- 0.13.1
- 0.13.0
- 0.12.0
- 0.11.0
- 0.10.0
- 0.9.2
- 0.9.1
- 0.9.0
- 0.8.1
- 0.8.0
- 0.7.1
- 0.7.0
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- 0.6.2
- 0.6.1
- 0.6.0
- 0.5.0
- 0.4.1
- 0.4.0
- 0.3.2
- 0.3.0
- 0.2.0
- 0.1.0
-
User guide
- AI features
- Attachments
- Automations
- Cycles and releases
- Instance settings
- Intake forms and the portal
- Notifications and the inbox
- Personal settings
- Project settings
- Projects
- Reports and dashboards
- Search and the query language
- Start here
- The application window
- The card designer
- The roadmap
- The service desk
- The wiki
- Time logging and the timesheet
- Views
- Work items