From c67accddccb55704147bdcebca83cbd5403fff01 Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Sat, 30 May 2026 17:07:09 -0700 Subject: [PATCH] memory: record RMM webhook docs-only build guard (SPEC-020 Phase 0) Host guard in /opt/gururmm/webhook-handler.py skips docs-only pushes; note the stale repo copy must not be redeployed over it. Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/memory/MEMORY.md | 1 + .../memory/project_rmm_webhook_docs_guard.md | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 .claude/memory/project_rmm_webhook_docs_guard.md diff --git a/.claude/memory/MEMORY.md b/.claude/memory/MEMORY.md index fd56177..ab0dba3 100644 --- a/.claude/memory/MEMORY.md +++ b/.claude/memory/MEMORY.md @@ -76,6 +76,7 @@ - [Mac gururmm setup pending](project_mac_gururmm_setup_pending.md) — ACTION REQUIRED: run `bash scripts/install-hooks.sh` in gururmm repo on Mikes-MacBook-Air before any RMM work ## Project +- [RMM webhook docs-only build guard](project_rmm_webhook_docs_guard.md) — RMM build webhook skips docs-only pushes (host guard in /opt/gururmm/webhook-handler.py, SPEC-020 Phase 0); repo copy is stale, don't redeploy it - [GuruConnect v2 direction](project_guruconnect_v2_direction.md) — v2 re-architecture (SPEC-002, 2026-05-29): greenfield-salvage-cores, NATIVE-first (full key fidelity Win+R/Ctrl+Alt+Del + bidirectional file cut/paste/drag are Mike's headline must-haves; WebRTC fallback only), standalone-first + RMM contract, hardened single-tenant but tenancy-ready schema. Willing to scrap v1 entirely. - [Apple MDM + Developer certs (GuruRMM mobile)](project_apple_mdm_certs.md) — ACG holds both Apple Developer+signing and Apple MDM Push certs (acquired 2026-05-29) for SPEC-017 mobile support. MDM push cert RENEWS ANNUALLY on the same Apple ID or all enrolled iOS devices break. Capture Apple ID + expiry. - [Only RMM & GC are versionable products](project_versionable_products.md) — GuruRMM + GuruConnect are the only products with own repos/submodules; everything else stays in the claudetools monorepo. Split only for independent pipeline OR versioned external consumer. diff --git a/.claude/memory/project_rmm_webhook_docs_guard.md b/.claude/memory/project_rmm_webhook_docs_guard.md new file mode 100644 index 0000000..4110383 --- /dev/null +++ b/.claude/memory/project_rmm_webhook_docs_guard.md @@ -0,0 +1,22 @@ +--- +name: project_rmm_webhook_docs_guard +description: RMM build webhook now skips docs-only pushes (host guard in /opt/gururmm/webhook-handler.py). The repo copy is stale — don't redeploy it. +metadata: + type: project +--- + +The GuruRMM build webhook (`gururmm-webhook.service` → `/opt/gururmm/webhook-handler.py` +on 172.16.3.30) has a **docs-only build guard** as of 2026-05-30: a push whose every +changed file matches `docs/`, `*.md`, `.claude/`, `session-logs/`, `LICENSE`, or +`.gitignore` returns `Docs-only change -- build skipped` and triggers no build. +Fail-safe toward building — no file list or any buildable file → build runs. Detection +uses the Gitea push payload's per-commit `added`/`removed`/`modified` lists +(`is_docs_only` / `NON_BUILDABLE`). Verified live (docs push skipped, no build locks, +`last-built-commit` unchanged). Backup: `/opt/gururmm/webhook-handler.py.bak-20260530-guard`. + +This is **SPEC-020 Phase 0** (interim). The full fix migrates RMM CI to Gitea Actions +with native `paths-ignore`, matching GuruConnect (ADR-002) — see [[reference_gitea_internal]]. + +**Caveat:** the repo copy `scripts/webhook-handler.py` is STALE (109 lines vs the deployed +206 — predates the split-build refactor) and does NOT contain the guard. Do not redeploy +it over the host copy; the host is the source of truth until SPEC-020 lands.