-
released this
2026-08-23 20:00:17 -05:00 | 96 commits to main since this releaseThe mailto half of
unsubscribe_messageworks on Gmail, and two defects
behind it are fixed. Neither was found by looking for it: the first turned up
while trimming a comment in the stack file, and the second while writing the
test for the first. Live pass indocs/operations.md— 11 checks, self-addressed
throughout, so nothing was announced to anybody.Fixed
-
gmail.unsubscribe_messagereadsMAIL_SEND_ENABLEDinstead of a
hard-codedFalse. The constant was correct when written — the tenant had
no submission path — and became wrong the moment G4 gave it one in 0.34.0.
The docstring directly above it promised the refusal would lift "the day
sending ships, with no change here" while the code guaranteed it could not,
and three releases went out with the two disagreeing. A capability withheld
by a constant nobody re-read is indistinguishable, from the outside, from one
the operator chose to withhold — which is exactly whatMAIL_SEND_ENABLED
exists to make visible. It now reads the same configicloudmailreads, so
the gate and the thing that can actually send agree by construction. -
Signature coverage now asks about the header the OFFER uses, on BOTH
tenants._REQUIRED_SIGNEDdemandedList-Unsubscribe-Postof every
unsubscribe facility, citing RFC 8058 §3.2 — which is about one-click.
List-Unsubscribe-Postis the header that MAKES an offer one-click, so a
mailto-only sender has none and cannot sign one, and the gate refused it for
the absence.It failed in the worst available direction. A mailto sender that signs its
mail was refused BECAUSE it signed — its verified signature could not cover a
header it never sent — while a sender with no signature at all read as
signature_coverage_unknownand went through as a warning. The gate punished
senders in proportion to how correctly they authenticated. True on
icloudmailsince 0.28.0 and invisible to the suite, because the fixture
exercising a permitted mailto carries no DKIM-Signature and never reached the
check. One-click still requires both headers; the default argument is the
strict one, and a test pins which way that default fails.
Added
-
gmail._unsubscribe_by_mail, through_submit— this tenant's ordinary
send path, so an unsubscribe gets an ordinary send's single verdict. The mail
tenant routes its equivalent through_submit_and_savebecause there the Sent
copy is the only durable record the request was made; Gmail files that copy
itself, sosaved_to_sentstays None andto_dictsays whose copy it is.
Reading that None as "the record is missing" is the false alarm 0.34.0
introduced the sentinel to prevent, and the tool layer is tested for it. -
unsubscribe_message's description is built from the send gate, like
every other conditional sentence in that module. It told the model this server
"has no sending capability at all" for three releases after sending shipped —
and a description is what a model reasons from when deciding whether to
OFFER, so a stale one is not cosmetic.
Changed
- The Gmail client's
unsubscribe_messagereturns three values rather than two,
matchingicloudmail's, so the mailto outcome has somewhere to go.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-