jdx/mise · error
history is disabled (history.enabled = false)
Error message
history is disabled (history.enabled = false)
What it means
`mise bootstrap dotfiles origin set` configures how dotfiles history/edits sync with a remote origin. This feature depends on the checkpoint history subsystem, which can be turned off via the `history.enabled` setting. If history is disabled, mise throws "history is disabled (history.enabled = false)" because origin sync cannot function without it.
Source
Thrown at src/cli/dotfiles/origin.rs:83
origin.branch,
crate::file::display_path(&path),
SyncMode::current()?.as_str()
);
}
None => miseprintln!(
"no setup repository is connected; `mise bootstrap dotfiles origin set <url>` connects one"
),
}
Ok(())
}
}
}
}
impl DotfilesOriginSet {
async fn run(self) -> Result<()> {
if !crate::config::Settings::get().history.enabled {
bail!("history is disabled (history.enabled = false)");
}
let mode = match self.sync.as_deref() {
Some(mode) => SyncMode::parse(mode)?,
None if self.yes || crate::config::Settings::get().yes => SyncMode::current()?,
None => match crate::ui::prompt::confirm_with_default(
"Automatically publish saved edits AND apply incoming changes to live files? Choose no for manual sharing; local autosave continues in either mode.",
false,
)? {
crate::ui::prompt::Confirmation::Yes => SyncMode::Sync,
crate::ui::prompt::Confirmation::No => SyncMode::Manual,
crate::ui::prompt::Confirmation::Unavailable => {
bail!(
"not connected: choose --sync manual, --sync sync, or --sync fetch-only to connect without a mode prompt"
);
}
},
};
let (store, tracked, _) = super::history::open().await?;View on GitHub (pinned to afd2eddd3a)
Solutions
- Enable history in settings: `mise settings set history.enabled true` (or set it in settings.toml), then retry.
- If history must stay disabled, use alternative sharing (manually copy the dotfile source files) instead of origin sync.
- Check current value with `mise settings get history.enabled` to confirm the cause.
Example fix
// before (settings.toml) [history] enabled = false // after [history] enabled = true
Defensive patterns
Strategy: validation
Validate before calling
[ "$(mise settings get history.enabled)" = "true" ] || { echo "enable history first: mise settings set history.enabled true"; exit 1; } Prevention
- Keep history.enabled = true if you plan to use dotfiles origin sync.
- Check related settings before scripting dotfiles origin commands.
When it happens
Trigger: Running `mise bootstrap dotfiles origin set ...` (DotfilesOriginSet::run) while `Settings::get().history.enabled` is false in the user's settings.
Common situations: Users who disabled dotfiles history for privacy/disk reasons and later try to configure origin sync; settings inherited from a managed/default settings.toml that turns history off.
Related errors
- history is disabled (history.enabled = false)
- [dotfiles]."{}": source does not exist: {}
- [dotfiles]."{}": mode symlink-each requires a directory sour
- [dotfiles]."{}": target is not a safe OCI path
- {raw}: multiple [dotfiles] edit entries match; choose one of
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/8f5b5982e450b7d2.
Report an issue: GitHub.