Skip to main content

Crate sioul_core

Crate sioul_core 

Source
Expand description

Sioul’s core: what Sioul knows and decides, the same for every interface.

Everything the interface shows is decided here, so that the command line, the Qt interface and AI agents all see the same Porch. The interface holds no logic of its own (docs/architecture.md). The core reads and writes plain files (Maildir, vdir, TOML, Markdown) and never uses the network: talking to servers is the work of sioul-sync.

Sioul has five crates, all in the repository’s crates/ folder:

  • sioul-core, this one: the library at the centre.
  • sioul-sync: what talks to the world: mail servers, calendars and contacts, the keyring, sharing between devices.
  • sioul (crates/sioul-cli): the command line, and sioul mcp, the server for AI agents.
  • sioul-app: the window’s Rust side, under its QML pages.
  • sioul-learn: the spam filter’s training, on computers only (docs/spam-filter.md).

§Where to start reading

  • How new mail is judged: porch::triage takes a card::Card, what is known of one message before it is opened, and gives it a lane and the reasons for it (porch::Triaged).
  • What the window shows: view and taskview. Their functions return plain data, every sentence already in your language; the window receives it as JSON and only lays it out. view::porch makes the Porch.
  • Tasks and the plan: tasks reads and writes the task files; plan::plan works out the plan from them each time it is asked.
  • Words: every sentence goes through i18n::Translator, from the Fluent files in crates/sioul-core/locales/ (docs/i18n.md).
  • Settings: config::Config, the configuration file.

Names such as docs/porch.md are the design notes in the repository’s docs/ folder. The website shows them too, under the same name: https://aurelienpierre.github.io/sioul/dev/porch.html.

§Modules, by theme

Each module is one file of crates/sioul-core/src/: porch is porch.rs.

§What the window shows

  • view: the Porch, mail, budgets, accounts, the agenda and contacts, as plain data.
  • taskview: the task pages in words: the next step and why, the board, the list, the timeline.
  • dayview: the day, seen: today’s events and the plan’s steps laid into your hours.

§The Porch: new mail, checked and sorted

  • porch: where new mail waits, checked and sorted into lanes, until you look.
  • card: what the Porch knows about one message before you open it.
  • state: what the Porch remembers between windows: where you closed it.
  • trust: who really sent a message, from what the servers recorded.
  • lookalike: senders who borrow a name.
  • codes: one-time codes, password resets, sign-in links and addresses to confirm.
  • payments: mail about money: a payment made or received, a bill, an order, a refund.
  • shield: the shield of a public address: its mail read first, its tone and topic.
  • rules: the vocabulary of sorting: what a rule may propose.
  • text: text helpers shared by the detectors.
  • words: the words the detectors look for: shipped packs by language and country, and your changes.
  • reach: who reaches you, on which channel, and the clock that says what time it is, ahead.
  • attention: what reaches you, and when: one matrix of who and what by time, its pipeline, its words.
  • mailnote: new mail as a notification, at the times it may come.
  • letters: paper letters: a scan read by OCR, understood, and shown as a card.
  • voicemail: voicemail that the phone operator sends by mail.
  • spam: Sioul’s own spam filter, as every device runs it (docs/spam-filter.md); its training is in sioul-learn.

§Mail: on disk, read and written

  • maildir: messages on disk: a Maildir, or a plain folder of .eml files.
  • headers: the raw header block, unfolded.
  • mailindex: messages by their Message-ID, to follow mid: links.
  • mailsearch: searching the mail by conditions, here and on the servers.
  • folders: mail folders: what each is for, its name as you read it, where it is kept.
  • threads: conversations, tied by Message-ID, never by subject alone.
  • reading: a message laid out for reading: its text, what it quotes, what it forwards.
  • compose: writing: Markdown in, mail out.
  • mailto: mailto: addresses: the message a link asks to write.
  • handed: files, text and mailto: links other applications hand Sioul: each a draft.
  • pgp: OpenPGP for mail, with Sequoia.
  • securitykey: your OpenPGP keys on a security key (a YubiKey): signing and opening there, its certificate checked.
  • unsubscribe: leaving a mailing list in one click: when it may be done.
  • tasks: to-dos (VTODO) in CalDAV task lists, one per file, and what ties them to the rest.
  • plan: the plan: what can start, the one next step, when each task could happen.
  • capture: quick capture: one line typed, a task made.
  • blocks: time blocks: a task pinned to a time, as an event in a calendar.
  • demands: what a task or an event asks of you, and what it gives back.
  • capacity: what a day can hold, learned from your own days.
  • routines: routines: timed steps played one at a time.
  • stopped: where you stopped: one line kept when something interrupts you.
  • today: today’s own choices: how the day is, the steps put off for today.
  • projects: projects, every matter you follow, and the file in your notes folder that names them.
  • projectview: a project on one page: everything dated in it.
  • github: GitHub’s issues and pull requests that are yours, as tasks.
  • notes: a folder of Markdown files, read the way Obsidian reads a vault.
  • links: links between everything: mail, tasks, events, contacts, notes, budget lines.

§Time and money

  • timelog: time spent on tasks, and the focus session running now.
  • ids: the ids given to money lines, splits, presets and sessions when they are made, by which your devices merge them.
  • timereport: time spent, as the Time page and a project’s page show it.
  • invoice: invoices for work done for someone, from a project’s billable time.
  • budget: budgets, reserves, and the lines between them.
  • accounts: bank accounts, and the budgets each movement goes to.
  • bank: the money watch: the bank’s exports held against the recurring payments.
  • money: exact amounts, and the amounts written in mail.
  • contracts: contracts and subscriptions: when each renews, how to stop it.
  • papers: the papers wallet: the papers asked again and again, and when each ends.

§Hours, pauses and reminders

  • areas: what things are for (work, your admin, leisure), and which time is for what.
  • window: working hours: the days and hours work can reach you.
  • quiet: the time now (work, admin, a meal, sleep, leisure), and what comes then.
  • needs: the day’s needs, set first: meals, naps and night sleep.
  • pause: the two pauses: Free time, and Paused.
  • everywhere: do-not-disturb on every device.
  • reminders: reminders before dates: one quiet notification for each.
  • reviews: how each day went, as you said it.
  • sounds: sounds to rest by or to focus with, all made here.

§Health

  • health: prescriptions, medicines and when to take them, pauses to move, a limit on chats.
  • doses: each dose that fell due, as a record your devices share.

§Contacts and calendars

  • contacts: contacts, one vCard per person.
  • agenda: calendars: events from iCalendar files, repeating ones expanded.
  • vdir: address books and calendars on disk: one folder per collection, one file per item.
  • lines: content lines, the text format that vCard and iCalendar share.
  • phones: phone numbers, compared rather than rewritten.
  • places: where postal addresses are, to show contacts on a map.
  • duplicates: duplicates in the address books, found and cleaned when you ask.
  • overlaps: two events at once.
  • capabilities: what each kind of server keeps of a task or a contact.

§On a phone

  • calls: calls screened on a phone.
  • appnotes: other apps’ notifications on a phone: shown now, or held until their time.

§Settings, words and files

  • config: the configuration file: accounts, working hours, the notes folder.
  • settings: settings, shown where they apply, and written into the configuration.
  • i18n: every sentence Sioul shows, in your language.
  • sites: sites kept open in Sioul (a bank’s secure mailbox, a chat), and what they notified.
  • presets: sites people commonly keep, offered when adding one.
  • weather: the weather at a place you chose, for the status line.
  • filelock: one writer at a time on a file that two parts of Sioul change.

Modules§

accounts
Bank accounts and budgets (docs/accounting.md, “Bank accounts”). Where money is (a current account, PayPal, Stripe) and what it is for (the budgets) are two things: each movement an account’s exports bring goes to a budget, in parts between budgets, with a reserve, or to none (money moved between your own accounts). By your hand for that movement; else the same payment as a line the budgets hold already (from mail), counted there once; else money moved to or from PayPal or Stripe, when their own exports cover the day; else the first rule that names it (or, without words, every movement its way); else the recurring payment it stands for; else the account’s first budget. A card payment of daily life is spent from its budget’s estimate (food, clothes), never added on top of it. Reserves top the accounts up, in your order, each with its own delay.
agenda
Calendars: events from iCalendar files (RFC 5545), one event and its exceptions per file as CalDAV keeps them (RFC 4791 §4.1).
appnotes
Other apps’ notifications on a phone (docs/android.md, “Notifications from other apps”; research: docs/research/android-chats.md, 7 and 8). Android hands Sioul’s listener every notification the person lets it see; Sioul decides, notification by notification, whether it comes now or waits, and Android holds it (it is snoozed: Android brings it back at its time, whole, with its own tap and actions; Sioul never cancels one).
areas
What things are for, and which time is for what (docs/areas.md).
attention
What reaches you, and when: one model for everything Sioul shows, tells, holds or silences (docs/attention.md). Sioul spends one thing four ways, your attention: what it shows (the Porch, the pages), what it tells (its own notifications), what it holds of the system’s (other apps’ notifications, calls), and what it silences (the system’s do-not-disturb).
bank
The money watch (docs/accounting.md, “The bank”): your bank’s own export (OFX, CAMT.053, or its CSV) read into sioul-bank.toml, then held against the recurring payments of your budgets. Nobody looks when it goes badly (the ostrich effect, Olafsson & Pagel 2017), and a debit that stops does not say so: Sioul notices, and says it calmly and early.
blocks
Time blocks: a task pinned to a time is an event in a calendar, tied to the task both ways (docs/tasks.md, “Pinned to a time”). An event shows in every calendar application, a phone’s too, and moves there like any other; a line of the task’s own would be Sioul’s alone, and a time on the task’s start breaks when its date asked is a date (RFC 5545 §3.8.2.3: servers that check, Sabre for Nextcloud, refuse the task).
budget
Budgets, reserves, and the lines between them.
build
The build behind this Sioul (docs/building.md, “Which build”): its version and the commit it was built from, said in sioul --version, in Settings, in this device’s entry among your devices and in its records, so that what each device wrote can be traced to the code that wrote it.
calls
Calls screened on a phone (docs/android.md, “Calls”; docs/research/call-screening.md, section 8).
capabilities
What each kind of server keeps, so that moving a task or a contact never loses something silently, and so that what a server cannot do shows greyed with its reason rather than hidden (docs/google.md).
capacity
What a day can hold, learned from your own days (docs/capacity.md).
capture
Quick capture: one line typed, a task made. What the line says besides the title is shown as chips before the task is made, so nothing is misread silently (docs/tasks.md).
card
A card: what the Porch knows about one message before you open it.
codes
One-time codes, passwords, password resets, sign-in links and addresses to confirm, sent by mail.
compose
Writing: Markdown in, mail out.
config
The configuration file: accounts, admin windows, the notes folder.
consent
Consent per project: what of yours an AI agent connected with sioul mcp may read, and write into (docs/ai.md, “Consent per project”; docs/mcp.md).
contacts
Contacts: one vCard per person (RFC 6350; 3.0 from RFC 2426 too), as the address books on disk hold them (vdir).
contracts
Contracts and subscriptions (docs/accounting.md, “Contracts”): what you are bound to (rent, energy, phone, insurances, hosting, subscriptions), when each renews, the notice it needs, how to stop it, what it covers. Found from the recurring payments of your budgets and from mail; a reminder comes before the last day to send a notice; “Cancel” opens the provider’s own cancel page (in France a three-click button is required online since June 2023, loi 2022-1158) or drafts the letter. Facts about your contracts, never offers.
dayview
The day, seen (docs/tasks.md, “The day”): today’s events at their times, and the steps the plan gives today laid into your hours, each into hours of its own kind (work, admin), a pause between them and around the events; a line where now is. A step up to an hour is never cut; a longer one goes on after a break; one with margins never (going there twice is not the same step). Visual supports cut transition time (Dettmer et al. 2000); the current step is shown inside the whole day, with what comes next (Brili, Tiimo). A layout to look at, never a schedule to keep: nothing is written into the tasks, and a step that runs over only moves the next ones.
demands
What a task or an event asks of you, and what it gives back (docs/tasks.md, “What it asks, what it gives”; docs/capacity.md). Margins before and after it: getting there, getting ready, coming back; kept free in the plan, never counted as a pause. Rated by you from 0 to 10: what it costs, cognitively, emotionally, in anxiety, and to the body and senses (physical effort, standing, noise, crowds); and what it gives back to your well-being. Written in the task’s or the event’s own file (X-SIOUL-BEFORE, X-SIOUL-AFTER, X-SIOUL-COST, X-SIOUL-GAIN), so that it travels with it and other programs keep it.
doses
Each dose that fell due, as a record your devices share (docs/health.md, “Doses as records”): $XDG_STATE_HOME/sioul/health-doses.toml, in the sharing’s health part.
duplicates
Duplicates in the address books, looked for and cleaned only when you ask: a number or an address written twice on one card, and two cards that may be one person. Nothing changes without your click, and every change keeps the cards as they were, to put them back.
everywhere
Do-not-disturb on every device (docs/do-not-disturb.md): why it holds now, the switch pressed on any device, and the people who may reach you then.
filelock
One writer at a time on a file that two parts of Sioul change: the window marks a dose in the doses’ record while the sharing writes in it what your other devices marked. One writing an older copy over the other would lose a dose taken, and the sharing would then take it out on every device. An advisory lock on a hidden file beside it (.<name>.lock, which the sharing never carries), held while the file is read, changed and written.
folders
Mail folders: what each is for, its name as you read it, and where it is kept on disk.
github
GitHub, for those who work there; off unless asked in the task settings (docs/github.md). Issues and pull requests that are yours (assigned to you, your review asked; what you opened or where you are mentioned when you ask for it) become tasks in a local list, “GitHub”, never sent anywhere. GitHub’s notification mail is tied to its task.
handed
What other applications hand Sioul to write: files and text shared to it (Android’s share sheet, or one of your addresses straight from it), a mailto: link (Android, or the computer’s mail program). Each becomes a draft, its window opened; nothing is sent until you press Send (docs/client.md, “Writing from other applications”).
headers
The raw header block, unfolded (RFC 5322 §2.2.3).
health
Health and well-being: prescriptions, when to fetch their medicines and when to renew them; medicines and when to take them; a pause to move during long focus; a daily limit on chats. Sent nowhere, except sealed to your other devices when you share with them (docs/database.md).
i18n
Every sentence Sioul shows, in your language.
ids
Ids given to what is made (docs/database.md, “The format of what travels”): a money line, a split, a preset, a time session. Your devices merge each by its id (sioul_sync::share, format 2), so that two the same stay two, and one changed on two devices stays one.
invoice
Invoices for work done for someone. One is made from a project’s billable time not billed yet: a line per task (or per note, for time noted without a task), its hours at the project’s rate. Numbers follow each other within a year (“2026-001”, “2026-002”), as French law asks, and are never reused. Each invoice is kept as a record ($XDG_DATA_HOME/sioul/invoices/<number>.toml); the time it bills carries its number, so it is never billed twice; the window prints it to PDF, with the date or period of the service (the billed sessions’ first and last days), which French law asks for (service-public.gouv.fr, sheet F31808).
letters
Paper letters (docs/porch.md, “Paper letters”): a scan, a phone photo or a PDF dropped in a folder (by you, or a helper who opens the post), read by OCR, then understood by rules (the letters word lists, docs/words.md): who sent it, what it is, the amount, and the date by which something is asked, as a date, legal delays included (“dans un délai de deux mois à compter de la notification”). It waits outside like mail, and comes as a card in the Porch’s window, with a task for its date and its scan filed. The envelope stays outside; the date is computed once.
lines
Content lines, the text format vCard (RFC 6350 §3) and iCalendar (RFC 5545 §3.1) share: NAME;PARAM=VALUE:value, folded at 75 octets.
links
Links between everything: mail, tasks, events, contacts, notes, drafts, budget lines and projects.
lookalike
Senders who borrow a name: “lnfos PrimeVlDEO info@unrelated.example”.
maildir
Messages on disk: a Maildir (new/ and cur/), or a plain folder of .eml files.
mailindex
Messages by their Message-ID, to follow mid: links (RFC 2392) from a task, a note or a budget line to the message itself.
mailnote
New mail as a notification, at the times it may come (docs/porch.md, “Notifications”). The Porch keeps mail until you look; what your lists let through now is also told, once per batch, never once per message: the count in words and the first senders with their subjects. Batched notifications helped attention and mood where none at all made people more anxious (Fitz et al. 2019): what helps is predictability, not silence.
mailsearch
Searching the mail by conditions (docs/client.md, “Searching”).
mailto
mailto: addresses (RFC 6068): the message a link, or another application, asks to write. Recipients (the part before “?”, and to, cc, bcc), subject, body, and In-Reply-To for the message it answers. Nothing else is read: above all no attach or attachment, which some programs take and which would let a web page name one of your files, nor from. Nothing here sends anything: the address only fills a draft (docs/client.md, “Writing from other applications”).
money
Money: exact amounts, and the amounts written in mail.
needs
The day’s needs, set first: meals, naps and night sleep (docs/health.md, “Meals, rest and sleep”). Their times are kept free: the plan lays no task in them (plan::Settings::with_needs), the day shows meals and naps, and two notices come for each, at most: a heads-up about the work a quarter of an hour before (“No new big task”), then one at the time. Any day can differ from the usual one: a block moved, its times changed, quiet, taken out, or one added for that day only (Days, shared with your devices). Nothing about eating or sleeping is recorded, and nothing is said when one passes.
notes
Notes: a folder of Markdown files, read the way Obsidian reads a vault.
overlaps
Two events at once (docs/client.md, “Calendars”): found among the coming days’ events, the time kept before and after each counted (demands::Margins): going from one to the other takes time too. Said on the Porch for today and above the agenda, until set aside for good; an event moved is a new question.
papers
The papers wallet (docs/papers.md): the papers asked again and again (an identity card, the last tax notice, bank details, rent receipts, an attestation), each with its file and how long it holds; a reminder before one ends, early enough to renew it (a passport takes weeks, the complémentaire santé solidaire does not renew by itself).
pause
The two pauses (docs/pauses.md): Free time (« Temps libre »), taken for a good moment, and Paused (« En pause »), for a moment that overwhelms.
payments
Mail about money: a payment made or received, a bill, an order, a refund.
pgp
OpenPGP (RFC 9580) for mail, with Sequoia and its pure-Rust cryptography.
phonemsgs
The phone’s messages on your computers (docs/android.md, “Messages on your computers”; docs/database.md, “The phone’s messages”; docs/porch.md, “From your phone”; research: docs/research/sms.md, phase a).
phones
Phone numbers, compared rather than rewritten: “04 65 71 12 34”, “04.65.71.12.34”, “+33 4 65 71 12 34”, “+33 (0)4 65 71 12 34” and “0033465711234” are one number, written five ways. Each number gets a key, its international form (E.164, ITU-T) with its extension, and two numbers with one key are the same; what the card says stays as it was written.
places
Where postal addresses are, to show contacts on a map. An address is asked once, when you allow it, of OpenStreetMap’s geocoder; the answer (or that there is none) is kept here ($XDG_CACHE_HOME/sioul/places.toml), so an address leaves this computer once at most.
plan
The plan: what can start, the one next step, and when each task could happen. It is computed from the tasks each time, never stored, so it always starts from today (docs/tasks.md).
porch
The Porch: where new mail waits, checked and sorted, until you look.
presets
Sites people commonly keep, offered when adding one (docs/sites.md, “Presets”): per country, per state or province where it matters, and for everyone (chats, video calls, social networks, dating). Each says its type (how it behaves) and the categories it comes with (what it is about). A plain JSON file anyone can update without building Sioul (presets/sites.json; tools/check-presets.py checks every address): the newest, by its checked date, of the copy built in, one in $XDG_DATA_DIRS/sioul/presets/, and yours in $XDG_DATA_HOME/sioul/presets/.
projects
Projects: every matter you follow, in one list.
projectview
A project on one page: everything dated in it on one line of time (tasks asked and done, events, mail, notes changed, time noted, invoices), what is coming first, then what happened, newest first. Mail belongs to it by its routes or by a link; the rest by its project (REFID) or a link.
quiet
The time now, and what comes then (docs/areas.md). Five times: work and admin, the hours you set; meals and sleep, from Health; and leisure, every other time: evenings, days without hours, time off, a day closed early. Sleep first, then meals, then the hours. Two overrides, each until a time, kept in $XDG_STATE_HOME/sioul/quiet.toml: working late keeps work in view; done for the day brings leisure early, until work comes back. Outside work, work rests (quiet time); during sleep nothing disturbs, as usual: no notification but the doses you asked for. Two pauses come above them (docs/pauses.md, pause): the pause holds everything, whatever the time; Free time is leisure whatever the hour, sleep first, and may move the end of today’s work later.
reach
Who reaches you, on which channel (docs/porch.md, “Who may reach you, and when”), and the clock that says what time it is, ahead.
reading
A message laid out for reading: who wrote to whom, the attachments apart, and the text cut into what this message says, the messages it quotes, the headers of the messages it forwards, and the signature.
reminders
Reminders before dates (docs/reminders.md): remembering “on the 30th” is what fails most, in ADHD and in autism alike, and reminders work where memory is the bottleneck (Landsiedel et al. 2017; Altgassen et al. 2014; Jamieson et al. 2014). One quiet notification per date, never repeated:
reviews
How each day went, as you said it (docs/reviews.md): the morning’s weather, the review at the end of the work day (“Done for today”) and the one before sleep, each with how the day felt, its mix and a note, every answer optional. Kept readable in $XDG_DATA_HOME/sioul/reviews/YYYY-MM.toml, one table per date, and shared with the sharing’s “time” part, with the plan’s other files: every device learns the same.
routines
Routines (docs/tasks.md, “Routines”): a sequence of timed steps played one at a time, the next one said before it comes, so nothing is decided while doing (Routinery). Moving on when a step’s time is up is each routine’s choice: it helps some and pressures others. Skipping costs nothing and is never counted. Kept in the configuration ([[routine]]), so they travel with your settings.
rules
Mail filters: what a message shows, and what is then done to it on its server (docs/client.md, “Filters”).
securitykey
Your OpenPGP keys on a security key: an OpenPGP card, such as a YubiKey or a Nitrokey (OpenPGP card specification 3.4).
settings
Settings, shown where they apply. Each page has its own few, behind one small button, each with a sentence saying what it changes; there is no long preferences window (docs/client.md, “Calm first”). What is set here is written to the configuration file in place, its comments kept (config::set_value), or to the senders’ lists.
shield
The shield of a public address. A contact address brings work, and also insults; its mail is read first, here, before you see any of it:
sites
Sites kept open in Sioul: secure mailboxes (a bank’s, a hospital’s, the tax office’s), chats, a dating site. Each is a portal account; this module says what each is, which mail announces it, and keeps what they notified, to be shown at your pace ($XDG_STATE_HOME/sioul/site-notices.toml): a site’s notification is always accepted, then waits, unless the site is in real time.
sounds
Sounds to rest by or to focus with (docs/sounds.md), all made here, nothing downloaded, nothing to license, each looping without a seam (its end faded into its start):
spam
Sioul’s own spam filter, the part every device runs (docs/spam-filter.md): the tokenizer (tokenize), the header features (features), the reduced table that scores both (table), the label log and the log of what the filter moved (labels), and the filter as the Porch asks it (Filter). The training, on one computer, by hand, is the sioul-learn crate’s; it writes the table with table::Table::write, and shares these functions with the phone, so that both read a message the same way.
state
What the Porch remembers between windows: where you closed it.
stopped
Where you stopped: one line left when something interrupts you (a pause to move, a meal, a nap, the night, the end of the day, a timer stopped), shown again when you come back, on the Porch, the Tasks page and the focus window, until you say it is done. Stopping then costs no fear of forgetting where you were (interruption research: a cue to resume cuts the time to get back into a task, Trafton et al. 2003; Leroy & Glomb 2018). One line, kept in $XDG_STATE_HOME/sioul/stopped.toml, carried to your other devices with the sharing.
tasks
Tasks: to-dos (VTODO, RFC 5545 §3.6.2) in CalDAV task lists, one per file, with what ties them to the rest (RFC 9253, “iCalendar Relationships”):
taskview
What the task pages show, in words: the next step and why, the board, the list, the timeline, one task in full. The core decides and words it; the window only lays it out (docs/architecture.md).
text
Text helpers shared by the detectors.
textdraft
A text drafted by an AI agent (sioul mcp, draft_text; docs/mcp.md, “Texts”): it waits in the Texts page, in its conversation, until you use it (its words go in the box, and sending stays your Send) or discard it. Never sent: a draft is no request (texts::Request), and nothing reads this file to send.
texts
Texts on your computers, read and sent through your phone, without Sioul being the phone’s SMS app (docs/texts.md; research: docs/research/sms.md, phase b). The phone’s SMS app stays the record: a fault of Sioul’s can delay a text on the computer, never lose one on the phone.
threads
Conversations: messages tied by their Message-ID and the ids they answer or cite (In-Reply-To, References; RFC 5322 §3.6.4), never by subject alone, which would join strangers who both wrote “Hello”. A message tied to another through a third is in the same conversation.
timelog
Time spent on tasks, and the focus session running now.
timereport
Time spent, as the Time page and a project’s page show it: a bar per day (per month over a year), the hours of each project, and for work done for someone, what is left to bill. A session counts for its own project when it names one, else for its task’s project for a client, else its task’s first project.
today
Today’s own choices: how the day is, and the steps put off for today.
trust
Who really sent a message, from what the servers recorded.
unsubscribe
Leaving a mailing list in one click (docs/client.md, “Unsubscribing”).
vdir
Address books and calendars on disk, as vdir: one folder per collection, one file per contact (.vcf) or per event (.ics), the collection’s name and colour in the files displayname and color. pimsync, vdirsyncer, khal and khard read the same folders (https://vdirsyncer.pimutils.org/en/stable/vdir.html).
view
What the window shows, as plain data: every sentence already translated, nothing left to decide.
voicemail
Voicemail the operator sends by e-mail (docs/android.md, “Calls”; docs/research/call-screening.md, 5.4). Some operators, set to, mail each message left on your voicemail: the caller’s number, the date and the length of the message, and the sound as an attachment (research 5.4 quotes one operator’s help pages). Their exact words, senders and file names are not published: read tolerantly. Only the operators’ domains you name are read (words::VoicemailWords::operators; none in the packs, so nothing is read until you name yours), with the words of the languages in use. A message is one when it comes from those domains and either carries a sound, or says voicemail with a caller (or a hidden one) and a length; the caller’s number, when the message was left and how long it lasts are read from its subject and text, the time from its Date when the text gives none.
weather
The weather at a place you chose, for a small applet in the status line: now, the next four hours one by one, then mornings, afternoons, evenings and nights; and for the phone’s card on the home screen (card, days): the hour under way, the next four, the next four parts of the day, then the next seven days. From Open-Meteo (no key; data CC BY 4.0, credited where shown: https://open-meteo.com/en/licence), in monochrome icons.
window
Working hours: the days and hours work can reach you, each day on or off, from a start to an end. Mail keeps arriving in the background; the Porch shows it only in these hours and always says when they open again; outside them, quiet time (quiet.rs). Predictable looks, not silence: in a field trial, people given no notifications at all felt more anxious, while batching them three times a day helped (Fitz et al. 2019; docs/research.md). The same rows say when offices are open, for tasks that need one.
words
The words Sioul looks for (docs/words.md): every list a recogniser matches text against (one-time codes, bills, letters, folders, brands, the spam filter’s tokenizer…), out of the code and into data that you can change.