Skip to content

v0.1.0a14

Pre-release
Pre-release

Choose a tag to compare

@spiderings spiderings released this 12 Aug 03:34
· 44 commits to dev since this release
be1a11d

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 hermes on 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)