hermes-agent/tests/cli
ethernet cd4317b449 test: convert the last host-OS fakes and guard double markers
Six test files still selected an OS branch with a faked host. Each one now
carries the marker for the host that owns the branch, or derives the
expectation from the real host:

- test_clipboard: macos_only on the has_clipboard_image dispatch. The fake
  picked the branch, but _macos_has_image needs osascript.
- test_claw: windows_only on the tasklist/powershell scan, with return_value
  in place of a side_effect list that pinned the call count.
- test_linux_desktop_entry: the parametrize over "darwin"/"win32" becomes one
  marked test per host. A fake left POSIX paths and a POSIX XDG layout.
- test_graphical_browser_detection: linux_only on the display-server arm. The
  $BROWSER check runs before the platform branch, so its test stays unmarked.
- test_auth_nous_provider: the fixture pinned linux so the macOS certifi
  fallback could not change the result. The assertion now reads the host, so
  the macOS lane covers the fallback too.
- test_tts_macos_output and test_voice_mode: the afplay policy exists because
  CoreAudio init raises a TCC prompt, which no Linux runner reproduces.

tests/conftest.py refuses collection when one test carries two OS markers.
Each marker skips on all but one host, so two of them make a test that runs
nowhere while every lane reports green. tests/test_os_marker_gating.py pins
that behavior.

The docstring on TestConfirmDestructiveSlash said the Windows job runs it.
The class has no marker, so -m windows_only deselects it.
2026-08-09 22:09:49 -04:00
..
__init__.py
…
conftest.py
…
test_bang_shell_mode.py
…
test_bracketed_paste_timeout.py
…
test_branch_command.py fix(state,cli,tui-gateway): keep reasoning fields intact across forks and branches 2026-08-08 17:37:26 -07:00
test_busy_input_mode_command.py
…
test_chat_q_exit_clear.py
…
test_cli_active_agent_ref_wiring.py
…
test_cli_approval_ui.py
…
test_cli_async_delegation_delivery.py
…
test_cli_background_busy_path.py
…
test_cli_background_status_indicator.py
…
test_cli_background_tui_refresh.py
…
test_cli_bracketed_paste_sanitizer.py
…
test_cli_browser_connect.py
…
test_cli_cmd_backspace.py
…
test_cli_codex_context_reference.py
…
test_cli_context_warning.py
…
test_cli_copy_command.py
…
test_cli_delegate_background_notice.py
…
test_cli_extension_hooks.py
…
test_cli_external_editor.py
…
test_cli_file_drop.py test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
test_cli_first_run_setup.py
…
test_cli_force_redraw.py
…
test_cli_goal_interrupt.py
…
test_cli_image_command.py
…
test_cli_init.py test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
test_cli_insights_command.py
…
test_cli_interrupt_ack_race.py
…
test_cli_interrupt_drain_regression.py
…
test_cli_interrupt_subagent.py
…
test_cli_light_mode.py fix(cli): fence OSC 11 background query with DA1 so late replies can't leak into the prompt 2026-08-08 19:22:53 -07:00
test_cli_loading_indicator.py
…
test_cli_markdown_rendering.py
…
test_cli_mcp_config_watch.py
…
test_cli_new_session.py
…
test_cli_pet_pane.py
…
test_cli_prefix_matching.py
…
test_cli_preloaded_skills.py
…
test_cli_provider_resolution.py
…
test_cli_queue_paste.py
…
test_cli_reload_skills.py
…
test_cli_resume_command.py
…
test_cli_retry.py
…
test_cli_save_config_value.py
…
test_cli_secret_capture.py
…
test_cli_shift_enter_newline.py
…
test_cli_shutdown_memory_messages.py
…
test_cli_skin_integration.py
…
test_cli_status_bar.py feat(cli): show session titles in status bars 2026-08-08 17:02:55 -07:00
test_cli_status_bar_goal.py
…
test_cli_status_command.py
…
test_cli_steer_busy_path.py
…
test_cli_terminal_response_sanitizer.py
…
test_cli_terminal_shortcuts.py
…
test_cli_tools_command.py
…
test_cli_user_message_preview.py
…
test_cli_yolo_resume_persistence.py
…
test_cli_yolo_toggle.py
…
test_compress_flags.py
…
test_compress_focus.py
…
test_compress_here.py
…
test_compress_type_ahead.py
…
test_cpr_local_leak.py test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
test_cprint_bg_thread.py
…
test_ctrl_enter_newline.py test: run os-specific tests on their real host, not a faked one 2026-08-09 22:09:49 -04:00
test_cwd_env_respect.py
…
test_destructive_slash_confirm.py
…
test_destructive_slash_inline_skip_e2e.py
…
test_exit_delete_session.py
…
test_exit_summary_resume_hint.py
…
test_exit_watchdog_signal_arm.py
…
test_fast_command.py
…
test_focus_view.py
…
test_indicator_command.py
…
test_manual_compress.py
…
test_moa_command.py
…
test_partial_compress.py
…
test_personality_none.py fix(personality): single-owner personality state + one-time reset migration 2026-08-09 10:33:58 -07:00
test_prefill_config.py
…
test_prepend_note_to_message.py
…
test_prompt_stash.py
…
test_prompt_stash_cli.py
…
test_prompt_text_input_thread_safety.py
…
test_quick_commands.py
…
test_reasoning_command.py
…
test_resume_display.py
…
test_resume_quiet_stderr.py
…
test_save_conversation_location.py
…
test_session_boundary_hooks.py
…
test_single_query_session_finalize.py
…
test_slash_command_interrupt.py
…
test_slash_confirm_windows.py test: convert the last host-OS fakes and guard double markers 2026-08-09 22:09:49 -04:00
test_steer_inline_repaint_34569.py
…
test_stream_delta_think_tag.py
…
test_stream_flush_left.py
…
test_stream_partial_line_flush.py
…
test_surrogate_sanitization.py
…
test_terminal_interrupt_recovery.py
…
test_tool_progress_scrollback.py
…
test_transformed_stream_output.py
…
test_tui_terminal_reset_on_exit.py
…
test_update_command.py
…
test_version_command.py
…
test_worktree.py
…
test_worktree_security.py
…
test_worktree_sync_base.py
…