diff --git a/bin/omarchy-install-ai-hermes b/bin/omarchy-install-ai-hermes index 5bf6b67421c..6b3764fd17b 100755 --- a/bin/omarchy-install-ai-hermes +++ b/bin/omarchy-install-ai-hermes @@ -140,7 +140,10 @@ import sys from pathlib import Path sys.path.insert(0, sys.argv[1]) -from hermes_cli.main import _write_desktop_build_stamp +if Path(sys.argv[1], "hermes_cli/main_desktop.py").is_file(): + from hermes_cli.main_desktop import _write_desktop_build_stamp +else: + from hermes_cli.main import _write_desktop_build_stamp _write_desktop_build_stamp(Path(sys.argv[1]), source_mode=False) PY diff --git a/default/fonts/omarchy/README.md b/default/fonts/omarchy/README.md index cb63382908f..b731549db66 100644 --- a/default/fonts/omarchy/README.md +++ b/default/fonts/omarchy/README.md @@ -12,7 +12,7 @@ The private-use glyphs in `omarchy.ttf` are: - `U+E907` — Ollama, from - `U+E908` — T3 Code, traced from the app icon in , since upstream publishes no monochrome SVG - `U+E909` — Ori, from , OpenRouter's own mark: Ori ships no separate logo and its product page uses this one -- `U+E90A` — Hermes, Font Awesome's staff-snake (CC BY 4.0) from , the mark Hermes serves as its favicon: their app icon is a portrait that reads as a smudge at menu size +- `U+E90A` — Hermes, traced from the [official desktop app portrait](https://raw.githubusercontent.com/NousResearch/hermes-agent/2237be355906fbe6065ce1815711eee52b2d646e/apps/desktop/assets/icon.png), the same artwork shipped by `hermes-desktop`. The monochrome trace is kept in [hermes.svg](hermes.svg). - `U+E90B` — Perplexity, from - `U+E90C` — OpenClaw, traced from the lobster mascot the openclaw package ships as `dist/control-ui/favicon.svg`, since upstream publishes no monochrome SVG - `U+E90D` — Cursor, from diff --git a/default/fonts/omarchy/hermes.svg b/default/fonts/omarchy/hermes.svg new file mode 100644 index 00000000000..6ce1c6ef494 --- /dev/null +++ b/default/fonts/omarchy/hermes.svg @@ -0,0 +1,27 @@ + + diff --git a/default/fonts/omarchy/omarchy.ttf b/default/fonts/omarchy/omarchy.ttf index 8d6df78333f..632c91bb544 100644 Binary files a/default/fonts/omarchy/omarchy.ttf and b/default/fonts/omarchy/omarchy.ttf differ diff --git a/test/shell.d/hermes-desktop-install-test.sh b/test/shell.d/hermes-desktop-install-test.sh index d9d342cf303..8a9833feba1 100644 --- a/test/shell.d/hermes-desktop-install-test.sh +++ b/test/shell.d/hermes-desktop-install-test.sh @@ -357,3 +357,18 @@ OMARCHY_TEST_HOME="$hermes_home/PrOfIlEs/coder/../coder/" run_installer || fail [[ -x $runtime/apps/desktop/release/linux-unpacked/Hermes ]] || fail "profile uses the canonical root runtime" grep -qxF "$hermes_home" "$test_tmp/install-args" || fail "canonical custom home reaches upstream installer" pass "custom profile paths normalize to the shared Hermes home" + +# New releases moved the stamp writer out of main. Keep the earlier cases on +# the old layout and exercise a fresh installation with the relocated helper. +git -C "$test_tmp/seed" mv hermes_cli/main.py hermes_cli/main_desktop.py +printf 'raise AssertionError("legacy module imported after desktop split")\n' >"$test_tmp/seed/hermes_cli/main.py" +git -C "$test_tmp/seed" add hermes_cli/main.py +git -C "$test_tmp/seed" -c user.name=Test -c user.email=test@example.invalid commit -qm split-desktop +release_commit=$(git -C "$test_tmp/seed" rev-parse HEAD) +export OMARCHY_TEST_RELEASE_COMMIT="$release_commit" +printf '{"branch":"main","commit":"%s"}\n' "$release_commit" >"$test_tmp/package/resources/install-stamp.json" +new_home split-desktop +run_installer || fail "setup supports the relocated desktop helper" "$(cat "$test_tmp/output")" +[[ $(cat "$hermes_home/desktop-build-stamp.json") == 'upstream build stamp' ]] || fail "relocated helper writes the build stamp" +grep -qx launch "$test_tmp/events" || fail "setup launches after the relocated helper writes the stamp" +pass "new releases use the relocated desktop stamp writer"