fix(dashboard): skill installs from the dashboard silently auto-cancel (#45150)

The dashboard's /api/skills/hub/install (and the new-profile hub_skills
path) spawned `hermes skills install <id>` with stdin=DEVNULL but
without --yes. do_install()'s 'Confirm [y/N]' prompt hit EOF, defaulted
to 'n', and printed 'Installation cancelled.' into a background log the
user never sees — every dashboard install no-opped.

Pass --yes on both spawn sites, matching the uninstall endpoint which
already passed --yes. The dashboard install button is the explicit user
consent, same as the TUI/slash-command skip_confirm rationale.

Repro: spawned the exact argv with stdin=DEVNULL against a temp
HERMES_HOME — without --yes it cancels, with --yes the skill installs.
This commit is contained in:
Teknium
2026-06-12 12:58:36 -07:00
committed by GitHub
parent bba9b519aa
commit a118b94a85
3 changed files with 14 additions and 5 deletions
+3 -2
View File
@@ -8105,7 +8105,8 @@ async def install_skill_hub(body: SkillInstallRequest, profile: Optional[str] =
raise HTTPException(status_code=400, detail="identifier is required")
try:
proc = _spawn_hermes_action(
_profile_cli_args(body.profile or profile) + ["skills", "install", identifier],
_profile_cli_args(body.profile or profile)
+ ["skills", "install", identifier, "--yes"],
"skills-install",
)
except HTTPException:
@@ -8843,7 +8844,7 @@ async def create_profile_endpoint(body: ProfileCreate):
continue
try:
proc = _spawn_hermes_action(
["-p", body.name, "skills", "install", ident],
["-p", body.name, "skills", "install", ident, "--yes"],
"skills-install",
)
hub_installs.append({"identifier": ident, "pid": proc.pid})