Table of Contents

Class MailAnsweringAuditEntry

Namespace
MailFathom.Domain.Answering.Audit
Assembly
MailFathom.Domain.dll

States what one answering run read from one account's mailbox, in the form that outlives the mail it read.

public sealed record MailAnsweringAuditEntry : IEquatable<MailAnsweringAuditEntry>
Inheritance
MailAnsweringAuditEntry
Implements
Inherited Members

Remarks

The artifact an answer is explained by afterwards. An answer produced by a model is not reproducible — asked twice, the same question over the same mailbox can produce two different answers — so the only way to explain one later is to have recorded what produced it. What a run cost, how long it took, and how it degraded are bounded facts that belong on the span beside the request they happened in; which messages it read is the part that cannot, because a tag per message would open a time series per person and because a span store is not MailFathom's to carry an obligation in.

It holds no mail. The identifiers, this deployment's own configured names, two counts, and a bounded ending are the whole of it: a record that stored the retrieved passages would create a second copy of the mailbox with its own retention, access, export, and erasure obligations. It is still derived personal data — it says what a person's mail was read for and when — which is why it is written only for an account whose operator turned the record on.

One entry per account in the run's scope rather than one per run, because enabling the record, the window it is kept for, and erasing it are decisions one account's operator makes. An entry therefore names only the mail of the account it belongs to, and a question asked across two accounts is two entries sharing a RunId.

Unlike the mutation trail beside it, the emails an entry names are reached by their own deletion path. A mutation entry survives the mail it describes because the act it records may have been that deletion; nothing of the sort applies here, so an erased message is erased from the runs that read it and the entry is left saying that a run happened and read something now gone.

Properties

AccountId

Gets the account whose mailbox the run was allowed to read.

ChatEndpointAlias

Gets the alias of the chat endpoint the run was conducted through.

CompletedAt

Gets when the run reached the ending this entry records.

Degradation

Gets the ways the run read less of the mailbox than an undegraded run of the same question would.

Emails

Gets the emails of this account the run retrieved, in the order it first reached each, and which of them the answer named.

Id

Gets what addresses this entry.

InstructionsVersion

Gets the version of the instruction the run was conducted under.

Outcome

Gets how the run ended.

RunId

Gets the run this entry records, which the entries of the run's other accounts share.

StartedAt

Gets when the run began.