Repository navigation
What you can depend on
github-actions[bot] edited this page Oct 28, 2026
·
4 revisions
These are the parts bothy does not change within a major version. Renaming or removing any of them is a breaking change, and is announced as one.
-
The keys in
config.toml. Existing keys are not renamed or removed. When one has to change, the old name keeps working andbothy doctornames the replacement — that is whatconfig.Retiredis for. - The profile and palette TOML schemas, so a profile you wrote keeps rendering.
-
The two directories.
~/.local/share/bothy/holds what bothy installs,~/.config/bothy/holds what you set. Neither moves. -
The
doctor --jsonshape, and the check IDs in it.--jsonexists so something else can read it; IDs may be added, but an existing one keeps its meaning. New checks are additive, so parse defensively and ignore what you do not recognise.
config.toml carries schema = 1, written at the top of the file. It is
bothy's bookkeeping rather than a setting — bothy config set refuses it — and
it exists so a newer bothy can recognise an older file deliberately rather than
by absence. A config from a newer bothy still loads: doctor warns, and the
keys this version understands still work.
Not covered: anything printed for a human to read, the layout of
bothy doctor's normal output, and the internal Go packages.
ADR-036 records what this obliges and why a config from a newer bothy warns rather than refuses.