VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

How Superintelligence Works | Agent IMAP Mailbox Sync — UIDVALIDITY, Modseq and Expunge Recovery

Did you know? An email agent can read the right message today and accidentally act on a different message tomorrow if it treats an IMAP message sequence number as a permanent identifier. IMAP sequence numbers describe positions within the currently selected mailbox. They can change when messages are expunged. Reliable mailbox automation instead binds a message to its account, mailbox, UIDVALIDITY and UID, and validates the state again before taking consequential action.

The safe approach is to maintain a versioned mailbox checkpoint, detect new and removed messages without assuming contiguous UIDs, record flag changes separately from message identity, and reset cached associations whenever UIDVALIDITY changes. Where a server supports CONDSTORE or QRESYNC, modification sequences can make incremental reconciliation more efficient; where it does not, a client needs a documented fallback. Nothing about finding an email authorises an agent to reply, delete it, mark it read or send its contents elsewhere.

This guide explains present-day email automation and the IMAP standards, not the existence of artificial superintelligence. The teaching records and numerical cases are fictional, and no mailbox was accessed or modified while writing them. The objective is an auditable contract for reconciling server state, protecting messages and reporting precisely what was verified.

Contents

A mailbox holds several kinds of identity

An IMAP server exposes an account’s mailboxes, their current message memberships and flags, and identifiers that allow a client to refer to messages. A mail application may show a familiar Inbox with a dozen entries, but the protocol distinguishes the mailbox, the message sequence number in the selected view, a unique identifier or UID, and the mailbox’s UIDVALIDITY value. These are not interchangeable. A reliable agent stores their roles separately.

A sequence number is a position in the current mailbox, beginning with one. If message 3 disappears, a message that had sequence number 4 can become number 3. The agent that stores ‘sequence number 4 is the urgent invoice’ and later executes a command against sequence 4 may act on the next message instead. That is a wrong-object failure, not merely a stale screen rendering. Stable action plans should never depend on remembered sequence positions.

Within a particular mailbox under a particular UIDVALIDITY, a UID identifies the message membership durably across ordinary changes. The standards require increasing UIDs but do not require contiguous values. UIDs can have gaps because messages were deleted, imported or reserved by the server’s internal processes. An agent must not infer that the absence of UID 47 means an email was lost or maliciously removed. It must use server responses to determine presence.

UIDVALIDITY tells the client whether the mapping from UIDs to messages is still meaningful. If the mailbox’s UIDVALIDITY changes, the client must not reuse cached UID associations as though the old mapping persisted. A mailbox may be rebuilt, renamed or recreated. The compound key—account, mailbox identity, UIDVALIDITY and UID—is therefore a much safer reference than UID alone or sequence number alone.

The governing specification is the IETF RFC 9051, Internet Message Access Protocol Version 4rev2. Its sections on message attributes and mailbox state describe sequence numbers, UID, UIDNEXT and UIDVALIDITY. Learn that vocabulary before designing a summariser, classifier or mail-handling agent; downstream AI reasoning cannot repair an unstable source identifier.

Why synchronising a mailbox differs from reading a snapshot

A one-time view answers ‘what messages are currently visible under these criteria?’ Synchronisation answers a harder question: which messages arrived, changed flags, moved, or disappeared since the previous trustworthy checkpoint? The process can be interrupted by network timeouts, server failover or another client changing the mailbox. It must recover without losing events and without inventing a complete history that the server never supplied.

Suppose an agent checks for invoices at 09:00, then waits until 10:00. During that hour a colleague archives one email, marks another answered, and receives a new correction to a previous invoice. A simple search for the newest message may find the correction but miss the answered-state change and mistaken invoice association. A synchroniser must examine both presence and metadata changes. A search result is not a transaction log.

Mail content can also be copied into multiple mailboxes. The same RFC 5322 Message-ID header may appear in more than one folder or account, while the IMAP UID is assigned within each mailbox. Conversely, Message-ID headers can be absent, duplicated or malformed. They help threading but are not a substitute for mailbox-scoped identifiers. The related email threading guide addresses a different reader job: associating replies by message headers rather than reconciling server membership.

An email agent should distinguish three states in its own ledger: observation of a server message, interpretation of the message’s meaning, and a contemplated external action. Observation may be automated if access permits it. Interpreting an attachment may require provenance checks. Sending a reply or deleting a message requires distinct authorisation. A reliable synchroniser does not treat ‘I found the invoice’ as an order to pay it.

Clock time is useful for logs but is not a durable mailbox cursor. Delivery dates and message headers may reflect sender clocks, server timestamps or imports. Sorting by date and reading after a saved date can miss late arrivals or older imported messages. Use the server’s identity and change mechanisms rather than declaring every message with an earlier timestamp permanently processed.

Why an expunge changes sequence numbers immediately

Consider a fictional Inbox with five messages at one moment. Sequence 1 has UID 401, sequence 2 UID 407, sequence 3 UID 410, sequence 4 UID 414 and sequence 5 UID 420. Notice the UID gaps. They are allowed, and all five messages can coexist normally. The sequence values are simply one through five because those are the current positions.

Another client permanently removes the message with UID 407. The server reports an EXPUNGE affecting sequence number 2. The remaining messages now occupy positions 1 through 4: UID 401 at sequence 1, UID 410 at sequence 2, UID 414 at sequence 3, UID 420 at sequence 4. A cached instruction to fetch sequence 4 has changed its referent from UID 414 to UID 420. That is why positional IDs cannot be entrusted with delayed decisions.

The safe client updates its sequence-to-UID map as the server reports changes, but persistent operations should use UID commands tied to the current selected mailbox. Even UID commands must be checked for server status and the expected UIDVALIDITY. A remembered UID alone remains insufficient if the mailbox has been recreated. State transitions must be compared against the exact mailbox identity.

EXPUNGE is about the disappearance of a message from the selected mailbox, not necessarily proof of a human pressing Delete or proof the message has vanished from every server store. Some providers represent moves or archive actions as changes in folder membership. A protocol synchroniser should report observed membership state and avoid inventing the user action or business reason behind it.

RFC 9051 describes when servers can issue untagged EXPUNGE responses and the resulting command-pipelining ambiguities. Do not fire multiple dependent sequence-number commands without respecting those rules. Prefer stable UID references and an explicitly tracked selected-mailbox state, not a hopeful assumption that commands execute against an unchanged list.

What UIDNEXT predicts—and what it does not promise

UIDNEXT is the value the server predicts will be assigned to the next new message in the selected mailbox. It is useful as a high-water signal for whether arrivals may have occurred since an earlier check, but it is not a guarantee that a message currently exists with that exact UID. A mailbox’s UIDs need not be contiguous, and a newly appended message might arrive and be expunged between observations.

Imagine the client’s last checkpoint stores UIDNEXT 430 under UIDVALIDITY 9001. At its next check, the server reports UIDNEXT 434. The change means new UID allocation occurred while the validity remained the same; it does not mean messages 430, 431, 432 and 433 all remain present. A correct reader performs appropriate UID searches or fetches and records the actual returned set. It must never create four phantom email records because the counter advanced by four.

If UIDNEXT has not changed, that does not mean flags are unchanged. Someone might mark a message as read, answered, flagged or deleted without adding a new message. If the agent’s job cares about those states, it must use the supported metadata change mechanism or re-fetch the relevant flags. The cursor for new arrivals is not a cursor for every mailbox mutation.

Do not confuse server-assigned UIDs with application-generated task IDs. Your automation may assign an internal review job ID; it should store the server message key as source evidence rather than replacing it. If a job is retried, the internal ID can be idempotent while the server observation is refreshed. This separation helps prevent duplicate human notifications and wrong-message actions.

An implementation should persist the last successfully reconciled UID range and actual message membership after confirming the full operation. Saving UIDNEXT before all fetches and durable writes finish can skip unprocessed messages after a crash. Checkpoint only after the relevant state and queued work have been committed together or are recoverable through idempotent reconciliation.

UIDVALIDITY changes are a boundary, not a small update

Suppose a local database contains records keyed by Inbox, UIDVALIDITY 9001 and UID 410. At reconnection the server advertises UIDVALIDITY 9200 for the Inbox. The client must treat its earlier UID mapping as invalid for that mailbox. Even if UID 410 appears again, it may identify an entirely different message. Reusing the old summary or approval to act on that UID would be a serious identity error.

The correct reaction is to invalidate mailbox-scoped cached associations and rebuild current membership under the new validity value. Any pending action that targeted an old UID must be reconsidered or escalated. A cautious workflow can retain historical audit records about what was previously observed while clearly marking their source identifiers as no longer actionable. Erasing the audit trail is different from invalidating stale operational references.

Restoring a backup or receiving a migrated mailbox are examples of situations where UIDVALIDITY may change. Do not assume every change is an attack; equally, do not explain it as harmless before checking the server. The protocol gives you an identity boundary, not a forensic account of why it moved.

If the server indicates persistent UIDs are unavailable, the synchroniser needs a weaker fallback and must describe its guarantees accordingly. RFC 9051 includes UIDNOTSTICKY for mail stores that do not support persistent UIDs; such stores are discouraged by the specification. An agent that relies on durable UID identity should decline irreversible actions when that prerequisite cannot be met.

The compound key also matters across accounts. Inbox UID 410 in one person’s account and Inbox UID 410 in another person’s account are unrelated. Never build a global deduplication cache keyed only by numeric UID, and never infer recipient permissions from an identifier that lacks account and mailbox scope.

Flags change independently of message content

Mail metadata includes flags such as Seen, Answered, Flagged, Deleted and Draft, subject to server support and permitted custom keywords. An agent might be asked to notify a user only about currently unseen messages or avoid replying to messages already answered. Those rules depend on flag freshness. New-message detection alone cannot establish them.

Fetching content can itself change state. Some IMAP fetch forms may set the Seen flag when reading a body; peek-oriented forms avoid that side effect. A summarisation agent that is only authorised to inspect mail should not silently mark a message read simply to obtain its text. Use the server’s protocol rules and connector permissions to prefer read-only observation, and verify which fetch command actually ran.

Multiple devices can update flags concurrently. If an agent reads a message as unseen, and a human marks it answered before the agent proposes a reply, the old flag snapshot is no longer sufficient. Re-fetch the current message state and consider the user’s explicit action policy. A flag’s presence does not independently establish what a human intended, but it is important new evidence.

Flags can be updated without changing message body, UID or arrival order. A robust ledger therefore separates immutable message attributes from mutable metadata and stores their observation times or modification sequences where supported. This avoids rewriting a whole email summary because the Seen flag changed, while still allowing the workflow to respect the updated action state.

Deleted flags are particularly sensitive. A message marked Deleted is not necessarily expunged; expunge removes it from the selected mailbox. An agent must not assume a marked message is permanently gone or attempt irreversible cleanup without authorisation. Read-only synchronisation can report the distinction without performing either operation.

CONDSTORE and modseq: when a metadata counter is useful

RFC 7162 specifies CONDSTORE and QRESYNC extensions for efficient mailbox metadata reconciliation. CONDSTORE supplies modification sequences that can let a client ask which message flags changed since a previous known point. These are not ordinary wall-clock timestamps, nor are they a universal global counter across all accounts. They belong to the protocol’s mailbox and message state model.

A client must inspect server capabilities and the mailbox’s responses. A server can support the extension but not persistent modification sequences for a particular mailbox. RFC 7162 describes HIGHESTMODSEQ and NOMODSEQ responses. If the server supplies NOMODSEQ, the application must not pretend that the previous modseq remains a valid cursor; it should fall back to a conservative scan of the necessary metadata.

Consider an illustrative snapshot with UIDVALIDITY 9001 and HIGHESTMODSEQ 700. A subsequent selection under the same validity reports HIGHESTMODSEQ 725. This indicates modification sequence progress relevant to that mailbox, but the arithmetic difference 25 is not the number of changed messages. One message can change more than once, and modseq allocation is not required to map one-to-one to messages. The client asks for eligible changes using the proper extension protocol.

A client must only save a new high-water modseq when its changed metadata and removal information have been reconciled durably. If it saves 725 before applying the server’s results, a crash can leave the local view inconsistent while future queries start too far ahead. A safe checkpoint couples source cursor advancement with completion of local state application.

Extension support is an optimisation, not an excuse to skip fallback design. Some servers, mailboxes or connectors may expose only ordinary IMAP capabilities, and some high-level mail APIs have their own change tokens that are not IMAP modseq values. A system must name which source of truth it is using rather than transferring protocol semantics to a different provider by assumption.

QRESYNC and VANISHED: reconstructing deletions without guessing

QRESYNC extends the ability to reconcile what disappeared while a client was offline. Where supported and correctly negotiated, the server can report VANISHED information and changed message metadata relevant to an earlier checkpoint. This is especially useful when the local cache contains many messages: a full restart may be expensive, while an honest delta can preserve identity and reduce work.

The important qualifier is ‘where supported’. The client must not send extension-specific assumptions to a server that does not advertise the capability. Nor should it read an incomplete QRESYNC response and declare the mailbox fully synchronised. The exact SELECT parameters, known UID set and saved modification state matter; a mismatch can produce missing or misinterpreted results.

Suppose the local cache under UIDVALIDITY 9001 contains UIDs 401, 410, 414, 420 and 426. At reconnection the server says 410 and 420 have vanished and reports a metadata change for 426. The new observed cached set is 401, 414 and 426 before adding any newly fetched UIDs. Its count is three because five cached memberships minus two known removals equals three. This example shows set reconciliation, not evidence about who deleted the messages.

If a new UID 430 is then fetched and verified, the current set becomes 401, 414, 426 and 430: four messages. A naive application that subtracts two from five and then assumes UIDNEXT advanced by four would invent additional entries. Keep presence, counter movement and flags separate. A proper sync log can account for every observed membership without inventing unseen messages.

The canonical extension reference is RFC 7162, CONDSTORE and QRESYNC. Its examples show HIGHESTMODSEQ and VANISHED responses. Use them to implement and test the actual wire protocol, not to assert that every email provider offers those exact mechanics through its public application API.

A complete fictional reconciliation with denominators

Build a small mailbox state ledger. At the end of the previous reliable sync, account A’s Inbox has UIDVALIDITY 500, known UIDs {100,104,108,115,120,125}, last known modseq 80, and UIDNEXT 126. These are six actual message memberships. The client has summarised four and left two for review. Every entry is associated with the same account and mailbox scope.

After reconnecting, the client sees the same UIDVALIDITY 500, a higher modseq where supported, and UIDNEXT 133. The server reports vanished UIDs 104 and 115, reports that UID 125 changed its Answered flag, and returns actual newly present UIDs 128 and 132. UIDNEXT’s increase from 126 to 133 is seven counter units; it is not evidence that seven messages are present, nor that seven new messages remain.

Reconciliation begins with six known memberships minus two vanished memberships = four survivors: {100,108,120,125}. Add the two fetched new UIDs 128 and 132 to obtain six current memberships: {100,108,120,125,128,132}. The current set has six members because four plus two equals six. If UIDNEXT is 133, the absence of 126, 127, 129, 130 and 131 from this set is not itself a protocol error.

The agent retains the existing summarisation record for surviving UIDs unless content provenance or other policy requires refresh. It updates UID 125’s mutable flag metadata, creates two new observation records, and marks the two vanished memberships unavailable for future mailbox actions. It does not assume those two vanished messages were deleted globally or that new UID 128 is related to the vanished UID 115.

Now introduce a crash between fetching UID 132 and committing the local transaction. If the client advanced its cursor before saving UID 132, it could miss the new record on the next run. The correct transaction either commits both messages and the checkpoint or maintains an idempotent pending record that can be reconciled after restart. The next run queries the same mailbox’s actual state before deciding whether to repeat work.

Finally change UIDVALIDITY to 501 at the subsequent reconnect. All six operational UID mappings from 500 become stale, regardless of the numerical UIDs that appear under 501. The agent retains audit records labelled with validity 500 but performs a fresh inventory and does not carry over pending reply approvals. Identity boundaries outrank apparent numeric continuity.

Privacy, authentication and read-only authority

An email agent is often connected to highly sensitive information: private correspondence, attachments, personal records and contractual discussions. The source protocol provides identity and state mechanisms, but it does not decide what the assistant is authorised to do with content. Use narrow access permissions, read-only operations when the task is only summarisation, and explicit approval for send, delete, forward, move or label changes.

Connection security is essential. IMAP implementations use appropriate authentication and TLS protections; never send credentials to a server address supplied by an untrusted message. If connection errors occur, do not fall back to cleartext or weaker settings without a well-defined legitimate configuration. The account’s mailbox contents are data, not instructions that can increase the agent’s authority.

An email can contain prompt-injection text telling the assistant to ignore its system rules or export the mailbox to a new endpoint. That text is part of the message body. It does not confer permission to fetch secrets, contact an external service or change security settings. A robust workflow keeps interpretation and permitted tool actions separate and treats attachments as untrusted input.

Mail headers may also contain deceptive display names. The purported From display name is not proof of the sender’s legal identity. Header-based threading, server membership and authentication evidence answer different questions. A reply decision should resolve the actual recipient and quoted context, not blindly trust a human-readable label or a model’s reconstruction of an address.

Keep sensitive raw message content out of public logs. Debugging a UIDVALIDITY mismatch rarely requires reproducing an entire email body. Log scoped identifiers, checkpoint versions, operation results and carefully redacted diagnostics. Retain enough evidence to explain an action without turning troubleshooting into a second uncontrolled copy of the mailbox.

Observe first; make mailbox changes only under separate gates

Reading a message, marking it Seen, archiving it, adding a label and sending a reply are different actions. Many high-level mail interfaces package them conveniently, but convenience does not collapse their authorisation requirements. A user asking ‘what changed overnight?’ has not thereby approved a reply to every new thread or permanent deletion of old messages.

A safe agent can produce a proposed action list with exact server-backed references and clearly separated confirmations. For example: ‘The message with this verified mailbox key appears to request a meeting; here is a draft response.’ Before sending, it should recheck the thread and recipient details to guard against a new human reply or another message arriving while it was reasoning.

When the mailbox state changes, pending decisions may need invalidation. A Message-ID match alone might not distinguish two copies in different mailboxes; a stale flag or vanished message can alter the safe next step. Reconcile the current state and show the user what is uncertain. Never quietly attach a new UID to an old approval merely because the subject is similar.

Idempotency helps when action APIs fail after a timeout. If a reply may have been sent, the agent should inspect the relevant sent-mail or provider transaction record rather than issuing the same reply again. Mailbox synchronization itself is not proof of send acceptance; these are separate systems and need distinct receipts.

The companion outbound email safety guide explains recipient binding, attachments and verified sending. This article deliberately stays focused on read-side state and stable message identity so the two reader jobs remain distinct.

Common sync failures and their specific repairs

Failure one: treating a message sequence number as a persistent key. After expunge the number can refer to another email. Repair it by using a mailbox-scoped UID under the current UIDVALIDITY and reconciling sequence responses accurately. Failure two: treating UIDNEXT increments as a count of received mail. Repair it by fetching the actual present UID set and recording gaps without invention.

Failure three: carrying cached UIDs across a UIDVALIDITY change. Repair it with a full identity boundary and fresh inventory. Failure four: assuming flags are stable when UIDNEXT has not moved. Repair it by using supported flag-change mechanisms or a conservative recheck. Failure five: assuming every server supports QRESYNC and CONDSTORE. Repair it by capability negotiation and a documented fallback.

Failure six: checkpointing a new cursor before local records are durably written. Repair it with atomic persistence or an idempotent recovery ledger and an explicit ‘last fully reconciled’ marker. Failure seven: interpreting expunge as a verified human delete action. Repair it by reporting the observed mailbox membership change and investigating the underlying cause only with additional evidence.

Failure eight: making read operations inadvertently mark emails Seen. Repair it by selecting read-only modes or peek variants as permitted and testing their side effects against documented protocol behaviour. Failure nine: treating a message header as permission to send. Repair it with clear authority boundaries and recipient verification. Failure ten: duplicating replies after uncertain network responses. Repair it through authoritative send-state reconciliation before retrying.

Each failure has a characteristic evidence gap. The fix is not to increase the language model’s confidence, lengthen its explanation or run a blind retry. It is to obtain the right state from the system that owns it, use stable identifiers and preserve the exact boundary between observation and authorised action.

Changed-context problem: two folders and an imported copy

Transfer the method to two folders in one account: Inbox and Archive. The Inbox contains a message with UID 700 under UIDVALIDITY 20. The Archive contains a copy whose message header has the same Message-ID but whose Archive UID is 41 under UIDVALIDITY 31. These are two distinct IMAP mailbox memberships. A summary application may decide they are copies of the same correspondence, but a mailbox action must still target the correct scoped identity.

Suppose the user asks only for new unread Inbox messages. The Archive copy is not part of that reader job. The agent must inspect the Inbox membership and current flags, not search every folder and count two copies as two new inbox arrivals. It should also avoid assuming that a matching Message-ID grants authority to alter both copies.

Now the user archives the Inbox membership and the server reports it vanished from Inbox. The Archive copy remains. The agent should remove the Inbox membership from its current set, maintain the historical observation, and leave the Archive copy alone unless the task authorises archive changes. No global deletion may be inferred.

Change one condition: the Archive UIDVALIDITY changes from 31 to 32 after a migration. The cached Archive UID 41 becomes non-actionable until re-identified. The Inbox UIDVALIDITY 20 is a separate scope and is not automatically invalidated. This exercise demonstrates why the mailbox key includes more than a filename-like UID.

Finally assume a count: three Inbox arrivals, one expunge and two flag changes during a period. These are six observed event categories if counted as operations, but they need not involve six distinct messages. The same message can arrive, change a flag and be expunged. Report event counts with their denominators and distinct-message counts only when actual UIDs prove them.

Limitations and the honest meaning of ‘synchronised’

A successful mailbox reconciliation means the client has applied the server state and available change evidence according to its chosen consistency contract at a particular point. It does not mean no further mail can arrive immediately afterwards. Mailboxes are live systems. A synchroniser should state a last checked time and the checkpoint identifiers, not claim an eternal final snapshot.

UIDs and UIDVALIDITY help with message identity but cannot certify that message content is truthful or that an apparent sender is legitimate. Flags can change; providers differ in mailbox architecture; extensions vary; high-level Gmail or Microsoft mail APIs expose their own resource IDs and synchronization tokens. Never map those directly onto IMAP values without checking the provider’s actual guarantees.

Some servers may not support persistent modseq or QRESYNC, making an efficient exact delta unavailable. A full rescan can preserve correctness under appropriate conditions but costs more bandwidth and time. When the server does not provide enough evidence to distinguish certain histories, record the uncertainty rather than fabricating which operations occurred.

Network loss, large messages, quota limits and provider outages can interrupt a sync. A resilient client must bound retries and avoid claiming all fetched attachments were parsed when a transfer failed. Partial content and mailbox metadata should have separate completion signals, especially when a downstream AI model may receive only an excerpt.

The protocols are engineering specifications, not instructions to circumvent user consent. A mail assistant should be judged on stable identity, current state, protected content and truthful actions. A plausible natural-language summary is insufficient if it attributes the text to the wrong source message.

Frequently asked questions

Why can’t I store sequence number 4 as a message ID? Sequence numbers change when earlier messages are expunged. Store UID with its mailbox and UIDVALIDITY, and recheck current server state before acting.

Does UIDNEXT tell me how many new emails arrived? No. It predicts the next assigned UID and may advance without all intervening UIDs appearing as present messages. Fetch actual membership to count arrivals.

What should happen when UIDVALIDITY changes? Invalidate earlier UID-to-message associations for that mailbox, rebuild the current view and reconsider pending actions that referenced the old identity context.

Do CONDSTORE and QRESYNC always work? No. They require appropriate server support and negotiation. A mailbox may report NOMODSEQ, requiring a fallback strategy for flag changes.

What does VANISHED mean? In a valid QRESYNC context it conveys removed mailbox memberships relevant to reconciliation. It is not proof of who removed a message or whether all global copies were deleted.

Can opening an email mark it read? Some fetch operations can set the Seen flag. Read-only or peek-oriented handling should be used as appropriate when the user did not authorise a state change.

Is Message-ID the same as IMAP UID? No. Message-ID is an email header used for message identity and threading; UID is a server-assigned mailbox-specific identifier with UIDVALIDITY scope.

Can the agent reply when sync succeeds? Only with separate authorisation, current recipient and thread verification, and a checked send result. Synchronisation is observation, not permission to communicate.

Reader pathways and authoritative specifications

If you develop email agents, begin with a deterministic test mailbox. Create messages whose UIDs contain gaps, expunge an earlier message, reconnect with changed flags, then simulate UIDVALIDITY rotation. Assert that no queued action can attach to a new message by stale position or recycled UID. Add crash tests around durable checkpoint updates. Real correctness is easiest to demonstrate on deliberately inconvenient states.

If you operate a support or education inbox, separate a read-only overnight summary from outbound response approval. Report the observation timestamp, the relevant message references and uncertainties. When a message is moved, distinguish folder membership from the business interpretation. Do not let a model invent that an unanswered email is safe to close.

If you study protocols, read RFC 9051 (IMAP4rev2) for mailbox, sequence and UID semantics and RFC 7162 (CONDSTORE and QRESYNC) for modification sequences and efficient resynchronisation. Check the server’s actual advertised capabilities and implementation version before using extension commands.

For related agent topics, read email thread association, outbound email safety, and the How Super Intelligence Works hub. For the education lens, study how independently checked information becomes transferable skill in the gold standard of learning.

The case values and operational statements were constructed to teach source identity and state transitions, not extracted from anyone’s account. No inbox was accessed, no reply was sent and no live server state was changed for this article. A deployed system should independently verify everything it claims to have observed.

Discover more from eduKate Singapore

Subscribe now to keep reading and get access to the full archive.

Continue reading