v0.1.0a14
Pre-release
Pre-release
mordred-hermes 0.1.0a14
Headline: scripts/install.sh — users install with one command instead of
assembling uv pip install --python ... by hand.
Supersedes 0.1.0a12 and 0.1.0a13, which reached main but were never
published to PyPI or tagged; these notes therefore cover everything since
v0.1.0a11.
Changes
- Add scripts/install.sh: resolves the Hermes-managed environment, gates on
the minimum Hermes version, selects the macOS/Linux extra, installs from
PyPI, and exposes hermes-mordred (#103) - Resolve the interpreter from the
hermeson PATH first, reading the
official launcher's exec line, so a second Hermes install cannot silently
receive the plugins (#103) - Write a launcher mirroring Hermes's PYTHONPATH/PYTHONHOME scrub instead of
a bare symlink (#103) - Use --upgrade-package so upgrading Mordred does not upgrade hermes-agent;
refuse non-virtualenv targets; run uv pip check before and after (#103) - Add tests/test_user_installer.py: 35 hermetic tests plus a real-uv
integration test (#103) - Rewrite the user docs around the installer; drop the $M idiom (#103)
- Simplify user/developer docs; add Extension and dev doc indexes; add local
Markdown link validation (#100) - Add Dependabot for the SHA-pinned actions; restructure agent guidance into
AGENTS.md (#101) - Parse state.json once per generation instead of per WebSocket frame (#94)
- Split keyvault/_secret_ops.py and llm_guard/enforce.py into cohesive
modules (#95, #96) - Harden extension protocol compatibility (#97)
Fixes
- install_launcher: set -e is suppressed inside command substitution, so a
failed mktemp ran on and reported failure after a clean install (#103) - version_at_least read a zero-padded minor as octal (#103)
- Reject interpreter paths with shell metacharacters (#103)
- ${HOME} under set -u aborted instead of printing guidance (#103)
- Correct the extension serve failure mode and the ~/.local/bin claim in the
docs (#103) - Rate-limit pre-auth needs-key notices (#93)
- state.json read racing a write no longer caches a pre-write snapshot (#94)
- guard_hermes_home: block ceremonies with interleaved flags (#101)
- Refuse empty-text inbound on mandatory-E2E platforms (#88)
- Bump gh-action-pypi-publish to v1.14.2 so Twine v7 accepts hatchling's
Metadata-Version 2.5 (#106)