Review of b52d446:
- mail_list paged an unread_only + mark_read selection by offset, but the
page it marks read leaves that selection, so following next_cursor
skipped letters (30 of 50 read in a repro). In that mode the next cursor
keeps the same offset, in Rust and TypeScript, with a regression test in
both service suites.
- The Rust connector's default HTTP client followed redirects, and the Mail
and Knowledge tools now send owner request JWTs through it; Agent Mail
Section 8.1 forbids following redirects there, and the TypeScript clients
already refuse them. The default client now refuses redirects, and
with_http_client documents the same requirement.
- receive_until's default no longer overflows on a huge expires_at.
- Drop the unused MailDeliveryStatus::Expired variant (TypeScript and the
spec define only queued and delivered) and the TypeScript mail inbox
item's deadline: null, which Rust omits.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>