All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.20 (2026-07-28)
0.1.19 (2026-07-28)
0.1.18 (2026-06-19)
- runtime: run agents on the upstream s6 image — instance reaches Ready (gateway API + /health) (#90) (12dccb4)
- agent-image: ship pyproject.toml + uv.lock at /opt/venv-template/ (#68) (#85) (39ef52c)
- agent-image: ship the uv binary in the runtime stage (#68) (#88) (13fb1e5)
- backup: bound the on-delete finalizer so a failing snapshot can't make an instance undeletable (#94) (40d6099)
0.1.17 (2026-06-16)
0.1.16 (2026-06-16)
0.1.15 (2026-06-16)
0.1.14 (2026-06-10)
0.1.13 (2026-06-04)
0.1.12 (2026-06-03)
- optional Gateway API HTTPRoute for HermesInstance (#59) (ff5d781)
- tier-1/2 parity (digest-pin, bench, image CEL, zombie reaping, Grafana, docs-site) (#56) (712ed2b)
0.1.11 (2026-06-03)
0.1.10 (2026-06-03)
- agent-image: native pinned uv relock + bump uv to 0.11.7 (#48) (6e2615f)
- agent-image: relock uses uv image entrypoint (unblocks hermes-agent publish) (#46) (9e456b1)
- agent-image: verify uv.lock by git tag (unblocks publish) (#50) (3cbcc7f)
0.1.9 (2026-05-26)
- ci: operatorhub-submit uses classic PAT with public_repo scope (#39) (33273ad)
- ci: release-please auto-creates tag via commit-message detection (#38) (e36a8d4)
0.1.8 (2026-05-26)
- rename stubbi → paperclipinc across chart, CI, docs, Go module (de3e0bd)
0.1.7 (2026-05-20)
0.1.6 (2026-05-13)
- ci: semantic Bundle RBAC sync check (was: file-diff flake) (#16) (3b3b5a6)
- release: build container images via docker/build-push-action (#23) (d1b4862)
- release: run make installer via goreleaser before:hooks (#25) (5bcd154)
- release: trigger v0.1.2 (v0.1.1 tag has broken release.yaml) (#18) (e3f8289)
- release: use --skip=validate instead of throw-away commit (#20) (61f2099)
0.1.5 (2026-05-13)
0.1.4 (2026-05-13)
0.1.3 (2026-05-13)
0.1.2 (2026-05-13)
- ci: semantic Bundle RBAC sync check (was: file-diff flake) (#16) (3b3b5a6)
- release: trigger v0.1.2 (v0.1.1 tag has broken release.yaml) (#18) (e3f8289)
0.1.1 (2026-05-13)
1.0.0 (2026-05-12)
First public release. The Kubernetes operator for
nousresearch/hermes-agent,
shipping with full feature parity to openclaw-operator v0.32 adapted to
hermes-agent's Python/uv runtime, plus hermes-specific surfaces:
multi-platform gateways (Telegram/Discord/Slack/WhatsApp/Signal), a
Honcho profile-store companion, an SSA-based HermesSelfConfig API for
agent-initiated mutations, and a one-shot OpenClaw → Hermes migration
path.
The v1 stability contract: API versioning policy, deprecation policy, exhaustive condition catalogue, conversion-webhook scaffolding: is in place from day one. See docs/api-versioning.md and docs/deprecations.md.
Inspired by openclaw-rocks/openclaw-operator.
Concrete lessons baked in: SSA from day one on the SelfConfig path
(openclaw #433), explicit Kubernetes defaults set in every builder
(generation-thrash regressions never shipped), finalizer mutations via
r.Patch rather than r.Update (openclaw #437), foreign-annotation
preservation (openclaw #446), zombie-process reaper (openclaw #471),
namespace-scoped RBAC opt-in (openclaw #469), ClusterRole aggregation
labels (openclaw #479), and read-only root filesystem with explicit
writable subPaths (openclaw #458).
- CRDs (
hermes.agent/v1):HermesInstance(namespaced),HermesSelfConfig(namespaced, SSA-applied),HermesClusterDefaults(cluster-scoped singletoncluster). - Workload: StatefulSet (single replica by default; opt-in HPA),
default-deny NetworkPolicy + per-gateway allow rules, PDB
auto-managed when
replicas > 1, read-only root filesystem with writableemptyDirs for/tmpand~/.config. - Multi-platform gateways: Telegram, Discord, Slack, WhatsApp, Signal: each with its own Secret reference, rotatable independently.
- Day-2 operations: S3-compatible backups (scheduled / on-delete /
pre-update), declarative one-shot restore (
spec.restoreFrom), OCI-registry-driven auto-update with probe-failure rollback, one-shot OpenClaw → Hermes migration (sibling or S3 source). - GitOps coexistence: SSA on the SelfConfig path under field manager
hermes.agent/selfconfig; FluxCD/Argo own the same instance for other fields without flap. - Distribution: Helm chart, OLM bundle (OperatorHub submission),
plain kustomize manifests, multi-arch (
amd64+arm64) Cosign-signed images with SPDX SBOM attestation. - Testing: unit, envtest, e2e (kind), conformance (negative + idempotency + upgrade matrix + GitOps + failure injection), benchmarks, gosec + Trivy, Reconcile Guard CI, Helm RBAC sync check.
- Documentation: design spec, API reference, condition catalogue, API versioning policy, deprecation policy, 9 worked examples, Grafana dashboard, public roadmap.
1.28, 1.29, 1.30, 1.31, 1.32.
examples/directory will be populated with 9 worked YAML recipes in v1.1. The directory structure and README index are committed; the individual example files are a follow-up cycle.- Grafana dashboard library (
docs/grafana/) will expand to per- instance drilldown and per-gateway health dashboards in v1.1. The operator-overview dashboard is in v1.0.0. - OperatorHub submission requires manual steps (submission PR to OperatorHub community-operators repo). The OLM bundle is committed and tested; the actual submission is a human-in-the-loop step after this release.
This is a clean-room operator built specifically for hermes-agent. The
openclaw-rocks/openclaw-operator
project: which shipped a similar lifecycle operator for OpenClaw,
evolving through v0.5 → v0.32 with substantial production feedback:
served as the reference for the shape of this product: which surfaces
matter, which lessons stick, and which guardrails are non-negotiable.
The hermes-specific surfaces (Python/uv runtime, multi-platform
gateways, Honcho, SSA-based SelfConfig with profiles action, declarative
migration importer) are new. The v1 stability contract is also new; it
is the single most important thing this operator does differently from
the v0.x grind.
For the full list of openclaw lessons that informed v1, see docs/superpowers/specs/2026-05-12-hermes-operator-design.md §1.G3 and §7.2 ("Reconciliation rules").