A reply to a case mail becomes a note on its record
Test / test (push) Failing after 53s
Publish release / publish (push) Successful in 3m14s

Whatever reads the mailbox publishes on portal.mail.received; portal
appends the note after checking the record exists in a bucket this
site has and the sender is the address the record itself holds. A
note never moves a case: a mailbox is the one door anyone may knock
on, so it cannot drive a state machine even if someone forges their
way past the checks. The desks show the conversation beside the case.

Tested: the address parser, every refusal (a stranger, no address to
compare, an empty reply, the same reply twice, an unknown contract),
and the whole path through a real JetStream - the note lands, the
state does not move, and no event is written.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Bendik Aagaard Lynghaug
2026-09-24 21:26:57 +02:00
co-authored by Claude Opus 5
parent 4fd60293fa
commit 26c1762dfa
9 changed files with 337 additions and 3 deletions
Generated
+1 -1
View File
@@ -3265,7 +3265,7 @@ dependencies = [
[[package]]
name = "portal"
version = "0.3.47"
version = "0.4.0"
dependencies = [
"anyhow",
"arc-swap",