Table of Contents

Class MailFolderParticipation

Namespace
MailFathom.Domain.Folders
Assembly
MailFathom.Domain.dll

States how far into MailFathom one folder is admitted, starting with whether MailFathom has it at all.

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

Remarks

Mapping a folder and mirroring it are two decisions rather than one. A mapping makes the folder known: it is nameable by its alias, resolvable by the role its server advertises, and reachable as the destination of a change MailFathom is asked to make. What the other three answers add is what happens to the mail inside it, which costs storage, a provider's tokens, and — for some folders — the discretion of never having an agent read them.

A folder no mapping names is not one of those decisions taken quietly: it is Unmapped, which is a folder MailFathom does not have. That is why IsMapped is a state of its own rather than something a reader infers from the other three being off — MappedOnly answers those three identically and means something else entirely, and two values that compare equal could not tell an operator's decision to stop mirroring a folder apart from their decision to stop having it.

The answers are not independent, and the dependency runs one way: a folder nothing mirrors has no local content, so there is nothing to embed and nothing a tool could read whatever the other two say. This type derives that rather than trusting a caller with it, which is why every mapped value is built through Create(bool, bool, bool). Configuration refuses the contradiction separately, so an operator who asked for embeddings on an unmirrored folder is told rather than quietly given the normalized answer.

Properties

Full

Gets the participation of a folder that takes part in everything, which is what a mapping means by default.

GeneratesEmbeddings

Gets whether the folder's content is cut into passages and embedded.

IsMapped

Gets whether a mapping names the folder at all.

IsSynchronized

Gets whether the folder's mail is mirrored locally.

IsVisibleToTools

Gets whether MCP tools may list, search, read, or answer from the folder.

MappedOnly

Gets the participation of a folder MailFathom knows by name and mirrors nothing of.

Unmapped

Gets the participation of a folder no mapping names, which takes part in nothing because it does not exist here.

Methods

Create(bool, bool, bool)

Builds the participation an operator's three answers describe, for a folder their mapping names.