---
name: feedback_gururmm_build_channel_default
description: GuruRMM build pipeline must tag NEW builds beta by default; stable is an explicit promote step. Distinct from agents defaulting to the stable CHANNEL (which is correct).
metadata:
  type: feedback
---

GuruRMM has two separate "stable" concepts that were conflated in a misunderstanding (corrected by Mike 2026-06-01):

1. **Agent channel default = stable** — CORRECT and intended. `server/src/db` `resolve_agent_channel` returns "stable" when an agent/site/client has no `update_channel` override. Agents with no override should inherit the stable channel. Leave this as-is.
2. **Build classification default = beta** — the FIX. New agent binaries must be tagged `beta` by default (a `<binary>.channel` sidecar = "beta"); promotion to `stable` is a deliberate, explicit re-tag after a canary verifies. The bug: `deploy/build-pipeline/build-windows.sh` and `build-linux.sh` tagged every new build `stable` ("Mark all new builds as stable by default"), which collapses the beta soak — `scanner.rs::get_latest_version` gives beta agents the absolute-latest binary and stable agents the latest stable-tagged one, and with `auto_update` on-by-default the whole stable fleet self-updates on reconnect. macOS already does it right (`agent/build-macos-pkg.sh` writes "beta").

**Why:** enables beta-first canary rollout (e.g. soak a release on GURU-5070 before the ~46-agent fleet). Mike originally asked for "all agents on the stable channel by default", NOT "all builds classified stable".

**How to apply:** when releasing GuruRMM agents, expect new builds to land on `beta` only. Promote to stable explicitly (re-tag the `.channel` sidecar to "stable" on the server downloads dir) after verifying on a beta box. See [[feedback_gururmm_builds]] (builds go through the Gitea webhook pipeline, never run build scripts by hand).
