hermes-agent/hermes_cli
teknium1 4f67c33383 fix(config): whitelist real non-DEFAULT_CONFIG roots + normalize test line endings
Follow-ups on the salvaged unknown-root-key warning from PR #67345:

- Add image_gen, video_gen, plugins, smart_model_routing, platform_toolsets,
  session_reset, multiplex_profiles, profile_routes, platforms,
  require_mention, unauthorized_dm_behavior, and signal to
  _EXTRA_KNOWN_ROOT_KEYS — all are read from the raw user YAML (gateway,
  registries, plugin CLI) or written by our own setup wizard, but absent
  from DEFAULT_CONFIG. Without this, doctor would warn on configs Hermes
  itself wrote.
- Convert tests/hermes_cli/test_config_validation.py back to LF line
  endings (the PR's rewrite introduced CRLF).
2026-07-19 01:09:04 -07:00
..
dashboard_auth fix(mcp): complete OAuth through hosted dashboards 2026-07-17 04:50:47 -07:00
proxy security(gateway): set explicit client_max_size on 3 uncapped aiohttp servers (#59180) 2026-07-05 14:48:28 -07:00
subcommands fix(cron): harden execution attempt ledger 2026-07-17 04:58:35 -07:00
__init__.py chore: release v0.18.2 (2026.7.7.2) (#60651) 2026-07-07 20:11:08 -07:00
_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 fix(auth): detect configured providers absent from registry (#66017) 2026-07-16 22:56:45 -04:00
auth_commands.py fix(auth): make xAI OAuth pools multi-account resilient 2026-07-17 11:37:25 +05:30
azure_detect.py fix(security): secure Azure catalog probes 2026-07-11 12:28:55 +05:30
backup.py fix(discord): harden reconnect message recovery 2026-07-18 14:01:33 -07:00
banner.py feat(install): warn pip/Homebrew installs are unsupported (CLI, TUI, desktop) (#57225) 2026-07-07 21:13:19 -07:00
blueprint_cmd.py
browser_connect.py fix: /browser connect times out when another app squats the CDP port 2026-07-18 02:49:28 -07:00
build_info.py
bundles.py
callbacks.py
checkpoints.py
claw.py
cli_agent_setup_mixin.py fix(cli): sanitize terminal escapes when replaying stored history (/resume recap, /status recap) 2026-07-17 04:53:38 -07:00
cli_billing_mixin.py feat(tui+cli): change your Nous plan from the terminal (/subscription, /topup, terminal-billing UX) (#51639) 2026-07-18 14:30:24 +05:30
cli_commands_mixin.py fix(cli): restore session cwd on mid-chat /resume (transplant to mixin) 2026-07-18 23:20:32 -04:00
cli_output.py
clipboard.py
codex_models.py feat(openai): complete gpt-5.6 E2E — codex catalog + 272K compaction auto-raise 2026-07-10 00:47:51 +05:30
codex_runtime_plugin_migration.py
codex_runtime_switch.py
colors.py
commands.py feat(tui+cli): change your Nous plan from the terminal (/subscription, /topup, terminal-billing UX) (#51639) 2026-07-18 14:30:24 +05:30
completion.py
config.py fix(config): whitelist real non-DEFAULT_CONFIG roots + normalize test line endings 2026-07-19 01:09:04 -07:00
console_engine.py refactor(console): remove hosted-context command blocking from Hermes Console (#66144) 2026-07-17 04:33:34 -07:00
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 fix(cron): harden execution attempt ledger 2026-07-17 04:58:35 -07:00
curator.py feat(curator): add hermes curator usage — all-skills usage view 2026-07-06 12:26:21 -07:00
curses_ui.py
dashboard_register.py
debug.py fix: remove dead f-string prefixes via ruff F541 (216 sites) (#52336) 2026-07-05 13:42:46 -07:00
default_soul.py
dep_ensure.py
diagnostics_upload.py
dingtalk_auth.py refactor(setup): route dependency installs through the canonical uv→pip→ensurepip ladder 2026-07-07 04:09:35 -07:00
doctor.py feat(config): warn on unknown top-level keys + report deprecated keys/env in doctor 2026-07-19 01:09:04 -07:00
dump.py fix(cron): accept UTF-8 BOM when reading jobs.json 2026-07-18 02:31:20 -07:00
env_loader.py fix(cli): warn once per path for UTF-32 .env refuse-to-mangle 2026-07-18 19:01:10 -04:00
fallback_cmd.py
fallback_config.py fix(auth): honor per-entry key_env when resolving fallback providers 2026-07-16 07:19:36 -07:00
gateway.py fix(gateway): recover Discord websocket and event-loop stalls 2026-07-18 20:01:55 +05:30
gateway_enroll.py feat(gateway): generic OIDC client-credentials relay provisioning (NAS-free) (#60730) 2026-07-08 16:55:32 +10:00
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 docs(kanban): clarify unblock status routing 2026-07-17 15:47:39 -07:00
kanban_db.py refactor(kanban): unify attachment size cap on KANBAN_ATTACHMENT_MAX_BYTES 2026-07-16 07:33:14 -07:00
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 fix(kanban): clear failure/crash diagnostics while a retry is in flight 2026-07-09 16:13:59 -05:00
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 fix: remove dead f-string prefixes via ruff F541 (216 sites) (#52336) 2026-07-05 13:42:46 -07:00
main.py fix(cli): try bundled TUI before requiring ui-tui workspace (#67116) 2026-07-18 17:17:25 -04: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(mcp): close hosted OAuth lifecycle gaps 2026-07-17 04:50:47 -07:00
mcp_picker.py
mcp_security.py
mcp_startup.py
memory_oauth.py
memory_providers.py
memory_setup.py refactor(setup): route dependency installs through the canonical uv→pip→ensurepip ladder 2026-07-07 04:09:35 -07:00
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): surface stale presets without retries 2026-07-17 13:49:12 -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 feat: add /model --once one-turn model override (#29914) 2026-07-18 14:01:56 -07:00
models.py fix(models): add kimi-for-coding-highspeed to kimi-coding provider list 2026-07-16 19:35:16 -07:00
nous_account.py
nous_auth_keepalive.py
nous_billing.py Terminal-billing client hardening: shared wire types, wire-layer tests, dead RPC removal (#61067) 2026-07-18 07:05:58 -07:00
nous_subscription.py
onepassword_secrets_cli.py fix(secrets): remove unused masked_secret_prompt import from onepassword CLI 2026-07-06 04:58:07 -07:00
oneshot.py fix(delegate): declare stateless channel in one-shot and cron so delegate_task returns results 2026-07-18 00:05:25 -07:00
pairing.py
partial_compress.py feat(commands): /compact alias + --preview/--dry-run flags for /compress (#3243 salvage) 2026-07-02 05:10:31 -07:00
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 fix(dashboard): unblock basic auth plugin when setting password interactively (#54489) (#63786) 2026-07-16 19:49:39 -04:00
portal_cli.py fix: remove dead f-string prefixes via ruff F541 (216 sites) (#52336) 2026-07-05 13:42:46 -07:00
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 fix: remove dead f-string prefixes via ruff F541 (216 sites) (#52336) 2026-07-05 13:42:46 -07:00
projects_cmd.py
projects_db.py
prompt_size.py fix(prompt-size): respect enabled/disabled toolsets per platform 2026-07-05 19:13:20 -07:00
provider_catalog.py
providers.py fix(model-switch): override stale api_mode with host-mandated mode on OpenAI-direct switch 2026-07-17 15:47:08 -07:00
psutil_android.py
pt_input_extras.py
pty_bridge.py
pty_session.py feat(pty): periodic reaper wired into dashboard lifespan 2026-07-07 15:15:37 -07:00
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 feat: add prompt-only session export 2026-07-07 13:29:58 -07:00
session_export_html.py fix(session-export): escape html tool call names 2026-07-09 19:54:02 -07:00
session_export_md.py feat(sessions): full prune-filter set + --redact on sessions export 2026-07-07 12:36:41 -07:00
session_filters.py feat(sessions): full filter surface for prune + bulk archive subcommand (#59327) 2026-07-05 22:04:52 -07:00
session_listing.py feat(gateway): add /sessions search <query> (#57685) 2026-07-03 13:44:00 -07:00
session_recap.py fix(cli): sanitize terminal escapes when replaying stored history (/resume recap, /status recap) 2026-07-17 04:53:38 -07:00
setup.py feat(gateway): default session auto-reset to off (mode: none) (#60194) 2026-07-07 05:11:10 -07:00
setup_whatsapp_cloud.py
skills_config.py fix(cli): normalize malformed skills config in get_disabled_skills (#61797) 2026-07-09 19:57:54 -07:00
skills_hub.py fix: widen UTF-8 BOM tolerance to all sibling frontmatter parsers 2026-07-17 04:52:02 -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 fix(cron): accept UTF-8 BOM when reading jobs.json 2026-07-18 02:31:20 -07:00
stdio.py
suggestions_cmd.py fix: remove dead f-string prefixes via ruff F541 (216 sites) (#52336) 2026-07-05 13:42:46 -07:00
telegram_managed_bot.py
timeouts.py
tips.py feat(browser): store full snapshots on truncation; make eval denylist opt-in (#65923) 2026-07-16 23:41:26 -07:00
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 feat: add uninstall dry-run mode 2026-07-07 05:12:24 -07:00
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 perf(desktop): batch sidebar session slices into one profile-DB pass 2026-07-18 21:45:18 -04: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 fix(config): guard xai migration writer + drop gratuitous annotation 2026-07-05 23:00:34 +05:30