Repository navigation
Yui's mailbox: mail in and out at yuigui.com, run by Yui herself - #4
Open
CJohnDesign wants to merge 3 commits into
Open
CJohnDesign wants to merge 3 commits into
CJohnDesign wants to merge 3 commits into
Conversation
- yui-mail: every email goes through one function and SendGrid. The site sends confirmation links, the app anything it needs, Yui her own mail. Inbound Parse posts every email for yuigui.com; it is stored, threaded, and the hosted Yui answers, tells the owner, or lets it be, with no human approval. Limits stay automatic: mail_enabled, daily caps, a per-thread reply cap against auto-responder loops, suppressions on bounce, spam report and unsubscribe, one-click unsubscribe on promos. - An email is data to her: from an inbound email she can only answer its sender and write to the owner. Promos start only from her tools. - Hermes Yui: yui_mail tool and `hermes yui mail` with Yui's mail key. - Migration 20260928100000_yui_mail: threads, messages, contacts, events, rules (the first rules seeded), the yui-mail bucket, limits, daily sweep. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The test for a missing key found the real ~/.hermes/yui/mail.json through a second lookup path; one path, beside the connector file, as the token is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The mailbox brain is a tool loop now. Every email: brand_search over the site's brand kit (/brand.json: posts, releases, shipped, building, backlog, features, pages, logos), read_page on yuigui.com and the repos, attach a file from yuigui.com, tell_owner, then send_reply or no_reply. - Mail from the owner, proven by his domain's DKIM pass, also gets the super-user tools: send_email to anyone, inbox, read_thread, contacts, campaign (dry run first), get_rules, set_rules. A forged From gets none. - Replies carry attachments; no em dashes leave Yui (plainDashes). - ops.ts: the mailbox operations the API and the brain now share. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Yui gets her own mailbox at yuigui.com and runs it herself.
What it does
supabase/functions/yui-mail: every email goes through one function and SendGrid.mail_enabledswitch that stops all sendingyui_mailtool andhermes yui mail inbox|thread|reply|rules, using Yui's mail key in~/.hermes/yui/mail.json.20260928100000_yui_mail: threads, messages, contacts, delivery events, the rules (first draft seeded), the privateyui-mailbucket, limits, and a daily sweep. It was applied to yuigui through the Supabase tool, so the live database records it under that day's timestamp, not the file's version.Already live on yuigui
mx.sendgrid.net.Tests
deno test supabase/tests/mail_unit_test.ts: 11 passpython3 hermes-plugin/tests/test_mail.py: 7 passtest_controls.pyandtest_talk.pyfail on main too; this PR doesn't touch them.The site half (confirm, unsubscribe, the news opt-in, privacy) is in postscarcityai/yuigui on branch
claude/yui-mail.🤖 Generated with Claude Code