Expand description
Time spent on tasks, and the focus session running now.
A session is a stretch of time given to one task, usually through the focus
timer. Sessions are kept in plain files, one per month
($XDG_DATA_HOME/sioul/time/2026-10.toml), not in CalDAV: they are your
record, other devices need not carry them, and a task’s file stays small.
The session running now is kept on disk too (time/running.toml), so
closing the window does not lose it.
Time can also be noted by hand, for a task or for a project alone (a meeting, a call); billable time of a project carries, once billed, the number of its invoice, so it is never billed twice.
Each session says how its minutes were known (Kind): measured by the
timer, typed by hand, or measured then corrected by hand. A typed duration
is a memory, with its known bias (Roy, Christenfeld & McKenzie 2005), so the
estimate’s correction counts it little (capacity, docs/capacity.md).
Structs§
Enums§
- Kind
- How a session’s minutes were known.
Constants§
- OPEN_
ENDED_ 🔒CEILING - Minutes an open-ended session counts at most: one left running all night is not a night’s work.
Functions§
- change_
in - The session
keynames, changed bychange: in place within its month; moved to another month, written there first, then taken out of its old one, so that nothing is lost on the way. Returns whether it was found. - change_
running - change_
running_ in - The running session, as the file holds it now, changed by
changeand kept, all under the file’s lock, which the sharing takes too: a press is set over the session as it is then. Whether one was running. - finish
- finish_
in - Ends the running session: recorded, then forgotten. A session left running
for hours (the window closed, a night passed) counts only the time chosen;
an open-ended one (
planned0), three hours at most. - finish_
noted_ in - Ends the running session kept in
dir, with where you stopped. - finish_
with_ note - Ends the running session with where you stopped.
- folder
- Where the sessions are kept.
- keep_
running - keep_
running_ in - Keeps the running session, or forgets it (None).
- month_
file 🔒 - record
- Adds a session to its month’s file.
- record_
in - Adds a session to its month’s file, in
dir, with an id of its own when it has none. - remove_
in - Takes out the sessions
keysnames (time noted by mistake). - running
- running_
in - The session running now, if any.
- running_
path 🔒 - sessions
- Every session, oldest first.
- sessions_
in - Every session kept in
dir, oldest first. - spent
- Minutes spent on each task, by UID, between two instants (Unix seconds).
- update_
in - Changes the sessions
keysnames withchange, in their month files indir; returns how many were changed. - write_
atomically 🔒