mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-18 04:41:56 +00:00
fix(setup): drop post-setup chat handoff (#25067)
Removes the 'Launch hermes chat now? (Y/n)' prompt at the end of hermes setup. The summary already prints 'Ready to go! → hermes' so the auto-launch was redundant, and on macOS 26+ it could crash in prompt_toolkit when setup was invoked from the curl install script with stdin redirected from /dev/tty (#5884, #6128). After setup, users run 'hermes' themselves like every other CLI tool. Same pattern applies to the Windows installer. Closes #6128 (narrower env-var-guarded fix superseded by removing the prompt outright).
This commit is contained in:
parent
6f2d1c88b7
commit
256bedb632
4 changed files with 0 additions and 60 deletions
|
|
@ -3246,18 +3246,6 @@ def run_setup_wizard(args):
|
||||||
print_info(f" cp {_backup_path} {config_path}")
|
print_info(f" cp {_backup_path} {config_path}")
|
||||||
_print_setup_summary(config, hermes_home)
|
_print_setup_summary(config, hermes_home)
|
||||||
|
|
||||||
_offer_launch_chat()
|
|
||||||
|
|
||||||
|
|
||||||
def _offer_launch_chat():
|
|
||||||
"""Prompt the user to jump straight into chat after setup."""
|
|
||||||
print()
|
|
||||||
if not prompt_yes_no("Launch hermes chat now?", True):
|
|
||||||
return
|
|
||||||
|
|
||||||
from hermes_cli.relaunch import relaunch
|
|
||||||
relaunch(["chat"])
|
|
||||||
|
|
||||||
|
|
||||||
def _run_first_time_quick_setup(config: dict, hermes_home, is_existing: bool):
|
def _run_first_time_quick_setup(config: dict, hermes_home, is_existing: bool):
|
||||||
"""Streamlined first-time setup: provider, model, terminal & messaging.
|
"""Streamlined first-time setup: provider, model, terminal & messaging.
|
||||||
|
|
@ -3301,8 +3289,6 @@ def _run_first_time_quick_setup(config: dict, hermes_home, is_existing: bool):
|
||||||
|
|
||||||
_print_setup_summary(config, hermes_home)
|
_print_setup_summary(config, hermes_home)
|
||||||
|
|
||||||
_offer_launch_chat()
|
|
||||||
|
|
||||||
|
|
||||||
def _run_quick_setup(config: dict, hermes_home):
|
def _run_quick_setup(config: dict, hermes_home):
|
||||||
"""Quick setup — only configure items that are missing."""
|
"""Quick setup — only configure items that are missing."""
|
||||||
|
|
|
||||||
|
|
@ -573,48 +573,6 @@ def test_vercel_setup_prefills_project_and_team_from_link_file(tmp_path, monkeyp
|
||||||
assert defaults[" Vercel team ID"] == "linked-team"
|
assert defaults[" Vercel team ID"] == "linked-team"
|
||||||
|
|
||||||
|
|
||||||
def test_offer_launch_chat_relaunches_via_bin(monkeypatch):
|
|
||||||
from hermes_cli import setup as setup_mod
|
|
||||||
from hermes_cli import relaunch as relaunch_mod
|
|
||||||
|
|
||||||
monkeypatch.setattr(setup_mod, "prompt_yes_no", lambda *_args, **_kwargs: True)
|
|
||||||
monkeypatch.setattr(relaunch_mod, "resolve_hermes_bin", lambda: "/usr/local/bin/hermes")
|
|
||||||
|
|
||||||
exec_calls = []
|
|
||||||
|
|
||||||
def fake_execvp(path, argv):
|
|
||||||
exec_calls.append((path, argv))
|
|
||||||
raise SystemExit(0)
|
|
||||||
|
|
||||||
monkeypatch.setattr(relaunch_mod.os, "execvp", fake_execvp)
|
|
||||||
|
|
||||||
with pytest.raises(SystemExit):
|
|
||||||
setup_mod._offer_launch_chat()
|
|
||||||
|
|
||||||
assert exec_calls == [("/usr/local/bin/hermes", ["/usr/local/bin/hermes", "chat"])]
|
|
||||||
|
|
||||||
|
|
||||||
def test_offer_launch_chat_falls_back_to_module(monkeypatch):
|
|
||||||
from hermes_cli import setup as setup_mod
|
|
||||||
from hermes_cli import relaunch as relaunch_mod
|
|
||||||
|
|
||||||
monkeypatch.setattr(setup_mod, "prompt_yes_no", lambda *_args, **_kwargs: True)
|
|
||||||
monkeypatch.setattr(relaunch_mod, "resolve_hermes_bin", lambda: None)
|
|
||||||
|
|
||||||
exec_calls = []
|
|
||||||
|
|
||||||
def fake_execvp(path, argv):
|
|
||||||
exec_calls.append((path, argv))
|
|
||||||
raise SystemExit(0)
|
|
||||||
|
|
||||||
monkeypatch.setattr(relaunch_mod.os, "execvp", fake_execvp)
|
|
||||||
|
|
||||||
with pytest.raises(SystemExit):
|
|
||||||
setup_mod._offer_launch_chat()
|
|
||||||
|
|
||||||
assert exec_calls == [(sys.executable, [sys.executable, "-m", "hermes_cli.main", "chat"])]
|
|
||||||
|
|
||||||
|
|
||||||
def test_setup_slack_saves_home_channel(monkeypatch):
|
def test_setup_slack_saves_home_channel(monkeypatch):
|
||||||
"""_setup_slack() saves SLACK_HOME_CHANNEL when the user provides one."""
|
"""_setup_slack() saves SLACK_HOME_CHANNEL when the user provides one."""
|
||||||
saved = {}
|
saved = {}
|
||||||
|
|
|
||||||
|
|
@ -262,7 +262,6 @@ class TestSetupWizardOpenclawIntegration:
|
||||||
patch.object(setup_mod, "setup_tools"),
|
patch.object(setup_mod, "setup_tools"),
|
||||||
patch.object(setup_mod, "save_config"),
|
patch.object(setup_mod, "save_config"),
|
||||||
patch.object(setup_mod, "_print_setup_summary"),
|
patch.object(setup_mod, "_print_setup_summary"),
|
||||||
patch.object(setup_mod, "_offer_launch_chat"),
|
|
||||||
):
|
):
|
||||||
setup_mod.run_setup_wizard(args)
|
setup_mod.run_setup_wizard(args)
|
||||||
|
|
||||||
|
|
@ -294,7 +293,6 @@ class TestSetupWizardOpenclawIntegration:
|
||||||
patch.object(setup_mod, "setup_tools"),
|
patch.object(setup_mod, "setup_tools"),
|
||||||
patch.object(setup_mod, "save_config"),
|
patch.object(setup_mod, "save_config"),
|
||||||
patch.object(setup_mod, "_print_setup_summary"),
|
patch.object(setup_mod, "_print_setup_summary"),
|
||||||
patch.object(setup_mod, "_offer_launch_chat"),
|
|
||||||
):
|
):
|
||||||
setup_mod.run_setup_wizard(args)
|
setup_mod.run_setup_wizard(args)
|
||||||
|
|
||||||
|
|
@ -327,7 +325,6 @@ class TestSetupWizardOpenclawIntegration:
|
||||||
patch.object(setup_mod, "setup_tools"),
|
patch.object(setup_mod, "setup_tools"),
|
||||||
patch.object(setup_mod, "save_config"),
|
patch.object(setup_mod, "save_config"),
|
||||||
patch.object(setup_mod, "_print_setup_summary"),
|
patch.object(setup_mod, "_print_setup_summary"),
|
||||||
patch.object(setup_mod, "_offer_launch_chat"),
|
|
||||||
):
|
):
|
||||||
setup_mod.run_setup_wizard(args)
|
setup_mod.run_setup_wizard(args)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,6 @@ def _enter_existing_install_patches(stack, **extra):
|
||||||
("hermes_cli.setup.get_env_value", {"return_value": None}),
|
("hermes_cli.setup.get_env_value", {"return_value": None}),
|
||||||
("hermes_cli.auth.get_active_provider", {"return_value": "openrouter"}),
|
("hermes_cli.auth.get_active_provider", {"return_value": "openrouter"}),
|
||||||
("hermes_cli.setup._print_setup_summary", {}),
|
("hermes_cli.setup._print_setup_summary", {}),
|
||||||
("hermes_cli.setup._offer_launch_chat", {}),
|
|
||||||
("hermes_cli.setup._offer_openclaw_migration", {"return_value": False}),
|
("hermes_cli.setup._offer_openclaw_migration", {"return_value": False}),
|
||||||
]:
|
]:
|
||||||
stack.enter_context(patch(target, **kwargs))
|
stack.enter_context(patch(target, **kwargs))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue