From d2d79ce8fd7427cc272ff1c54ff9ed5c80ad9f9e Mon Sep 17 00:00:00 2001 From: Spencer Bull Date: Mon, 21 Sep 2026 14:16:14 -0500 Subject: [PATCH] Stop the Hermes Desktop launcher reconciling a mise install The launcher called omarchy-install-hermes-cli with no arguments on every start to remove a mise-built Hermes left beside the app. Omarchy no longer builds Hermes through mise: it sets the app's runtime up before the app is opened, and the installer now only answers a named --check or --now, so the call had nothing left to reconcile and only printed usage. The launch check keeps a forbidden stand-in for that command on its PATH, so a launcher that reaches for it again fails the build. Co-Authored-By: Claude Fable 5.1 Co-Authored-By: Codex XHigh --- pkgbuilds/hermes-desktop/PKGBUILD | 6 +++--- pkgbuilds/hermes-desktop/hermes-desktop.sh | 5 ----- pkgbuilds/hermes-desktop/runtime-test.py | 6 ++++-- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/pkgbuilds/hermes-desktop/PKGBUILD b/pkgbuilds/hermes-desktop/PKGBUILD index bd41ea2..b37a12a 100644 --- a/pkgbuilds/hermes-desktop/PKGBUILD +++ b/pkgbuilds/hermes-desktop/PKGBUILD @@ -5,7 +5,7 @@ pkgname=hermes-desktop pkgver=2026.9.7 -pkgrel=1 +pkgrel=2 pkgdesc='Native desktop shell for Hermes Agent' arch=('x86_64') url='https://github.com/NousResearch/hermes-agent' @@ -75,11 +75,11 @@ source=("${pkgname}-${pkgver}.tar.gz::${url}/archive/refs/tags/v${pkgver}.tar.gz 'runtime.patch' 'runtime-test.py') sha256sums=('907c2a72db1c5dd637ea8eeae97f4cb5b32cef615c17258f6b190924ec5bf688' - '094d5f3191109a80eea9f23053b78a2e00dbecf90d62d1ca04c8e48866251469' + 'c68233f93387251f08537559c072c9ec36ba9a304b1669decc56df17c464b252' '3ef685bfcf366776b025d26c37d32854d8d4aa2023b2bd07c8e08b001ef1e8c4' 'd60d164e24fdcf6532133b8ea43c77a201e4b9e9dbc396187b58d51d8590ef52' '9d5015d1be762a901f8f64319981ae862e9852fa5cb9a22a2ba1e691f90430a2' - '7337a12c71e8091ad5fc2e879e922c9cb1706c65f81b59d6dd70b12123dc7c00') + '514a5e7ab2b7262141a2588c5b5036832cb4ba789a9578b8b50b6d79a9d63deb') build() { cd "${srcdir}/${_srcdir}" diff --git a/pkgbuilds/hermes-desktop/hermes-desktop.sh b/pkgbuilds/hermes-desktop/hermes-desktop.sh index 40822b8..db23758 100644 --- a/pkgbuilds/hermes-desktop/hermes-desktop.sh +++ b/pkgbuilds/hermes-desktop/hermes-desktop.sh @@ -4,11 +4,6 @@ set -euo pipefail unset ELECTRON_RUN_AS_NODE PYTHONPATH PYTHONHOME export HERMES_DESKTOP_IGNORE_EXISTING=1 -# Reconcile direct package installs and interrupted Omarchy setup as well. -if command -v omarchy-install-hermes-cli >/dev/null 2>&1; then - omarchy-install-hermes-cli >/dev/null 2>&1 || true -fi - hermes_home=$(realpath -ms -- "${HERMES_HOME:-$HOME/.hermes}") parent=${hermes_home%/*} if [[ ${parent##*/} == [Pp][Rr][Oo][Ff][Ii][Ll][Ee][Ss] ]]; then diff --git a/pkgbuilds/hermes-desktop/runtime-test.py b/pkgbuilds/hermes-desktop/runtime-test.py index cc08e07..1f0fe91 100644 --- a/pkgbuilds/hermes-desktop/runtime-test.py +++ b/pkgbuilds/hermes-desktop/runtime-test.py @@ -75,9 +75,11 @@ def with_hermes_node_path(env=None): cli.write_text(forbidden) cli.chmod(0o755) (cli.parent / "python").symlink_to(sys.executable) + # The launcher used to call Omarchy's installer on every start; a launcher + # that reaches for it, or for sudo, fails here. for command in ("sudo", "omarchy-install-hermes-cli"): target = mock_bin / command - target.write_text(forbidden if command == "sudo" else '#!/bin/bash\nexit 0\n') + target.write_text(forbidden) target.chmod(0o755) output = root / "launch.json" @@ -92,7 +94,7 @@ def with_hermes_node_path(env=None): assert result == {"args": ["--disable-setuid-sandbox", *expected_args], "home": str(home / ".hermes"), "store": store, "gpu": gpu, "ozone": ozone, "cwd": str(home), "inherited": []}, result - assert not forbidden_output.exists(), "launcher invoked CLI or sudo" + assert not forbidden_output.exists(), "launcher invoked the Omarchy installer or sudo" output.unlink() wayland = {"WAYLAND_DISPLAY": "wayland-1"}