From c0d9e8a0b6eab09a1b2f36405083b3107a1db323 Mon Sep 17 00:00:00 2001 From: JarbasAi Date: Sun, 13 Sep 2026 12:07:59 +0000 Subject: [PATCH 1/2] chore(deps): update the python base image to 3.14-slim Re-cut of the Renovate update in #2. The image installs hivemind-core, hivemind-websocket-protocol, hivemind-ovos-agent-plugin, ovos-messagebus, ovos-utils and ovos-bus-client with uv. All six install and import on Python 3.14.7. Co-Authored-By: Claude Opus 5 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 8e051e4..ca40125 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.12-slim +FROM python:3.14-slim RUN apt-get update && apt-get install -y --no-install-recommends curl \ && rm -rf /var/lib/apt/lists/* From 72ab147534ef8bac09cfcd86f0520c4005b1476e Mon Sep 17 00:00:00 2001 From: JarbasAi Date: Fri, 18 Sep 2026 06:57:07 +0000 Subject: [PATCH 2/2] ci: build the image and import the stack inside it Review of #3: the repository had no workflow, so no automation had ever built this image or resolved its install line. The build runs on push to dev, on pull requests and on dispatch, with no push of the image, and then imports the installed packages on the image Python and compiles mock_agent.py (which connects to a bus at import time). Co-Authored-By: Claude Opus 5 --- .github/workflows/build.yml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..6226e4e --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,34 @@ +name: Build image + +# The image is the whole product of this repository: a mesh of HiveMind nodes +# in docker compose. Nothing checked a build before this workflow, so a base +# image bump (#3) was proven by hand. This builds the image with no push and +# imports the agent inside it, which resolves every package the RUN line +# installs on the image's own Python. + +on: + push: + branches: [dev] + pull_request: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 20 + steps: + - uses: actions/checkout@v7 + - uses: docker/setup-buildx-action@v4 + - name: Build the node image + uses: docker/build-push-action@v7 + with: + context: . + push: false + load: true + tags: hivetree-node:ci + - name: Import the stack inside the image + # mock_agent.py connects to a bus at import time, so it is compiled, + # not imported. The packages the RUN line installs are imported. + run: | + docker run --rm --entrypoint python hivetree-node:ci -c \ + "import py_compile, sys; py_compile.compile('/app/mock_agent.py', doraise=True); import hivemind_core, hivemind_websocket_protocol, hivemind_ovos_agent_plugin, ovos_messagebus, ovos_bus_client; print(sys.version)"