From a02cdb36fcecb84a9333a221c948b332e5ed7b81 Mon Sep 17 00:00:00 2001 From: Toby Date: Sat, 11 Jul 2026 15:56:46 -0500 Subject: [PATCH 1/2] chore: add version consistency check in CI and bump plugin.yaml to v0.9.2 - Add 'Check version consistency' step to build-and-test job: verifies pyproject.toml [project].version and hexus/plugin.yaml version both match the git tag version (stripping the 'v' prefix) before Docker/PyPI artifacts are built. - Bump hexus/plugin.yaml version from 0.4.0 to 0.9.2 to match pyproject.toml and the v0.9.2 tag. Closes: ensures Docker image is only pushed to GHCR when all version fields are in sync with the tag. --- .github/workflows/ci.yml | 34 ++++++++++++++++++++++++++++++++++ hexus/plugin.yaml | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e3193db..85bfed3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -102,6 +102,40 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Check version consistency + run: | + # Strip 'v' prefix so v0.9.2 → 0.9.2 matches file values. + TAG_VERSION="${GITHUB_REF_NAME#v}" + echo "Tag version: $TAG_VERSION" + + # pyproject.toml: value of the `version` key under [project] + PYTOML_VERSION=$(python -c " + import tomllib + with open('pyproject.toml', 'rb') as f: + v = tomllib.load(f)['project']['version'] + print(v) + ") + echo "pyproject.toml version: $PYTOML_VERSION" + + # hexus/plugin.yaml: value of the top-level `version` key + YAML_VERSION=$(python -c " + import yaml + with open('hexus/plugin.yaml') as f: + v = yaml.safe_load(f)['version'] + print(v) + ") + echo "hexus/plugin.yaml version: $YAML_VERSION" + + if [ "$TAG_VERSION" != "$PYTOML_VERSION" ]; then + echo "ERROR: pyproject.toml version '$PYTOML_VERSION' does not match tag '$TAG_VERSION'" + exit 1 + fi + if [ "$TAG_VERSION" != "$YAML_VERSION" ]; then + echo "ERROR: hexus/plugin.yaml version '$YAML_VERSION' does not match tag '$TAG_VERSION'" + exit 1 + fi + echo "All version fields match tag $TAG_VERSION" + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 diff --git a/hexus/plugin.yaml b/hexus/plugin.yaml index 4b4e4d9..a992368 100644 --- a/hexus/plugin.yaml +++ b/hexus/plugin.yaml @@ -1,5 +1,5 @@ name: hexus -version: 0.4.0 +version: 0.9.2 description: "Postgres + hexus storage layer for hermes-agent + MCP server. Mirrors built-in MEMORY.md / USER.md + captures every substantive (user, assistant) chat turn into a conversations table. Per-agent themes (marketing/sales/trading/incident/morning-report/…) via X-Hermes-Session-Key header — every systemd-run minion gets its own scope. 384-dim local BERT (MiniLM-L6-v2) embeddings by default, with HTTP-embed fallback for operators with an existing Ollama endpoint. Async writer + connection pool. No LLM mediation. The same store is exposed as an MCP server (`hexus-mcp serve`) for non-hermes agents (Claude Desktop, Cursor, fleet agents) — one process, one model load, one shared knowledge base." pip_dependencies: - "psycopg[binary]>=3.3.4" From a3c840c7753c35cd9020ef68b7c5ff242e3c32de Mon Sep 17 00:00:00 2001 From: Toby Date: Sat, 11 Jul 2026 16:01:22 -0500 Subject: [PATCH 2/2] fix(ci): guard version consistency check to tag pushes only The check was running on every PR push where GITHUB_REF_NAME is the branch ref (e.g. '30/merge'), causing a false failure. Gate it with startsWith(github.ref, 'refs/tags/v') so it only runs on version tag pushes, not PRs or branch pushes. --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 85bfed3..be36796 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,6 +103,7 @@ jobs: uses: actions/checkout@v4 - name: Check version consistency + if: startsWith(github.ref, 'refs/tags/v') # only runs on tag pushes, not PRs run: | # Strip 'v' prefix so v0.9.2 → 0.9.2 matches file values. TAG_VERSION="${GITHUB_REF_NAME#v}"