From 4d76744721424425744d5677b5111626438580b6 Mon Sep 17 00:00:00 2001 From: mhoennig Date: Sun, 30 Aug 2026 11:20:58 +0200 Subject: [PATCH] Record the v0.9.21 deployment to vm4006 Co-Authored-By: Claude Opus 5 --- docs/plan/15-runtime-bundle-distribution.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/plan/15-runtime-bundle-distribution.md b/docs/plan/15-runtime-bundle-distribution.md index 24896a7..e69a540 100644 --- a/docs/plan/15-runtime-bundle-distribution.md +++ b/docs/plan/15-runtime-bundle-distribution.md @@ -174,3 +174,8 @@ The machine config had to be migrated in the same window (backup `.gittally.yml. The new configuration was validated with the new binary (`config:print --full`) after the swap and before the start. Verified live: `--version` reports v0.9.20, the service is `active`, `/releases` lists v0.9.20, the watcher polls without errors, and the two expected warnings (`builds.maxConcurrent`, the ignored `branches` section) are the only ones from the host configuration. The branch-scoped refusal showed itself in production immediately: `mihoe/reactivate-pi-test` still commits its triggers flat, so its committed config is refused with a message naming the branch, the commit, and each definition's offending keys — the watcher falls back to the host's definitions for scheduling, and builds of that branch fail until the file is migrated. Every other branch is unaffected, which is the whole point of the per-file scoping. + +Update to v0.9.21 (2026-08-30): same procedure, `~/opt/gittally.0.9.20.bak` as the rollback copy, no build was running; the machine config needed no change this time. +Shipped feature: an unreachable origin is shown in the web UI (step 19), and a lasting fetch failure is logged once per message instead of once per poll. +The occasion was an outage the same morning: the `git.token` in the machine config had been overwritten with a placeholder string, GitTally failed every fetch for 57 minutes, and the branches view kept showing its last known list as if nothing were wrong. +Verified live: `--version` reports v0.9.21, the service is `active`, `/` answers 200 with v0.9.21 in the footer, `/api/watcher` reports `lastFetchError: null`, the served `gittally.js` carries `refreshWatcherBanner`, `/branches` carries the banner element, and the only warnings are the two expected ones from the repository's committed config (`builds.maxConcurrent`, the ignored `branches` section).