Projects and workspaces¶
octomate.config.mirrors ¶
How project mirrors are synced, and the identity on the commits Octomate makes.
GitIdentity
pydantic-model
¶
Bases: BaseModel
The identity on commits Octomate itself makes — a directory mirror's sync
commits today, thread-branch turn commits later. The machine's by default, so
its record-keeping is never attributed to whoever's dotfiles are installed,
and a fresh server commits without a git config --global first.
Fields:
Source code in octomate/config/mirrors.py
commit_flags
property
¶
The -c flags that make a commit this identity's.
Passed per invocation rather than written with git config, so nothing
persists into a repository for whatever Octomate makes from it next to
inherit. Signing is off: these commits are the machine's record-keeping,
and nothing a host's signing key should be vouching for.
MirrorsConfig
pydantic-model
¶
Bases: BaseModel
How project mirrors are synced.
Fields:
-
freshness_window(float) -
identity(GitIdentity)
Source code in octomate/config/mirrors.py
freshness_window
pydantic-field
¶
Seconds within which a synced mirror is current enough to fork without asking the upstream again. Zero on purpose: a failed fetch already degrades to the stale mirror, so this is purely a performance knob, and there is no number to set it to before the fetch cost is measured where the server actually runs.
octomate.config.workspaces ¶
Workspace reclamation: how long a thread's fork may sit idle, and how often the sweep looks.
WorkspacesConfig
pydantic-model
¶
Bases: BaseModel
When a thread's workspace is reclaimed.
Fields:
-
idle_window(float) -
sweep_interval(float)
Source code in octomate/config/workspaces.py
idle_window
pydantic-field
¶
Seconds a workspace goes unused before the sweep may reclaim it, measured from the last turn that ran in it. Generous by default: every turn leaves its work in the mirror, so reclaiming early costs a resume and never the work — but a resume is a fork and a checkout, and a fork nobody has touched for a day is what the disk is for. Shorten it on a host tight for space, not to tidy up.
sweep_interval
pydantic-field
¶
Seconds between sweeps. Every idle workspace is snapshotted again to prove the mirror already has it, so this is work proportional to how many are lying around; there is nothing to gain by looking often.