R-518 option A (decision 156) — controller suite after the fix (local clone, branch r518-one-stop-per-tier,
working tree = fix + tests + copy; base felhom-controller 3124278).

$ cd controller && go build ./... && go vet ./... && echo BUILD_VET_OK
BUILD_VET_OK

$ cd controller && go test ./...      (full output — 43 lines, no FAIL line)
ok  	gitea.dooplex.hu/admin/felhom-controller/cmd/controller	10.666s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/agentapi	0.182s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/api	0.145s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/appbackup	0.028s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/appexport	0.615s
?   	gitea.dooplex.hu/admin/felhom-controller/internal/assets	[no test files]
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/backup	1.777s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/backupwindow	0.006s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/bootrecon	0.008s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/bootstrap	14.029s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/channelhealth	0.005s
?   	gitea.dooplex.hu/admin/felhom-controller/internal/cloudflare	[no test files]
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/config	0.006s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/crashboot	0.007s
?   	gitea.dooplex.hu/admin/felhom-controller/internal/crypto	[no test files]
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/dockerexec	0.189s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/family	0.026s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/fillwatch	0.011s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/i18n	0.395s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/infra	0.012s
?   	gitea.dooplex.hu/admin/felhom-controller/internal/integrations	[no test files]
?   	gitea.dooplex.hu/admin/felhom-controller/internal/logx	[no test files]
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/mailrelay	0.018s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/metrics	0.010s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/monitor	0.007s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/nightchain	0.011s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/notify	0.910s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/offsiteapply	0.014s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/quiesce	0.089s
?   	gitea.dooplex.hu/admin/felhom-controller/internal/recovery	[no test files]
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/report	2.587s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/scheduler	0.457s
?   	gitea.dooplex.hu/admin/felhom-controller/internal/selftest	[no test files]
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/selfupdate	0.043s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/settings	0.555s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/setup	0.010s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/sockheal	0.008s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/stacks	397.094s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/sync	0.385s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/system	0.064s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/util	0.041s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/web	63.621s
?   	gitea.dooplex.hu/admin/felhom-controller/scripts	[no test files]

Filter proof (the new/renamed tests ran, after the fix):
$ go test ./internal/quiesce/ -run 'TestFirstTierSnapshot_ResumesAppWhileUploadContinues|TestManualPress_RunsOnlyLocalTier|TestBothTiersDue_FirstCycleRunsOnlyFirstTier|TestLeftoverTier_RunsInNextCycleInItsOwnWindow|TestNotify_BothFailingTiersAreReported|TestManualRun_' -v -count=1
=== RUN   TestNotify_BothFailingTiersAreReported
--- PASS: TestNotify_BothFailingTiersAreReported (0.00s)
=== RUN   TestManualRun_AbsentTierSkipped
--- PASS: TestManualRun_AbsentTierSkipped (0.00s)
=== RUN   TestManualRun_UnknownStorageNotSkipped
--- PASS: TestManualRun_UnknownStorageNotSkipped (0.00s)
=== RUN   TestBothTiersDue_FirstCycleRunsOnlyFirstTier
--- PASS: TestBothTiersDue_FirstCycleRunsOnlyFirstTier (0.00s)
=== RUN   TestFirstTierSnapshot_ResumesAppWhileUploadContinues
--- PASS: TestFirstTierSnapshot_ResumesAppWhileUploadContinues (0.00s)
=== RUN   TestLeftoverTier_RunsInNextCycleInItsOwnWindow
--- PASS: TestLeftoverTier_RunsInNextCycleInItsOwnWindow (0.00s)
=== RUN   TestManualPress_RunsOnlyLocalTier
--- PASS: TestManualPress_RunsOnlyLocalTier (0.00s)
PASS
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/quiesce	0.022s

$ go test ./internal/quiesce/ -run TestManualRunTiers_ -v -count=1
=== RUN   TestManualRunTiers_NoPrimaryAvailable_BacksUpFirstAvailable
--- PASS: TestManualRunTiers_NoPrimaryAvailable_BacksUpFirstAvailable (0.00s)
PASS

$ go test ./internal/web/ -run 'TestR518_|TestI18n' -v -count=1   (top-level RUN lines)
=== RUN   TestI18nParity
=== RUN   TestI18nEnglishPages
=== RUN   TestI18nParityCoversEveryMarker
=== RUN   TestI18nJSContextValuesAreSafe
=== RUN   TestI18nDirectRenderPagesFollowLanguage
=== RUN   TestI18nDirectRenderPagesHaveNoAdminChrome
=== RUN   TestR518_BackupButtonStatesTheShortLocalOnlyStop
PASS
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/web	7.899s

$ python3 controller/scripts/controller_gates.py --fast   (felhom.eu sibling present; summary)
  template-id        OK            (exit 0)
  emoji              OK            (exit 0)
  native-confirm     OK            (exit 0)
  offbox-rename      OK            (exit 0)
  app-row-dedup      OK            (exit 0)
  mojibake           OK            (exit 0)
  docker-v           OK            (exit 0)
  secret-markup      OK            (exit 0)
  retrieval-promise  OK            (exit 0)
  debug-routes       OK            (exit 0)
  reuse-refs         OK            (exit 0)
  instructions       OK            (exit 0)
  observations       OK            (exit 0)
  minagent-header    OK            (exit 0)
  i18n               OK            (exit 0)
  go-parity          OK            (exit 0)
  gofmt              OK            (exit 0)
  golden-notice      ADVISORY      (exit 0, advisory)

all controller gates OK
