hermes-agent/hermes_cli
Teknium 381810ad50
feat: fix SQLite safety in hermes backup + add --quick snapshots + /snapshot command (#8971)
Three changes consolidated into the existing backup system:

1. Fix: hermes backup now uses sqlite3.Connection.backup() for .db files
   instead of raw file copy. Raw copy of a WAL-mode database can produce
   a corrupted backup — the backup() API handles this correctly.

2. hermes backup --quick: fast snapshot of just critical state files
   (config.yaml, state.db, .env, auth.json, cron/jobs.json, etc.)
   stored in ~/.hermes/state-snapshots/. Auto-prunes to 20 snapshots.

3. /snapshot slash command (alias /snap): in-session interface for
   quick state snapshots. create/list/restore/prune subcommands.
   Restore by ID or number. Powered by the same backup module.

No new modules — everything lives in hermes_cli/backup.py alongside
the existing full backup/import code.

No hooks in run_agent.py — purely on-demand, zero runtime overhead.

Closes the use case from PRs #8406 and #7813 with ~200 lines of new
logic instead of a 1090-line content-addressed storage engine.
2026-04-13 04:46:13 -07:00
..
__init__.py
auth_commands.py
auth.py fix: write refreshed Codex tokens back to ~/.codex/auth.json (#8277) 2026-04-12 02:05:20 -07:00
backup.py feat: fix SQLite safety in hermes backup + add --quick snapshots + /snapshot command (#8971) 2026-04-13 04:46:13 -07:00
banner.py
callbacks.py
claw.py fix: unify OpenClaw detection, add isatty guard, fix print_warning import 2026-04-12 16:40:37 -07:00
cli_output.py
clipboard.py
codex_models.py
colors.py
commands.py feat: fix SQLite safety in hermes backup + add --quick snapshots + /snapshot command (#8971) 2026-04-13 04:46:13 -07:00
config.py fix: follow-up for salvaged PR #8939 2026-04-13 04:35:37 -07:00
copilot_auth.py
cron.py
curses_ui.py feat(cli): add native /model picker modal for provider → model selection 2026-04-11 17:16:06 -07:00
debug.py feat: add hermes debug share — upload debug report to pastebin (#8681) 2026-04-12 18:05:14 -07:00
default_soul.py
doctor.py
dump.py fix(gateway): harden Docker/container gateway pathway 2026-04-12 16:36:11 -07:00
env_loader.py fix: sanitize .env before loading to prevent token duplication (#8908) 2026-04-13 04:35:37 -07:00
gateway.py fix(gateway): keep venv python symlink unresolved when remapping paths 2026-04-13 00:49:22 -07:00
logs.py feat: component-separated logging with session context and filtering (#7991) 2026-04-11 17:23:36 -07:00
main.py feat: fix SQLite safety in hermes backup + add --quick snapshots + /snapshot command (#8971) 2026-04-13 04:46:13 -07:00
mcp_config.py feat: add --env and --preset support to hermes mcp add 2026-04-11 15:34:57 -07:00
memory_setup.py
model_normalize.py fix: preserve dots in model names for OpenCode Zen and ZAI providers (#8794) 2026-04-12 21:22:59 -07:00
model_switch.py fix(cli): narrow Nous Hermes non-agentic warning to actual hermes-3/-4 models 2026-04-13 04:33:52 -07:00
models.py fix: preserve dots in model names for OpenCode Zen and ZAI providers (#8794) 2026-04-12 21:22:59 -07:00
nous_subscription.py
pairing.py
platforms.py docs: add platform adapter developer guide + WeCom Callback docs (#7969) 2026-04-11 15:50:54 -07:00
plugins_cmd.py
plugins.py
profiles.py fix: improve profile creation UX — seed SOUL.md + credential warning (#8553) 2026-04-12 12:22:34 -07:00
providers.py
runtime_provider.py fix: propagate model through credential pool path + add tests 2026-04-11 14:09:40 -07:00
setup.py fix: preserve dots in model names for OpenCode Zen and ZAI providers (#8794) 2026-04-12 21:22:59 -07:00
skills_config.py
skills_hub.py fix(skills): cache GitHub repo trees to avoid rate-limit exhaustion on install 2026-04-12 16:39:04 -07:00
skin_engine.py
status.py fix(gateway): harden Docker/container gateway pathway 2026-04-12 16:36:11 -07:00
tips.py feat(tips): add 69 deeper hidden-gem tips (279 total) (#8237) 2026-04-12 00:54:07 -07:00
tools_config.py
uninstall.py
web_server.py feat: web UI dashboard for managing Hermes Agent (#8756) 2026-04-12 22:26:28 -07:00
webhook.py