This repository was archived by the owner on Jun 25, 2026. It is now read-only.
feat: Hey-style email screening; unify Blocked/Junk into Screened Email Address (backport #600 to v0)#615
Merged
Conversation
…il Address (backport frappe#600 to v0) Backport of PR frappe#600 (frappe/mail, merged into develop) onto v0. Merges the legacy "Blocked Email Address" and "Junk Email Address" doctypes into a single account-scoped "Screened Email Address" doctype (Reject / Spam / Accepted actions), adds the Hey-style screening flow (Screener view + screening endpoints), and generates the frappe_mail_automation sieve through the unified build_automation_sieve layer (create-if-missing, build all four sections — Reject -> Mailbox -> Spam -> Screening — and optionally activate). A migration converts existing Blocked -> Reject and Junk -> Spam rules and drops the old doctypes. v0 adaptations during the backport: - mail/api/mail.py: kept v0's get_mail_config (develop renamed it to get_config) and v0's import layout while adding the screening imports. - mail/hooks.py: applied only frappe#600's change (drop Blocked/Junk permission and ignore-links entries, add Screened Email Address); did not pull in the unrelated develop-only Calendar Exchange permission entry that v0 doesn't register. - frontend/src/types/doctypes.ts: kept v0's generated types; frappe#600's only diff here was unrelated MailSettings log-field regeneration. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
21f6bdc to
c64fd84
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #600 to
v0.Merges the legacy Blocked Email Address and Junk Email Address doctypes into a single account-scoped Screened Email Address doctype (Reject / Spam / Accepted), adds the Hey-style screening flow (Screener view + screening endpoints), and generates the
frappe_mail_automationsieve through the unifiedbuild_automation_sievelayer (create-if-missing, build all four sections — Reject → Mailbox → Spam → Screening — and optionally activate). A migration converts existing Blocked → Reject and Junk → Spam rules and drops the old doctypes.v0 adaptations during the backport
mail/api/mail.py— kept v0'sget_mail_config(develop renamed it toget_config) and v0's import layout while adding the screening imports.mail/hooks.py— applied only feat: Hey-style email screening (unify Blocked/Junk into Screened Email Address) #600's change (drop Blocked/Junk permission and ignore-links entries, add Screened Email Address); did not pull in the unrelated develop-only Calendar Exchange permission entry that v0 doesn't register.frontend/src/types/doctypes.ts— kept v0's generated types; feat: Hey-style email screening (unify Blocked/Junk into Screened Email Address) #600's only diff there was unrelated MailSettings log-field regeneration.Verification
ruffclean; all changed Python parses.migrate_to_screened_email_addressordered afterbackfill_blocked_email_account_id.enable_screening, Screened Email Address) present; ScreenerView route wired.🤖 Generated with Claude Code