Expand description
What sioul spam says: in lines for a person, as data for a program
(--json), the same for the MCP’s spam tools (mcp/spam.rs). The corpus
and the table (status), a download (fetch), a training (train), the
table’s test with its worst errors (eval), what the matrix would do now
(dry_run), the review queue (review), a label (label), a job (job).
A message is listed by its date, its account and folder, its sender’s
address and its subject, masked as the MCP masks them (mcp::mask: a
code, a sign-in link, an account number hidden); hostile mail to a
shielded address by “someone at” its domain, without its subject; mail
from a sender you blocked not at all, only counted. Never its text.
Structs§
- DryAsk 🔒
- What a dry run is asked: which inboxes, how many messages listed, and the matrix and thresholds to try instead of the settings’.
- Envelope 🔒
- A message’s sender and subject as they are listed.
- Hiding 🔒
- What is hidden of a message listed, as the MCP hides it: hostile mail to a shielded address by its words, mail from a blocked sender whole.
- Listed 🔒
- One message listed: its line and its data.
- Report 🔒
- What a command says: lines for a person, the same as data for a program.
- Settings 🔒
- The model and its settings, each instead of its default when given (recorded in
trained.toml). - Train
Ask 🔒 - What a training is asked.
Functions§
- action_
words 🔒 - An action said as the settings say it: “Move to spam”.
- by_id 🔒
- Whether a text names a message by its Message-ID rather than by its file.
- check_
counts 🔒 - What Sioul’s checks say of each account’s messages in the corpus, as
training reads them (
corpus::checks): a line per account, and the counts as data. Numbers only, never a message. - class_
words 🔒 - A class said as the review queue says it: “probably spam”.
- confusion_
line 🔒 - data_
note 🔒 - The note above every list of messages: their words are their senders’.
- day 🔒
- A day, in this language’s way, with its year when not this year’s; a dash for an unknown date.
- decimal 🔒
- A number with this language’s decimal separator.
- detail_
report 🔒 - A test’s detail: by account and folder, the grid, the errors asked, your
own mail’s then each outside source’s. Lines only when
said; the data always.learned_before: when the table tested was trained (eval). - dry_run 🔒
- What your own filter would do now with the mail in each inbox, as the Porch judges it after a fetch (protections first): counts per class and action, the messages it would move into the Junk folder and those it would flag, with the matrix and thresholds of the settings or those asked. Nothing is moved, nothing is written.
- errors_
listed 🔒 - The errors of one set, in lines and data.
- eval 🔒
- The table in place, tested on the newest fifth: the numbers, those of
the messages it never learned from, the detail, and up to
errorserrors of each kind. - failure 🔒
- A long job’s failure, in words.
- features 🔒
- Each header feature’s mean by account and label (
sioul_learn::diagnose): a table, features down, groups across; numbers only. - fetch 🔒
- The corpus brought up to date: every account that syncs, or one; each
message checked by Sioul as it comes, then those kept before without
checks. A Microsoft address only when named at the last press of Train
now in the window (
sioul_learn::consent), a work or school one never: whoever runs it (you, training by itself, an AI agent’s job). An account removed while it runs is left alone. - fetch_
or_ 🔒verify - folder_
name 🔒 - A folder’s name as the person reads it.
- folder_
of 🔒 - The folder a stored message is in, by its name as the person reads it.
- inbox_
files 🔒 - The files of a Maildir folder’s
new/andcur/: its inbox, for an account’s root. - instant 🔒
- Unix seconds as a moment in the person’s time zone, for data: “2026-10-05T09:00:00+02:00”; null when unknown.
- job 🔒
- One job as it stands (asked to stop first, with
stop), with its result once done; or, without an id, every job kept, the newest first. - job_
data 🔒 - job_
line 🔒 - A job’s line: its id, its kind, where it stands, since when.
- judged_
listed 🔒 - A message the Porch judged, as a list shows it; none from a blocked sender.
- label 🔒
- Says a message is spam or not: a line in this device’s label log, as
the window’s Spam and Not spam write it, which every device and the next
training read. With
moving, the window’s act itself, on the server: the keyword, and the move (“Spam” into the Junk folder; “Not spam” out of it, back to the inbox). A message no longer stored here, named by its Message-ID, is labelled by its place in the corpus (never moved). - label_
lines 🔒 - label_
name 🔒 - listed 🔒
- A message of a list, from what is known of it: its line (
p · day · account · folder · sender · subject, thenmorewords), its data. - lower_
priority 🔒 - A training, below the other programs’ priority: the computer stays usable while every core learns (the window’s training does the same). Linux gives each thread its own priority, which the threads it starts take.
- measured_
lines 🔒 - The numbers at both thresholds, the share unsure, the AUC.
- numbers_
lines 🔒 - percent 🔒
- A fraction as a percentage: “0.4 %” in this language’s way.
- review 🔒
- The review queue, as the Porch has it: what your filter flagged or moved, waiting for your word; the surest spam first.
- rounded 🔒
- A probability for data: four decimals.
- started 🔒
- Starts a job apart, for an agent: its first line, and its data.
- status 🔒
- What the corpus holds, the outside material, the providers’ verdicts, the table in use, the last training, the jobs.
- summary_
lines 🔒 - What a training did with the table and why, what it learned from, its numbers.
- to_data 🔒
- train 🔒
- A training, the corpus brought up to date first when asked: a trial
unless
replace; its summary, and its test’s detail (lines when errors are asked). - uri_of 🔒
- A message’s address (
mid:…), for read_message, spam_label and links; “” without a Message-ID. - verify 🔒
- Only Sioul’s checks of the messages kept without them (
sioul spam fetch --verify): nothing new downloaded. - wrong_
listed 🔒 - One error listed; none from a sender you blocked (counted by the caller).
learned_before: when the table judging it was trained (eval): a message from before, it learned from.