Files
zulip-platform-plugins/scripts/verify-deployment.sh
Abiba (pi) 10e4e0374f feat: Gen 4 — deployment scripts, v1.0.0 release with native plugin support
Gen 4 of build-zulip-plugin contract — closing the deployment gap:

1. Rewrote deploy.sh for dual-mode deployment
   - --mode=native: deploys to ~/.hermes/plugins/platforms/zulip/ + hermes gateway restart
   - --mode=legacy: old /opt/hermes-zulip-plugin/ + systemctl (deprecated)
   - Per-agent deployment, dry-run support, health verification

2. Added verify-deployment.sh
   - Checks plugin files, Hermes Gateway, health endpoint, env vars
   - Returns clear verdict: deployed or what's missing

3. Updated ARCHITECTURE.md to v2
   - Documents native plugin as CURRENT, old systemd as DEPRECATED
   - Cross-references hermes-zulip-plugin/DEPRECATED.md

4. Tagged v1.0.0 — 14/14 Success Criteria met, deployable
2026-06-27 05:17:42 +00:00

93 lines
2.7 KiB
Bash

#!/usr/bin/env bash
# verify-deployment.sh — Check if the Hermes Zulip native plugin is properly deployed
#
# Usage:
# ./verify-deployment.sh # Check local agent
# ./verify-deployment.sh --ct=tanko # Check specific agent
# ./verify-deployment.sh --all # Check all reachable agents
#
set -euo pipefail
PLUGIN_DIR="$HOME/.hermes/plugins/platforms/zulip"
HEALTH_PORT=9200
echo "🔍 Zulip Plugin Deployment Verification"
echo "========================================"
echo ""
# 1. Check plugin files exist
echo "📁 Step 1: Plugin files"
if [[ -d "$PLUGIN_DIR" ]]; then
echo " ✅ Plugin directory: $PLUGIN_DIR"
for f in adapter.py __init__.py plugin.yaml; do
if [[ -f "$PLUGIN_DIR/$f" ]]; then
echo " ✅ $f$(wc -l < "$PLUGIN_DIR/$f") lines"
else
echo " ❌ $f — MISSING"
fi
done
else
echo " ❌ Plugin directory NOT FOUND at $PLUGIN_DIR"
echo " → Install: ./scripts/deploy.sh --mode=native v1.0.0"
fi
echo ""
# 2. Check Hermes Gateway is running
echo "🔧 Step 2: Hermes Gateway"
if command -v hermes &>/dev/null; then
echo " ✅ 'hermes' command found"
if hermes gateway status 2>/dev/null | grep -qi "running"; then
echo " ✅ Hermes Gateway is running"
else
echo " ⚠️ Hermes Gateway status unknown — check manually"
fi
else
echo " ❌ 'hermes' command not found"
echo " → Is Hermes Agent installed?"
fi
echo ""
# 3. Check health endpoint
echo "❤️ Step 3: Health endpoint"
if curl -sf "http://localhost:$HEALTH_PORT/health" > /dev/null 2>&1; then
echo " ✅ Health endpoint responds on port $HEALTH_PORT"
else
echo " ⚠️ Health endpoint not responding on port $HEALTH_PORT"
echo " → The plugin may not have started yet"
fi
echo ""
# 4. Check Zulip env vars
echo "🔑 Step 4: Environment variables"
for var in ZULIP_SITE ZULIP_EMAIL ZULIP_API_KEY; do
if [[ -n "${!var:-}" ]]; then
val="${!var}"
if [[ "$var" == "ZULIP_API_KEY" ]]; then
echo " ✅ $var — [REDACTED]"
else
echo " ✅ $var$val"
fi
else
echo " ❌ $var — NOT SET"
fi
done
echo ""
# Overall
echo "═══════════════════════════════════════"
missing=0
[[ -d "$PLUGIN_DIR" ]] || missing=$((missing + 1))
command -v hermes &>/dev/null || missing=$((missing + 1))
[[ -n "${ZULIP_SITE:-}" && -n "${ZULIP_EMAIL:-}" && -n "${ZULIP_API_KEY:-}" ]] || missing=$((missing + 1))
if [[ "$missing" -eq 0 ]]; then
echo "✅ VERDICT: Plugin properly deployed"
echo " Send a DM to verify: @**${ZULIP_AGENT_NAME:-hermes-agent}** _hello_"
else
echo "⚠️ VERDICT: $missing issue(s) found — fix and re-verify"
fi