### R-524 — THE GUARDED UPDATE MUST REFUSE (409), both languages

== 3a. POST /api/stacks/uptime-kuma/update   (Hungarian, the box's saved language) ==
{"ok":false,"error":"Ez a változat újabb a katalógusban lévőnél — visszalépés csak az üzemeltető kérésére."}

HTTPCODE:409

== 3b. POST /api/stacks/uptime-kuma/update?lang=en   (English) ==
{"ok":false,"error":"This version is newer than the one in the catalog — moving back needs the operator."}

HTTPCODE:409

== 3c. control — ?lang=hu explicitly ==
{"ok":false,"error":"Ez a változat újabb a katalógusban lévőnél — visszalépés csak az üzemeltető kérésére."}

HTTPCODE:409

== 4. The controller log line for the refusal (verbatim, names BOTH image maps) ==
2026/09/21 11:11:06 update.go:292: [ERROR] [stacks] update uptime-kuma REFUSED (downgrade): installed is provably NEWER than the catalog on every differing service (installed=map[uptime-kuma:{louislam/uptime-kuma:2.5.0 sha256:a8610b3b4c38077922ba51b036691e06887d7cefd91fe620fd3d6d23d03dc240 2026-09-21T11:09:07Z}] catalog=map[uptime-kuma:louislam/uptime-kuma:2.4.0])
2026/09/21 11:11:07 update.go:292: [ERROR] [stacks] update uptime-kuma REFUSED (downgrade): installed is provably NEWER than the catalog on every differing service (installed=map[uptime-kuma:{louislam/uptime-kuma:2.5.0 sha256:a8610b3b4c38077922ba51b036691e06887d7cefd91fe620fd3d6d23d03dc240 2026-09-21T11:09:07Z}] catalog=map[uptime-kuma:louislam/uptime-kuma:2.4.0])
2026/09/21 11:11:08 update.go:292: [ERROR] [stacks] update uptime-kuma REFUSED (downgrade): installed is provably NEWER than the catalog on every differing service (installed=map[uptime-kuma:{louislam/uptime-kuma:2.5.0 sha256:a8610b3b4c38077922ba51b036691e06887d7cefd91fe620fd3d6d23d03dc240 2026-09-21T11:09:07Z}] catalog=map[uptime-kuma:louislam/uptime-kuma:2.4.0])

-- controls --
  POSITIVE 'downgrade' in the log : 3  (expect >0)
  POSITIVE 'REFUSED'   in the log : 3  (expect 3 = the three POSTs)
  NEGATIVE 'ZZZ-not-present'      : 0  (expect 0)

-- proof nothing moved: the app is untouched by the three refused POSTs --
uptime-kuma | louislam/uptime-kuma:2.5.0 | Up 2 minutes (healthy)
    image: louislam/uptime-kuma:2.5.0
  update-journal.json present (should be ABSENT — a refused update records nothing): ABSENT
  (positive control that this path is real — catalog-cache is beside it:)
catalog-cache debug-ring.log encryption.key metrics.db metrics.db-shm metrics.db-wal settings.json settings.json.bak 