hermes-agent/hermes_cli
Regina ee659d1d8f fix(state): heal durable alternation violations at the restore boundary
A turn that persists a user row with no assistant row (suppressed reply,
or two concurrent turns interleaving their flushes) leaves a user;user
pair in state.db. The defensive pre-request repair_message_sequence then
re-fires on EVERY request for the rest of the session's life — it mutates
only the per-request list, never the stored transcript.

Add repair_alternation (default False) to get_messages_as_conversation
and pass it from the three live-replay restore sites (gateway
load_transcript, CLI session resume x2). Inspection/export consumers
(trace upload, context guard, api_server history) keep the verbatim
default.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 04:43:45 -07:00
..
dashboard_auth fix(auth): preserve provider fallback during refresh 2026-07-14 07:02:05 -07:00
proxy
…
subcommands feat(slack): support agent view manifests 2026-07-14 13:58:36 -07:00
__init__.py
…
_parser.py feat(cli): restore cwd on resume (--no-restore-cwd) 2026-07-12 05:08:13 -04:00
_subprocess_compat.py
…
active_sessions.py
…
auth.py docs(auth): scrub Fly.io host detail from quarantine-log comment (#60145) 2026-07-16 08:44:43 +10:00
auth_commands.py
…
azure_detect.py fix(security): secure Azure catalog probes 2026-07-11 12:28:55 +05:30
backup.py
…
banner.py
…
blueprint_cmd.py
…
browser_connect.py
…
build_info.py
…
bundles.py
…
callbacks.py
…
checkpoints.py
…
claw.py
…
cli_agent_setup_mixin.py fix(state): heal durable alternation violations at the restore boundary 2026-07-16 04:43:45 -07:00
cli_commands_mixin.py feat(reasoning): add max and ultra effort levels (#62650) 2026-07-12 00:26:49 -07:00
cli_output.py
…
clipboard.py
…
codex_models.py
…
codex_runtime_plugin_migration.py
…
codex_runtime_switch.py
…
colors.py
…
commands.py feat(codex): redeem banked usage-limit resets via /usage reset (#64280) 2026-07-14 03:23:19 -07:00
completion.py
…
config.py feat(dashboard): clarify manual Telegram bot setup 2026-07-16 00:21:01 -07:00
console_engine.py
…
container_boot.py fix(container): keep named multiplex gateway slots down (#65368) 2026-07-16 14:30:05 +10:00
context_switch_guard.py
…
copilot_auth.py
…
cron.py
…
curator.py
…
curses_ui.py
…
dashboard_register.py
…
debug.py
…
default_soul.py
…
dep_ensure.py
…
diagnostics_upload.py
…
dingtalk_auth.py
…
doctor.py feat(providers): Support DeepInfra as an LLM provider 2026-07-14 02:59:39 +05:30
dump.py
…
env_loader.py
…
fallback_cmd.py
…
fallback_config.py
…
gateway.py fix(gateway): stop systemd retries on fatal config 2026-07-16 01:19:29 -07:00
gateway_enroll.py
…
gateway_windows.py
…
goals.py fix(auxiliary): route direct-create aux callers through call_llm (#65029) 2026-07-15 07:39:17 -07:00
gui_uninstall.py
…
hooks.py
…
input_sanitize.py fix(input): strip bracketed-paste leaks before prompt persistence (#62557) 2026-07-15 07:39:42 -07:00
inventory.py fix(model): keep configured provider authoritative 2026-07-11 05:43:07 -07:00
journey.py
…
kanban.py
…
kanban_db.py review follow-up: violation-only retry streak with defined max_retries precedence 2026-07-14 16:47:33 +05:30
kanban_decompose.py fix(auxiliary): route direct-create aux callers through call_llm (#65029) 2026-07-15 07:39:17 -07:00
kanban_diagnostics.py
…
kanban_specify.py fix(auxiliary): route direct-create aux callers through call_llm (#65029) 2026-07-15 07:39:17 -07:00
kanban_swarm.py
…
logs.py
…
main.py fix(cli): don't run Windows npm on WSL update and stop reporting success on Node refresh failure 2026-07-16 04:24:23 -07:00
managed_scope.py
…
managed_uv.py
…
mcp_catalog.py feat(mcp): enforce exact version pins across the whole MCP catalog 2026-07-15 04:56:25 -07:00
mcp_config.py fix(dashboard): add HTTP MCP authentication (#65146) 2026-07-16 00:02:09 +05:30
mcp_picker.py
…
mcp_security.py
…
mcp_startup.py
…
memory_oauth.py
…
memory_providers.py
…
memory_setup.py
…
middleware.py
…
migrate.py
…
moa_cmd.py feat(moa): support per-slot reasoning effort 2026-07-14 21:08:22 -07:00
moa_config.py fix(moa): reject half-filled MoA saves at the API boundary and hold desktop autosave until slots are complete 2026-07-15 09:50:08 -07:00
model_catalog.py feat(models): catalog-labeled silent default — GLM-5.2 marked "default": true in the model catalog 2026-07-15 00:10:31 -07:00
model_cost_guard.py
…
model_normalize.py
…
model_setup_flows.py feat(pricing): refresh Fireworks snapshot to 2026-07, cover full serverless catalog + cached picker pricing 2026-07-16 04:24:14 -07:00
model_switch.py fix(model): merge configured models into picker rows (#63055) 2026-07-12 03:05:12 -07:00
models.py feat(pricing): refresh Fireworks snapshot to 2026-07, cover full serverless catalog + cached picker pricing 2026-07-16 04:24:14 -07:00
nous_account.py
…
nous_auth_keepalive.py
…
nous_billing.py
…
nous_subscription.py
…
onepassword_secrets_cli.py
…
oneshot.py fix(agent): honor custom-provider extra_body for multi-model catalogs 2026-07-12 23:30:52 -07:00
pairing.py
…
partial_compress.py
…
pets.py
…
platforms.py
…
plugins.py fix(approval): emit observer hooks for smart verdicts 2026-07-13 02:00:09 -07:00
plugins_cmd.py
…
portal_cli.py
…
profile_describer.py fix(auxiliary): route direct-create aux callers through call_llm (#65029) 2026-07-15 07:39:17 -07:00
profile_distribution.py
…
profiles.py
…
projects_cmd.py
…
projects_db.py
…
prompt_size.py
…
provider_catalog.py
…
providers.py feat(agent): add Upstage Solar as a model provider 2026-07-15 00:09:24 +05:30
psutil_android.py
…
pt_input_extras.py
…
pty_bridge.py
…
pty_session.py
…
relaunch.py
…
runtime_provider.py fix(bedrock): streaming fallback to Converse API + image base64 decode + bearer token routing 2026-07-15 09:59:38 -07:00
secret_prompt.py
…
secrets_cli.py
…
security_advisories.py
…
security_audit.py
…
security_audit_startup.py
…
send_cmd.py
…
service_manager.py
…
session_export.py
…
session_export_html.py
…
session_export_md.py
…
session_filters.py
…
session_listing.py
…
session_recap.py
…
setup.py
…
setup_whatsapp_cloud.py
…
skills_config.py
…
skills_hub.py fix(skills): install referenced bundle files with scan provenance 2026-07-12 02:59:27 -07:00
skin_engine.py
…
slack_cli.py fix(slack): complete agent view workspace routing 2026-07-14 13:58:36 -07:00
sqlite_util.py
…
status.py feat(providers): Support DeepInfra as an LLM provider 2026-07-14 02:59:39 +05:30
stdio.py
…
suggestions_cmd.py
…
telegram_managed_bot.py
…
timeouts.py
…
tips.py feat(dashboard): add session import flow 2026-07-13 15:41:00 +05:30
tools_config.py fix(tools): don't report platform-restricted toolsets as enabled 2026-07-16 01:17:11 -07:00
toolset_validation.py
…
uninstall.py
…
urllib_security.py fix(security): order sanitizer after installed hooks 2026-07-11 12:28:55 +05:30
voice.py
…
web_git.py feat(desktop): auto-fetch remote base branch before worktree add 2026-07-13 14:53:34 -04:00
web_server.py feat(analytics): record auxiliary model usage per task in session accounting (#65537) 2026-07-16 04:23:12 -07:00
webhook.py fix(webhook): make dual-stack bind exclusive 2026-07-16 12:36:51 +05:30
win_pty_bridge.py
…
write_approval_commands.py
…
xai_retirement.py
…