From 442df792a33e874ce15b24e0f305094e7485508c Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 16 Aug 2026 05:43:21 -0400 Subject: [PATCH 1/7] Update MNEMON_VERSION to 0.2.3 --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index f6ee54d..bc380f1 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -4,7 +4,7 @@ ARG MODELRELAY_VERSION=1.18.0 ARG OLLAMA_VERSION=0.32.6 ARG NODE_VERSION=26.7.0 ARG CODE_SERVER_VERSION=4.131.0 -ARG MNEMON_VERSION=0.1.17 +ARG MNEMON_VERSION=0.2.3 ARG TARGETARCH # Use the official Ollama image to get the binary From 3c670123142a18080182da992207c9fe46be4d0e Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 16 Aug 2026 06:35:21 -0400 Subject: [PATCH 2/7] Implement functional test in docker-publish.yml Add functional test to Docker publish workflow. --- .github/workflows/docker-publish.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index cc9ed45..fab2b4f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -111,6 +111,14 @@ jobs: echo "PASS: Docker image smoke test passed." exit 0 fi + + - name: Functional Test + run: | + CONTAINER_NAME="hermes-webtop" + docker exec -u abc "$CONTAINER_NAME" hermes chat -q "my name is shitty-hole" + docker exec -u abc "$CONTAINER_NAME" claude --dangerously-skip-permissions -p "do you mnemon remember what is my name" + + # ── Collect logs on failure ────────────────────────────────────── - name: Upload logs on failure if: failure() From 925667edeb275254c6ad76440b7789c756eca801 Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 16 Aug 2026 06:58:20 -0400 Subject: [PATCH 3/7] Update command path for claude in docker-publish.yml --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index fab2b4f..56acb8b 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -116,7 +116,7 @@ jobs: run: | CONTAINER_NAME="hermes-webtop" docker exec -u abc "$CONTAINER_NAME" hermes chat -q "my name is shitty-hole" - docker exec -u abc "$CONTAINER_NAME" claude --dangerously-skip-permissions -p "do you mnemon remember what is my name" + docker exec -u abc "$CONTAINER_NAME" /config/.local/bin/claude --dangerously-skip-permissions -p "do you mnemon remember what is my name" # ── Collect logs on failure ────────────────────────────────────── From 5d59c6cec0ff45f28f143368c9bfefcd117c5e6c Mon Sep 17 00:00:00 2001 From: gitricko Date: Sun, 16 Aug 2026 07:11:48 -0400 Subject: [PATCH 4/7] Update functional test chat command in workflow --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 56acb8b..59c4ecf 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -115,7 +115,7 @@ jobs: - name: Functional Test run: | CONTAINER_NAME="hermes-webtop" - docker exec -u abc "$CONTAINER_NAME" hermes chat -q "my name is shitty-hole" + docker exec -u abc "$CONTAINER_NAME" hermes chat -q "my name is shitty-hole, remember in mnemon" docker exec -u abc "$CONTAINER_NAME" /config/.local/bin/claude --dangerously-skip-permissions -p "do you mnemon remember what is my name" From d94164756f0e59fed5b5e0dab04206df0a1c1584 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sun, 16 Aug 2026 12:03:20 +0000 Subject: [PATCH 5/7] feat: replace functional test with mnemon smoke test 3-layer verification: 1. Hermes remembers name via mnemon_remember tool 2. mnemon CLI confirms data was stored (direct recall + grep) 3. Claude retrieves the name via mnemon recall (cross-agent) Each step has explicit pass/fail assertions. Unique test name per CI run prevents false passes from stale data. --- .github/workflows/docker-publish.yml | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 59c4ecf..45c147c 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -112,12 +112,31 @@ jobs: exit 0 fi - - name: Functional Test + - name: Mnemon Smoke Test run: | + set -euo pipefail CONTAINER_NAME="hermes-webtop" - docker exec -u abc "$CONTAINER_NAME" hermes chat -q "my name is shitty-hole, remember in mnemon" - docker exec -u abc "$CONTAINER_NAME" /config/.local/bin/claude --dangerously-skip-permissions -p "do you mnemon remember what is my name" - + TEST_NAME="ci-mnemon-$(date +%s)-$$" + echo "=== Mnemon Smoke Test: $TEST_NAME ===" + + echo "[1/3] Hermes remembers via mnemon_remember..." + timeout 60 docker exec -u abc "$CONTAINER_NAME" \ + hermes chat -q "my name is $TEST_NAME, remember this in mnemon" \ + || { echo "FAIL: Hermes failed"; exit 1; } + + echo "[2/3] mnemon recall via CLI..." + docker exec -u abc "$CONTAINER_NAME" \ + mnemon recall "$TEST_NAME" --limit 5 2>&1 | grep -q "$TEST_NAME" \ + || { echo "FAIL: mnemon recall did not find $TEST_NAME"; exit 1; } + + echo "[3/3] Claude retrieves via mnemon..." + timeout 60 docker exec -u abc "$CONTAINER_NAME" \ + /config/.local/bin/claude --dangerously-skip-permissions -p \ + "Use mnemon recall to find my name. Reply with ONLY the name." 2>&1 \ + | grep -q "$TEST_NAME" \ + || { echo "FAIL: Claude did not return $TEST_NAME"; exit 1; } + + echo "=== ALL MNEMON CHECKS PASSED ===" # ── Collect logs on failure ────────────────────────────────────── - name: Upload logs on failure From 48c8f8338a8ecc32369822160de37c27898b23b5 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sun, 16 Aug 2026 12:21:58 +0000 Subject: [PATCH 6/7] feat: show Claude output in mnemon smoke test step 3 --- .github/workflows/docker-publish.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 45c147c..83d3c5f 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -130,10 +130,11 @@ jobs: || { echo "FAIL: mnemon recall did not find $TEST_NAME"; exit 1; } echo "[3/3] Claude retrieves via mnemon..." - timeout 60 docker exec -u abc "$CONTAINER_NAME" \ + CLAUDE_OUTPUT=$(timeout 60 docker exec -u abc "$CONTAINER_NAME" \ /config/.local/bin/claude --dangerously-skip-permissions -p \ - "Use mnemon recall to find my name. Reply with ONLY the name." 2>&1 \ - | grep -q "$TEST_NAME" \ + "Use mnemon recall to find my name. Reply with ONLY the name." 2>&1) + echo "Claude: $CLAUDE_OUTPUT" + echo "$CLAUDE_OUTPUT" | grep -q "$TEST_NAME" \ || { echo "FAIL: Claude did not return $TEST_NAME"; exit 1; } echo "=== ALL MNEMON CHECKS PASSED ===" From f679e5c98f27dff28af7e591ff431a17e25477ae Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Sun, 16 Aug 2026 12:36:11 +0000 Subject: [PATCH 7/7] =?UTF-8?q?rename:=20Mnemon=20Smoke=20Test=20=E2=86=92?= =?UTF-8?q?=20Mnemon=20Integration=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/docker-publish.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 83d3c5f..de4a3f6 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -112,12 +112,12 @@ jobs: exit 0 fi - - name: Mnemon Smoke Test + - name: Mnemon Integration Test run: | set -euo pipefail CONTAINER_NAME="hermes-webtop" TEST_NAME="ci-mnemon-$(date +%s)-$$" - echo "=== Mnemon Smoke Test: $TEST_NAME ===" + echo "=== Mnemon Integration Test: $TEST_NAME ===" echo "[1/3] Hermes remembers via mnemon_remember..." timeout 60 docker exec -u abc "$CONTAINER_NAME" \