hermes-agent/tests/hermes_cli
Teknium 58708c7066 fix(git): never block internal git calls on credential prompts
Port from openai/codex#34540 / #34612 ("detach non-interactive
subprocesses from stdin"): internal git invocations that run with nobody
attached — MCP catalog installs, plugin install/update, profile
distribution staging, worktree base fetches, and the desktop review
pane's git/gh backend — could hang on a credential prompt when a remote
is private, misconfigured, or requires auth. git prompts on the
inherited terminal (or via Git Credential Manager on Windows), so the
operation silently waits until its timeout, or forever at sites without
one (mcp_catalog clones have no timeout at all and inherit the parent
terminal).

- Add noninteractive_git_env() to hermes_cli/_subprocess_compat.py:
  GIT_TERMINAL_PROMPT=0 + GCM_INTERACTIVE=Never on a copy of the
  environment; GIT_ASKPASS/SSH_ASKPASS deliberately preserved so
  working non-interactive auth still succeeds.
- Wire it + stdin=DEVNULL into: mcp_catalog._do_git_install (clone/
  checkout), plugins_cmd (clone + pull), profile_distribution._git_clone,
  web_git._git/_gh (gh also gets GH_PROMPT_DISABLED=1), and cli.py's
  worktree base fetch helper.
- Tests: env contract, a real-git E2E against a local 401 Basic-auth
  HTTP server proving fail-fast ("terminal prompts disabled") instead
  of a hang, and per-call-site plumbing assertions. Sabotage-verified:
  removing the env from web_git._git fails the site test.
2026-07-28 17:34:21 -07:00
..
__init__.py
conftest.py
conftest_dashboard_auth.py
test_25106_global_switch_persists_base_url_api_mode.py fix(cli): persist provider on global model switch 2026-07-22 21:18:50 -07:00
test_active_sessions.py fix(sessions): claim the cap slot on first turn, not on open 2026-07-28 12:11:52 -05:00
test_agent_import.py feat(cli): hermes import-agent — import Claude Code and Codex CLI setups 2026-07-26 17:47:07 -07:00
test_anthropic_model_flow_stale_oauth.py
test_anthropic_oauth_flow.py
test_anthropic_oauth_routes_to_messages_api.py
test_anthropic_picker_curated.py feat(models): add Claude Sonnet 5 support 2026-07-20 02:25:44 -07:00
test_anthropic_provider_persistence.py
test_api_key_providers.py fix(ci): make tests, workflows, and attribution reliable under load (#66373) 2026-07-17 20:55:24 +00:00
test_apply_model_switch_result_context.py fix(providers): scope route-owned runtime settings 2026-07-22 11:19:37 +05:30
test_apply_profile_override.py
test_approvals_command.py feat(approvals): add cross-surface mode command 2026-07-26 21:13:03 -07:00
test_approvals_suggest.py feat(approvals): hermes approvals suggest — mine approval history into allowlist proposals 2026-07-26 17:49:03 -07:00
test_arcee_provider.py
test_argparse_flag_propagation.py fix(cli): preserve -t/-m/--provider/--tui/--dev before chat subcommand 2026-07-11 03:51:43 -07:00
test_at_context_completion_filter.py
test_atomic_json_write.py
test_atomic_yaml_write.py
test_auth_codex_provider.py
test_auth_codex_quota_probe.py fix(auth): detect upstream Codex quota resets and lift stale pool cooldowns (#69494) 2026-07-22 10:58:22 -07:00
test_auth_codex_self_heal.py
test_auth_commands.py fix(auth): make xAI OAuth pools multi-account resilient 2026-07-17 11:37:25 +05:30
test_auth_loopback_ssh_hint.py
test_auth_nous_provider.py test(auth): pin runtime routing persistence on failure 2026-07-10 17:50:43 +05:30
test_auth_profile_fallback.py fix(credential-pool): stop lost-update cooldown erasure and wrong-key quarantine 2026-07-23 09:22:02 -07:00
test_auth_provider_gate.py fix(auth): count MoA preset slots as explicit provider configuration 2026-07-23 11:21:13 -07:00
test_auth_qwen_provider.py
test_auth_ssl_macos.py
test_auth_toctou_file_modes.py
test_auth_usable_secret.py
test_auth_xai_oauth_provider.py fix(hermes_cli): preserve unset-active dashboard xAI OAuth and cover token save modes 2026-07-28 11:54:01 -07:00
test_authenticated_providers_exhausted_pool.py fix(model-picker): show exhausted-pool providers in the aux-task and vision pickers too 2026-07-25 22:47:12 -07:00
test_aux_config.py fix: honor disabled title generation config 2026-07-16 22:24:45 -07:00
test_aux_picker_inventory.py refactor(cli): route every aux picker through one provider-inventory seam 2026-07-25 22:47:12 -07:00
test_azure_detect.py fix(security): secure Azure catalog probes 2026-07-11 12:28:55 +05:30
test_azure_foundry_entra.py
test_backup.py fix(state): cross-process quarantine lock + oversized DB pruning suppression (#68805) 2026-07-24 23:06:05 -07:00
test_banner.py
test_banner_git_state.py
test_banner_skills.py
test_banner_skills_width.py feat(banner): size skills display to terminal width instead of fixed 8/47 2026-07-06 11:17:41 -07:00
test_bedrock_model_picker.py
test_bedrock_region_scoped_picker.py fix(bedrock): region-scoped model picker + geo-aware recommendations (#28156) 2026-07-15 09:59:38 -07:00
test_billing_cli.py feat(cli): plan catalog on Free + plan= deep link + top-up/auto-refill copy split (#68689) 2026-07-22 08:11:09 +05:30
test_billing_portal_url.py
test_billing_scope_stepup.py
test_bitwarden_status.py fix(secrets): validate bitwarden status token 2026-07-22 03:20:09 -07:00
test_browser_connect_dual_stack.py fix: /browser connect times out when another app squats the CDP port 2026-07-18 02:49:28 -07:00
test_build_info.py
test_bundles.py
test_bytecode_sweep.py fix(update): close the stale-bytecode class with a launch-time checkout-fingerprint sweep 2026-07-27 11:33:40 -07:00
test_certifi_repair.py fix(ssl): detect and repair a missing certifi cacert.pem via existing venv-repair infra 2026-07-24 15:53:38 -07:00
test_chat_skills_flag.py
test_checkpoints_prune.py fix(checkpoints): bind an empty orphan preview to an empty deletion allowlist 2026-07-24 16:01:06 -07:00
test_claw.py
test_clear_stale_base_url.py
test_cli_active_session_limit.py feat(sessions): say which surfaces hold the active-session slots 2026-07-28 12:11:52 -05:00
test_cli_custom_provider_vision.py fix: preserve named custom provider vision overrides 2026-07-23 17:57:33 +05:30
test_cli_model_once.py feat: add /model --once one-turn model override (#29914) 2026-07-18 14:01:56 -07:00
test_cli_output.py
test_cmd_update.py fix(update): anchor the web toolchain check on npm's actual search path 2026-07-27 12:52:42 -05:00
test_cmd_update_docker.py rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
test_coalesce_session_args.py
test_codex_cli_model_picker.py test(codex-picker): raise max_models so count invariant survives catalog growth 2026-07-10 00:47:51 +05:30
test_codex_models.py test(codex): cover ChatGPT-Account-Id header on /models probe 2026-07-21 05:27:13 -07:00
test_codex_runtime_plugin_migration.py
test_codex_runtime_switch.py
test_commands.py feat(cli,gateway): unify /context into a visual context-usage breakdown 2026-07-26 18:06:21 -07:00
test_completion.py
test_config.py fix(config): merge duplicate kanban block so auto_subscribe_on_create default survives 2026-07-26 13:42:22 -07:00
test_config_drift.py
test_config_env_expansion.py fix(cli): ignore empty config sections 2026-07-09 18:23:18 -07:00
test_config_env_ref_parity.py feat(config): resolve ${env:VAR} SecretRefs in config.yaml, matching MCP config (#69267) 2026-07-22 04:39:57 -07:00
test_config_env_refs.py
test_config_validation.py fix(config): remove unknown-top-level-key warning — top-level keys bridge to env (#67924) 2026-07-20 02:25:33 -07:00
test_configured_builtin_models.py fix(model): merge configured models into picker rows (#63055) 2026-07-12 03:05:12 -07:00
test_console_engine.py rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
test_container_aware_cli.py
test_container_boot.py fix(container): keep named multiplex gateway slots down (#65368) 2026-07-16 14:30:05 +10:00
test_context_switch_guard.py test(cli): cover custom provider false shrink warning 2026-07-22 21:17:21 -07:00
test_copilot_auth.py fix(copilot): set x-initiator per turn so user prompts bill as premium requests (salvage #4097) (#58544) 2026-07-05 00:44:15 -07:00
test_copilot_catalog_oauth_fallback.py
test_copilot_context.py
test_copilot_in_model_list.py
test_copilot_model_api_mode.py fix(moa): route Copilot slots by target model 2026-07-23 08:26:57 -07:00
test_copilot_runtime_api_mode.py fix(moa): route every Copilot credential path by target 2026-07-23 08:26:57 -07:00
test_copilot_token_exchange.py
test_credential_lifecycle.py fix(credentials): unified provider key delete/update across .env, auth.json, config.yaml (#67213) 2026-07-19 03:02:21 -07:00
test_cron.py test(cron): cover cron_list/status/tick/create CLI helpers 2026-07-06 02:21:32 -07:00
test_cron_dashboard_off_loop.py test(dashboard): pin cron fire + blueprint handlers off the event loop 2026-07-09 14:30:16 +05:30
test_cron_fire_dashboard.py
test_cron_parser_builder.py fix(cron): harden execution attempt ledger 2026-07-17 04:58:35 -07:00
test_ctrlg_editor_submit.py
test_curator_archive_prune.py fix: curator labels bundled skills as agent-created (#64393) 2026-07-25 18:10:24 -07:00
test_curator_recent_run_notice.py
test_curator_run.py
test_curator_status.py fix(curator): make the autonomous write policy consistent (#67140) 2026-07-25 19:27:17 -07:00
test_curator_usage.py feat(curator): add hermes curator usage — all-skills usage view 2026-07-06 12:26:21 -07:00
test_curses_arrow_keys.py
test_curses_color_compat.py
test_curses_ui_fuzzy_rank.py
test_curses_ui_search.py
test_custom_provider_context_length.py fix(providers): scope route-owned runtime settings 2026-07-22 11:19:37 +05:30
test_custom_provider_extra_headers.py fix(providers): scope route-owned runtime settings 2026-07-22 11:19:37 +05:30
test_custom_provider_identity.py
test_custom_provider_model_switch.py fix(auth): prune stale custom model credentials 2026-07-05 00:55:51 -07:00
test_custom_provider_tls.py fix(providers): scope route-owned runtime settings 2026-07-22 11:19:37 +05:30
test_dashboard_admin_endpoints.py perf(dashboard): use GROUP BY for session stats instead of fetching 10k rows 2026-07-28 19:07:28 +05:30
test_dashboard_auth_401_reauth.py fix(auth): preserve provider fallback during refresh 2026-07-14 07:02:05 -07:00
test_dashboard_auth_audit.py
test_dashboard_auth_cookies.py fix(auth): preserve provider fallback during refresh 2026-07-14 07:02:05 -07:00
test_dashboard_auth_gate.py
test_dashboard_auth_middleware.py fix(dashboard): add lightweight /api/health liveness endpoint 2026-07-24 19:43:44 -05:00
test_dashboard_auth_native_flow.py fix(dashboard-auth): harden the public native-authorize surface 2026-07-22 06:50:50 -07:00
test_dashboard_auth_password_login.py fix(dashboard): support mobile OAuth login 2026-07-09 12:21:16 +05:30
test_dashboard_auth_plugin_hook.py
test_dashboard_auth_prefix.py fix(dashboard): accept HA ingress prefix paths 2026-07-06 03:18:02 -07:00
test_dashboard_auth_provider_base.py
test_dashboard_auth_status_endpoint.py fix(dashboard): add lightweight /api/health liveness endpoint 2026-07-24 19:43:44 -05:00
test_dashboard_auth_stub_provider.py
test_dashboard_auth_ws_auth.py
test_dashboard_auth_ws_tickets.py
test_dashboard_basic_auth_plugin_enable.py fix(dashboard): unblock basic auth plugin when setting password interactively (#54489) (#63786) 2026-07-16 19:49:39 -04:00
test_dashboard_browser_safe_imports.py
test_dashboard_lifecycle_flags.py fix(cli): live-probe dashboard status and share update cleanup across paths 2026-07-26 14:11:05 -07:00
test_dashboard_oauth_endpoints_server_gate.py test(dashboard): assert server still gates OAuth endpoints without cookie 2026-07-09 12:21:16 +05:30
test_dashboard_profiles_nav_label.py
test_dashboard_register.py
test_dashboard_token_auth.py
test_dashboard_tui_backcompat.py
test_dashboard_unified_launch.py
test_dashboard_web_dist_validation.py fix(dashboard): isolate Desktop-inherited env from standalone launch (#69891) 2026-07-23 00:31:23 -05:00
test_debug.py
test_default_interface_resolution.py fix(kanban): no-TTY gate in _wants_tui_early — the actual worker-crash fix 2026-07-09 16:13:59 -05:00
test_dep_ensure.py
test_deprecated_cwd_warning.py
test_desktop_exe_integrity.py fix(update): drop the GetNativeSystemInfo probe that lies under WoA emulation 2026-07-25 21:13:15 -05:00
test_desktop_repo_discovery_config.py feat(desktop): configure repository discovery (supersedes #67630) (#68642) 2026-07-21 10:09:31 -04:00
test_destructive_slash_confirm_gate.py
test_detect_api_mode_for_url.py
test_determine_api_mode_hostname.py
test_diagnostics_upload.py
test_diff_command.py feat(diff): cross-surface /diff with staged/all/session modes 2026-07-26 18:28:20 -07:00
test_dingtalk_auth.py
test_discord_skill_clamp_warning.py
test_doctor.py fix(docker): ship a WAL-reset-safe SQLite runtime 2026-07-26 17:20:31 -07:00
test_doctor_command_install.py
test_doctor_dedicated_provider_skip.py
test_dump_env_visibility.py
test_dump_git_commit.py
test_dump_terminal_backend.py
test_early_recovery.py fix(update): stdlib-only early recovery before hermes_cli.main imports 2026-07-23 07:33:16 -07:00
test_ensure_acp_launcher.py feat(update): self-heal the hermes-acp launcher + document Buzz Desktop as an ACP host 2026-07-28 11:53:12 -07:00
test_ensure_hermes_home_memo.py perf: fast model picker + dialogs — config-load hot path, model.options off the reader thread, off-screen turns skip rendering 2026-07-17 15:01:54 -04:00
test_ensure_hermes_home_uid_34107.py
test_ensure_utf8_locale.py
test_env_custom_keys.py
test_env_export_line_lifecycle.py fix(credentials): unified provider key delete/update across .env, auth.json, config.yaml (#67213) 2026-07-19 03:02:21 -07:00
test_env_export_prefix.py
test_env_load_cache.py
test_env_loader.py fix(config): preserve opaque .env values 2026-07-24 16:02:08 -07:00
test_env_sanitize_on_load.py fix(config): preserve opaque .env values 2026-07-24 16:02:08 -07:00
test_fallback_cmd.py
test_fallback_config.py fix(auth): honor per-entry key_env when resolving fallback providers 2026-07-16 07:19:36 -07:00
test_fireworks_provider.py fix(providers): align Fireworks integration with project policy 2026-07-11 05:43:35 -07:00
test_gateway.py fix(gateway): hard-exit on KeyboardInterrupt path too 2026-07-22 09:53:51 +05:30
test_gateway_external_supervisor.py fix(gateway): preserve external supervisor ownership 2026-07-16 05:08:56 -07:00
test_gateway_linger.py
test_gateway_platform_gating.py
test_gateway_proc_fallback.py
test_gateway_restart_loop.py
test_gateway_run_hard_exit.py fix(gateway): hard-exit on KeyboardInterrupt path too 2026-07-22 09:53:51 +05:30
test_gateway_runtime_health.py test(gateway): cover stale gateway_state.json detection (TTL + PID liveness) 2026-07-21 12:39:59 -07:00
test_gateway_s6_dispatch.py
test_gateway_service.py fix(gateway): deregister transient reload label after one-shot job + test 2026-07-24 15:49:29 -07:00
test_gateway_service_paths.py
test_gateway_windows.py fix(windows): hidden-console daemons — extend the parent-console fix to every detached spawn path (#70205) 2026-07-23 11:13:14 -07:00
test_gateway_wsl.py
test_gemini_free_tier_setup_block.py
test_gemini_provider.py
test_gmi_provider.py
test_goals.py fix(goals): update judge consumers for transport result 2026-07-20 05:38:25 -07:00
test_gpt56_registration.py feat(openai): complete gpt-5.6 E2E — codex catalog + 272K compaction auto-raise 2026-07-10 00:47:51 +05:30
test_graphical_browser_detection.py
test_gui_command.py fix(desktop): refuse hardened-runtime sign when entitlement plists are missing 2026-07-28 17:34:43 -05:00
test_gui_uninstall.py
test_hooks_cli.py
test_ignore_user_config_flags.py test: deflake CI and dev-machine flaky tests in bulk (11 tests, 10 files) (#61816) 2026-07-09 20:03:11 -07:00
test_image_gen_picker.py
test_init_command.py feat(cli): /init — generate or update AGENTS.md from a project scan 2026-07-26 17:46:29 -07:00
test_input_sanitize.py test(input): preservation regressions and prompt.submit boundary (#62557) 2026-07-15 07:39:42 -07:00
test_install_cua_driver.py fix(install): clear stale Windows cua lock 2026-07-26 16:01:54 -07:00
test_inventory.py feat(picker): derive a newest-per-lab featured shortlist from models.dev 2026-07-28 03:52:33 -05:00
test_inventory_pricing.py Nous portal model pricing (#69579) 2026-07-22 16:47:06 -04:00
test_jobs_json_utf8_bom.py fix(cron): accept UTF-8 BOM when reading jobs.json 2026-07-18 02:31:20 -07:00
test_journey_render.py
test_kanban_block_kinds.py
test_kanban_blocked_sticky.py
test_kanban_boards.py
test_kanban_cli.py fix(auxiliary): route direct-create aux callers through call_llm (#65029) 2026-07-15 07:39:17 -07:00
test_kanban_cli_dispatch_passthrough.py
test_kanban_core_functionality.py fix(kanban): snap notify-sub cursor to current MAX(task_events.id) at creation 2026-07-26 16:14:15 -07:00
test_kanban_count_notify_subs.py fix(gateway): zero-sub early exit for kanban notifier board polling 2026-07-26 16:14:15 -07:00
test_kanban_db.py fix(kanban): strip stale session routing from dispatched worker env 2026-07-26 16:27:52 -07:00
test_kanban_db_init.py fix(kanban): preserve telegram dm topic metadata 2026-07-26 16:01:32 -07:00
test_kanban_db_repair.py fix(tests): gate WAL-dependent tests on the linked SQLite's real capability 2026-07-25 07:17:52 -07:00
test_kanban_decompose.py fix(auxiliary): route direct-create aux callers through call_llm (#65029) 2026-07-15 07:39:17 -07:00
test_kanban_decompose_db.py
test_kanban_default_assignee.py
test_kanban_diagnostics.py fix(kanban): clear failure/crash diagnostics while a retry is in flight 2026-07-09 16:13:59 -05:00
test_kanban_dispatch_lock.py
test_kanban_goal_mode.py fix: migrate CLI kanban gate + remaining mocks to 5-value judge contract 2026-07-20 05:38:25 -07:00
test_kanban_init_lock_bounded.py
test_kanban_lifecycle_hooks.py
test_kanban_notify.py fix(kanban): snap notify-sub cursor to current MAX(task_events.id) at creation 2026-07-26 16:14:15 -07:00
test_kanban_per_profile_cap.py
test_kanban_project_link.py
test_kanban_promote.py
test_kanban_reclaim_claim_lock_guard.py
test_kanban_specify.py fix(auxiliary): route direct-create aux callers through call_llm (#65029) 2026-07-15 07:39:17 -07:00
test_kanban_specify_db.py
test_kanban_swarm.py
test_kanban_worker_image_extraction.py
test_kanban_worker_spawn_toolsets.py fix(cli): preserve -t/-m/--provider/--tui/--dev before chat subcommand 2026-07-11 03:51:43 -07:00
test_kanban_worker_terminal_cwd.py
test_kanban_worktree_isolation.py fix(kanban): stop decompose siblings sharing one worktree checkout 2026-07-23 09:27:13 -07:00
test_kanban_write_txn_busy_retry.py
test_kimi_cn_provider_listing.py fix: preserve kimi-coding-cn provider identity 2026-07-20 10:17:57 -07:00
test_launcher.py
test_lazy_refresh_venv_repair.py fix(update): split core vs lazy markers; probes cannot false-clear 2026-07-23 07:33:16 -07:00
test_lifecycle.py Reapply "feat(observability): integrate NeMo Relay runtime and shared metrics" 2026-07-27 21:10:51 -07:00
test_list_picker_providers.py fix(model): collapse kimi alias/canonical to one /model picker row 2026-07-20 10:17:57 -07:00
test_lmstudio_context_policy.py fix(lmstudio): respect applied runtime context 2026-07-29 02:19:13 +05:30
test_logs.py
test_main_model_custom_provider_normalization.py fix(web): preserve declared providers in model writes (#63058) 2026-07-12 03:08:08 -07:00
test_managed_installs.py rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
test_managed_scope.py
test_managed_scope_cli_config.py
test_managed_scope_config.py
test_managed_scope_env.py
test_managed_scope_loaders.py
test_managed_scope_overlay.py
test_managed_scope_regression.py
test_managed_scope_surfacing.py
test_managed_scope_writeguard.py
test_managed_uv.py fix(update): refresh stale managed-uv catalog so SQLite runtime repair can succeed 2026-07-26 17:20:27 -07:00
test_mcp_add_command_dest.py feat(cli): add --connect-timeout flag to hermes mcp add 2026-07-05 19:10:00 -07:00
test_mcp_catalog.py feat(mcp): enforce exact version pins across the whole MCP catalog 2026-07-15 04:56:25 -07:00
test_mcp_config.py fix(mcp): close hosted OAuth lifecycle gaps 2026-07-17 04:50:47 -07:00
test_mcp_dashboard_oauth.py fix(mcp): close hosted OAuth lifecycle gaps 2026-07-17 04:50:47 -07:00
test_mcp_reload_confirm_gate.py
test_mcp_security.py
test_mcp_startup.py fix(mcp): allow background discovery retry after a run that connected nothing 2026-07-21 12:43:27 -07:00
test_mcp_tools_config.py
test_memory_reset.py
test_memory_setup.py test(memory): cover mode-aware provider deps + force reinstall path 2026-07-26 19:29:18 -07:00
test_memory_setup_provider_arg.py refactor(setup): route dependency installs through the canonical uv→pip→ensurepip ladder 2026-07-07 04:09:35 -07:00
test_memory_status.py fix: use canonical _get_platform_tools resolver for memory tool status 2026-07-23 17:50:20 +05:30
test_migrate_xai.py fix(config): guard xai migration writer + drop gratuitous annotation 2026-07-05 23:00:34 +05:30
test_moa_config.py feat(moa): default advisor fanout to user_turn — the cheapest cadence 2026-07-23 21:07:18 -07:00
test_moa_set_models_preserves_extra_keys.py fix(moa): preserve save_traces/trace_dir on GUI config save 2026-07-23 16:55:41 -07:00
test_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
test_model_cost_guard.py
test_model_normalize.py fix(model): don't strip alias-derived prefixes for the custom provider bucket 2026-07-27 19:32:12 +05:30
test_model_picker_excluded_providers.py feat(model-switch): excluded_providers config to hide providers from /model picker 2026-07-20 03:06:02 -07:00
test_model_picker_expensive_confirm.py test(cli): cover custom provider false shrink warning 2026-07-22 21:17:21 -07:00
test_model_picker_viewport.py
test_model_provider_persistence.py
test_model_search.py test(models): cover kimi search alias for Kimi Coding k3 2026-07-26 21:22:40 -07:00
test_model_search_alias_dedup.py fix(picker): fold live bare k3 wire id into curated kimi-k3 row 2026-07-26 21:22:40 -07:00
test_model_switch_configured_provider_routing.py
test_model_switch_context_display.py fix(providers): scope route-owned runtime settings 2026-07-22 11:19:37 +05:30
test_model_switch_copilot_api_mode.py
test_model_switch_custom_providers.py fix(models): resolve custom provider model ids 2026-07-24 21:24:36 -05:00
test_model_switch_filter_unresolved.py refactor(model): gate picker rows by runtime capability 2026-07-12 03:04:07 -07:00
test_model_switch_once_flags.py feat: add /model --once one-turn model override (#29914) 2026-07-18 14:01:56 -07:00
test_model_switch_openai_api_mode.py fix(model-switch): override stale api_mode with host-mandated mode on OpenAI-direct switch 2026-07-17 15:47:08 -07:00
test_model_switch_opencode_anthropic.py
test_model_switch_persist_default.py fix(model): default /model switches to session scope everywhere 2026-07-20 02:22:22 -07:00
test_model_switch_variant_tags.py
test_model_validation.py fix(tests): patch catalog urlopen wrapper in gemini probe tests (#64318) 2026-07-14 03:11:19 -07:00
test_models.py fix(deepseek): drop retired models from picker and provider defaults 2026-07-26 16:28:41 -07:00
test_models_dev_preferred_merge.py fix(picker): fold live bare k3 wire id into curated kimi-k3 row 2026-07-26 21:22:40 -07:00
test_non_ascii_credential.py
test_noninteractive_git.py fix(git): never block internal git calls on credential prompts 2026-07-28 17:34:21 -07:00
test_normalize_main_model_assignment.py fix(model): narrow custom-provider fallback exclusion to real custom: syntax 2026-07-27 19:32:12 +05:30
test_nous_account.py
test_nous_auth_keepalive.py
test_nous_auth_status_cache.py
test_nous_billing_request.py Terminal-billing client hardening: shared wire types, wire-layer tests, dead RPC removal (#61067) 2026-07-18 07:05:58 -07:00
test_nous_hermes_non_agentic.py
test_nous_inference_url_validation.py
test_nous_portal_staging_allowlist.py
test_nous_session_validity.py feat(status): expose nous_session_valid on /api/status for hosted-agent self-heal 2026-07-07 00:53:56 -07:00
test_nous_subscription.py
test_ollama_cloud_auth.py
test_ollama_cloud_provider.py
test_oneshot_usage_file.py feat(oneshot): add --usage-file JSON usage report to hermes -z (#59615) 2026-07-06 11:10:51 -07:00
test_openai_codex_model_validation_fallback.py
test_openai_picker_curated.py
test_opencode_go_flat_namespace.py
test_opencode_go_in_model_list.py
test_opencode_go_validation_fallback.py
test_opencode_zen_model_limit.py
test_overlay_slug_resolution.py
test_path_completion.py
test_pet_toggle.py
test_picker_prewarm.py
test_pin_kanban_board_env.py
test_pip_install_detection.py rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
test_placeholder_usage.py test(config): update placeholder usage assertion for --force flag 2026-07-20 05:38:59 -07:00
test_plugin_auxiliary_tasks.py
test_plugin_cli_registration.py
test_plugin_runtime_disable_gate.py
test_plugin_scanner_recursion.py
test_plugins.py Reapply "feat(observability): integrate NeMo Relay runtime and shared metrics" 2026-07-27 21:10:51 -07:00
test_plugins_cmd.py
test_plugins_cmd_category_discovery.py
test_plugins_cmd_enable_disable_nested.py fix(web): correct 'disabled plugin' diagnosis for web backends (#59573) 2026-07-06 04:38:17 -07:00
test_plugins_cmd_list.py feat(plugins): surface entry-point plugins in hermes plugins list 2026-07-06 11:20:47 -07:00
test_plugins_transcription_registration.py
test_plugins_tts_registration.py
test_post_setup_gating.py
test_profile_describer.py fix(auxiliary): route direct-create aux callers through call_llm (#65029) 2026-07-15 07:39:17 -07:00
test_profile_distribution.py
test_profile_export_credentials.py
test_profile_install_env_encoding.py fix(profile): read .env as utf-8-sig in the distribution-install preview 2026-07-24 17:10:39 -07:00
test_profiles.py fix(profiles): allowlist default-export paths + preserve symlinks (#58394) 2026-07-05 00:48:50 -07:00
test_profiles_s6_hooks.py
test_project_plugin_rce_bypass.py
test_projects_cli.py
test_projects_db.py feat(desktop): configure repository discovery (supersedes #67630) (#68642) 2026-07-21 10:09:31 -04:00
test_prompt_api_key.py
test_prompt_compose_command.py
test_prompt_size.py fix(prompt-size): include names-only skills in breakdown 2026-07-26 18:06:21 -07:00
test_provider_catalog.py
test_provider_config_validation.py fix(config): stop provider-key warn-storm that stalls Windows logging 2026-07-05 11:44:53 +05:30
test_provider_groups.py
test_provider_live_curated_merge.py
test_provider_parity.py
test_provider_precedence.py
test_provider_section3_grouping.py fix: section-3 grouping follow-ups for salvaged PR #36998 2026-07-20 00:41:21 -07:00
test_proxy.py
test_psutil_android_extract.py
test_pty_bridge.py
test_quarantine_forensic_logging.py test: drop worktree-path sanity guard that fails in CI 2026-07-07 00:53:48 -07:00
test_reasoning_effort_menu.py
test_reasoning_full_command.py feat(cli): make reasoning effort session-scoped 2026-07-20 02:22:22 -07:00
test_redact_config_bridge.py
test_regression_16767.py
test_relaunch.py
test_relay_shared_metrics.py fix(observability): export shared metrics after tasks 2026-07-28 11:06:14 -07:00
test_relay_shared_metrics_runtime.py fix(observability): gate export on subscriber flush 2026-07-28 12:08:10 -07:00
test_remote_spending_gate_contract.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
test_resolve_last_session.py fix(cli): scope -c/--resume to the current workspace 2026-07-27 01:26:34 -05:00
test_resolve_provider_openrouter_pool.py
test_run_with_idle_timeout.py
test_runtime_provider_resolution.py fix: preserve named custom provider vision overrides 2026-07-23 17:57:33 +05:30
test_safe_mode.py fix(cli): safe mode also skips shell-hook registration 2026-07-07 02:32:32 -07:00
test_sale_pricing.py Nous portal model pricing (#69579) 2026-07-22 16:47:06 -04:00
test_scan_venv_blockers.py fix(desktop): surface external venv update blockers 2026-07-28 14:47:36 -07:00
test_secret_prompt.py
test_secrets_bitwarden_non_tty.py
test_secrets_token_rotation.py feat(secrets): one-command token rotation + actionable startup errors for all secret sources (#68605) 2026-07-21 06:41:04 -07:00
test_security_advisories.py
test_security_audit.py
test_security_audit_startup.py
test_send_cmd.py
test_serve_command.py
test_service_manager.py fix(hermes_cli): drop privileges before clearing s6-log lock 2026-07-27 19:19:01 +05:30
test_session_browse.py
test_session_export.py fix(session-export): escape html tool call names 2026-07-09 19:54:02 -07:00
test_session_export_html.py fix(export): escape tool-call name in HTML session export 2026-07-09 16:46:07 -07:00
test_session_export_html_escape.py fix(cli): normalize role into a single CSS token for the message class 2026-07-09 19:54:02 -07:00
test_session_export_md.py feat(sessions): export sessions to markdown 2026-07-07 12:36:41 -07:00
test_session_filters.py fix(sessions): preserve recently active sessions during pruning 2026-07-26 19:30:21 -07:00
test_session_handoff.py
test_session_listing.py
test_session_recap.py fix(cli): sanitize terminal escapes when replaying stored history (/resume recap, /status recap) 2026-07-17 04:53:38 -07:00
test_session_recovery.py fix(sessions): verify fully reconstructed recovery 2026-07-26 23:34:29 -07:00
test_sessions_delete.py fix(sessions): preserve recently active sessions during pruning 2026-07-26 19:30:21 -07:00
test_sessions_export_md_cli.py fix(sessions): preserve recently active sessions during pruning 2026-07-26 19:30:21 -07:00
test_sessions_size_delta_label.py fix(sessions): measure reclaimed space with SQLite page accounting 2026-07-24 22:41:30 -07:00
test_set_config_value.py fix(desktop): stable macOS signing identity so TCC grants survive rebuilds 2026-07-28 17:28:32 -05:00
test_setup.py
test_setup_agent_settings.py
test_setup_blank_slate.py test(setup): blank-slate disabled list must not overlap kept tools 2026-07-05 14:51:49 -07:00
test_setup_hermes_script.py
test_setup_hidden_env.py fix(setup): stop asking about self-configuring platform knobs 2026-07-26 08:43:24 -07:00
test_setup_irc.py test: deflake CI and dev-machine flaky tests in bulk (11 tests, 10 files) (#61816) 2026-07-09 20:03:11 -07:00
test_setup_matrix_e2ee.py
test_setup_menu_curses_migration.py test(models): cover kimi search alias for Kimi Coding k3 2026-07-26 21:22:40 -07:00
test_setup_model_provider.py
test_setup_noninteractive.py
test_setup_ollama_cloud_force_refresh.py
test_setup_openclaw_migration.py
test_setup_prompt_menus.py
test_setup_reconfigure.py
test_setup_telemetry.py Reapply "feat(observability): integrate NeMo Relay runtime and shared metrics" 2026-07-27 21:10:51 -07:00
test_setup_tts_xai_oauth.py fix(hermes_cli): lock dashboard xAI active_provider contracts and setup unsuppress 2026-07-28 11:54:01 -07:00
test_signal_handler_kanban_worker.py fix: remove dead f-string prefixes via ruff F541 (216 sites) (#52336) 2026-07-05 13:42:46 -07:00
test_skills_config.py fix(cli): normalize malformed skills config in get_disabled_skills (#61797) 2026-07-09 19:57:54 -07:00
test_skills_hub.py fix(skills): never change a skill's source registry on update 2026-07-26 19:29:56 -07:00
test_skills_install_flags.py
test_skills_skip_confirm.py
test_skills_subparser.py
test_skin_cmd.py feat(themes): hermes skin set — deterministic one-color tweak, bg untouched 2026-07-21 21:00:43 -05:00
test_skin_engine.py feat(ui-tui): background-aware theme adaptation + paired palettes + /theme pin 2026-07-21 16:36:57 -05:00
test_skin_palettes.py fix(ui-tui): light mode renders the vivid palette RAW, not WCAG-darkened 2026-07-21 16:36:57 -05:00
test_slack_cli.py feat(slack): support long app descriptions in the manifest generator 2026-07-23 12:01:24 -07:00
test_spotify_auth.py
test_sqlite_runtime.py test(runtime): cover managed SQLite cutover (E-949) 2026-07-24 16:00:03 -07:00
test_ssh_ownership_endpoint.py feat(serve): add secure Desktop SSH bootstrap contract 2026-07-16 14:43:14 +02:00
test_ssh_session_token_parser.py feat(serve): add Windows remote backend runtime for Desktop SSH 2026-07-17 18:23:22 +02:00
test_startup_plugin_gating.py test(cli): regression for deferred platform CLI registration path 2026-07-28 10:49:55 -07:00
test_state_db_guard.py fix(update): stop hermes update stalling for minutes on a large state.db 2026-07-24 21:39:32 -07:00
test_status.py
test_status_model_provider.py
test_status_provider_label.py
test_subcommands_batch.py rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
test_subcommands_followup.py
test_subcommands_profile_gateway.py fix(gateway): preserve external supervisor ownership 2026-07-16 05:08:56 -07:00
test_subparser_routing_fallback.py
test_subprocess_timeouts.py
test_subscription_cli.py feat(cli): plan catalog on Free + plan= deep link + top-up/auto-refill copy split (#68689) 2026-07-22 08:11:09 +05:30
test_suppress_eio_on_interrupt.py
test_system_stats_platform.py
test_systemd_optional_directives.py fix(gateway): stop systemd retries on fatal config 2026-07-16 01:19:29 -07:00
test_systemd_watchdog_unit.py fix(gateway): recover Discord websocket and event-loop stalls 2026-07-18 20:01:55 +05:30
test_teams_pipeline_plugin_cli.py
test_telegram_managed_bot.py
test_tencent_tokenhub_provider.py feat(models): swap curated Tencent Hy3 Preview for GA tencent/hy3, drop owl-alpha (#60943) 2026-07-08 07:09:08 -07:00
test_terminal_menu_fallbacks.py
test_timeouts.py
test_timestamps_command.py
test_tips.py
test_tool_token_estimation.py
test_tools_config.py fix(computer_use): probe resolved cua-driver path in post_setup 2026-07-23 00:44:27 -05:00
test_tools_disable_enable.py fix(tools): don't report platform-restricted toolsets as enabled 2026-07-16 01:17:11 -07:00
test_toolset_validation.py
test_tts_picker.py
test_tui_bundled.py
test_tui_heap_sizing.py
test_tui_mouse_residue_suppression.py
test_tui_npm_install.py rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
test_tui_resume_flow.py test: use shutil.copy2 instead of os.link for cross-device tmp fixtures 2026-07-20 09:21:08 -07:00
test_uninstall_dry_run.py feat: add uninstall dry-run mode 2026-07-07 05:12:24 -07:00
test_uninstall_node_symlinks.py
test_update_autostash.py fix(update): refresh runtime modules before lazy backends 2026-07-27 11:33:40 -07:00
test_update_check.py rip out brew + pip/PyPI wheel support (#68217) 2026-07-22 16:51:01 -04:00
test_update_concurrent_quarantine.py
test_update_config_clears_custom_fields.py
test_update_fleet_restart_timeout.py test(update): cover fleet restart timeout isolation (#68523) 2026-07-22 10:35:50 +05:30
test_update_gateway_launcher_refresh.py fix(update): migrate legacy pythonw Windows gateway launchers to the hidden-console design 2026-07-26 17:50:54 -07:00
test_update_hangup_protection.py
test_update_interrupted_recovery.py fix(update): split core vs lazy markers; probes cannot false-clear 2026-07-23 07:33:16 -07:00
test_update_modified_notice.py
test_update_post_pull_syntax_guard.py fix(install): guard Windows desktop installs against broken web_server 2026-07-05 19:35:30 -07:00
test_update_stale_dashboard.py fix(cli): live-probe dashboard status and share update cleanup across paths 2026-07-26 14:11:05 -07:00
test_update_venv_health.py
test_update_yes_flag.py
test_update_zip_atomic_replace.py
test_update_zip_symlink_reject.py
test_upstage_provider.py fix(upstage): collapse unknown future efforts to high; behavior-contract tests 2026-07-15 00:09:24 +05:30
test_urllib_security.py fix(lmstudio): respect applied runtime context 2026-07-29 02:19:13 +05:30
test_user_providers_model_switch.py fix(model): track explicit models: declarations in section 3 so a singular default_model doesn't suppress live discovery 2026-07-26 17:17:03 -07:00
test_verify_console_scripts.py
test_verify_core_dependencies.py
test_vertex_model_picker.py fix(vertex): surface vertex in the /model picker — credential gate + curated model list 2026-07-23 16:55:41 -07:00
test_vertex_provider.py fix(vertex,moa): register vertex in PROVIDER_REGISTRY and HERMES_OVERLAYS 2026-07-23 16:55:41 -07:00
test_video_gen_picker.py
test_voice_wrapper.py test: opt TestSpeakTextGuards out of the new audio-playback guard 2026-07-28 14:07:21 -07:00
test_web_oauth_dispatch.py fix(hermes_cli): lock dashboard xAI active_provider contracts and setup unsuppress 2026-07-28 11:54:01 -07:00
test_web_server.py test+i18n: follow-up for salvaged PR #68969 2026-07-28 10:49:14 -07:00
test_web_server_boot_handshake.py
test_web_server_console_ws.py refactor(console): remove hosted-context command blocking from Hermes Console (#66144) 2026-07-17 04:33:34 -07:00
test_web_server_cron_profiles.py fix(cron): resolve provider with the job's effective model; default dashboard cron creates to the backend's own profile 2026-07-19 09:57:21 -07:00
test_web_server_files.py fix(secrets): harden encrypted Bitwarden cache 2026-07-22 04:40:07 -07:00
test_web_server_fs.py
test_web_server_gateway_topology.py feat(dashboard): expose profile names + gateway_mode on gated /api/status (#60585) 2026-07-08 00:20:13 +00:00
test_web_server_git.py
test_web_server_host_header.py
test_web_server_messaging_profiles.py fix(dashboard): one gateway liveness ladder for status + channels 2026-07-26 08:08:38 -07:00
test_web_server_oauth_write.py fix(web-server): close OAuth token TOCTOU by writing 0o600 atomically 2026-07-07 13:54:07 -07:00
test_web_server_profile_unification.py fix(web-server): profile-scope the desktop audio endpoints 2026-07-28 11:58:03 -07:00
test_web_server_pty_import.py
test_web_server_pty_reconnect.py
test_web_server_session_search.py
test_web_server_skill_editor.py
test_web_server_skills_profiles.py
test_web_server_speak_stream.py fix(voice): speak the whole turn, not just its first bubble; idle-flush held narration 2026-07-23 01:53:37 -05:00
test_web_ui_build.py fix(update): anchor the web toolchain check on npm's actual search path 2026-07-27 12:52:42 -05:00
test_webhook_cli.py fix(webhook): make dual-stack bind exclusive 2026-07-16 12:36:51 +05:30
test_whatsapp_cloud_setup.py
test_whatsapp_onboarding.py Add WhatsApp dashboard pairing flow 2026-07-07 17:45:51 -07:00
test_whatsapp_setup_ordering.py
test_win_pty_bridge.py
test_windows_native_docs.py
test_xai_curated_models.py
test_xai_model_flow.py
test_xai_oauth_profile_auth.py
test_xai_oauth_refresh.py
test_xai_oauth_writethrough.py
test_xai_provider_labels.py
test_xai_retirement.py
test_xiaomi_provider.py fix(secrets): scope BWS-injected provider keys 2026-07-22 04:39:17 -07:00
test_yolo_startup_order.py fix(cli): set HERMES_YOLO_MODE before plugin discovery at startup 2026-07-09 16:58:37 -07:00