# R-553 / R-563 red-proofs — each mutation restores the PRE-FIX shape (what HEAD e236dca does) and is watched failing

## Site 1 — TestR553_Deploy_DecisionSurvivesWordingChange + TestR553_DeployHandlerUsesTheKind
mutation: deployStatusFor reads the error text again (the HEAD chain)
--- FAIL: TestR553_Deploy_DecisionSurvivesWordingChange (0.00s)
    r553_deploy_status_test.go:49: required field, TRANSLATED: deployStatusFor("the \"Password\" (PASSWORD) field is required") = 500, want 400
    r553_deploy_status_test.go:49: password field, TRANSLATED: deployStatusFor("fill in the \"Password\" field — use the Generate button") = 500, want 400
    r553_deploy_status_test.go:49: path missing, TRANSLATED: deployStatusFor("a mappa \"/mnt/nope\" nem létezik (\"Adatok\" mező)") = 500, want 400
    r553_deploy_status_test.go:49: not enough memory, TRANSLATED: deployStatusFor("Not enough memory to install this app. Needed: 512 MB, available: 100 MB") = 500, want 400
    r553_deploy_status_test.go:49: already deployed, TRANSLATED: deployStatusFor("a(z) \"privatebin\" alkalmazás már telepítve van") = 500, want 409
    r553_deploy_status_test.go:49: a message that merely CONTAINS the old words is not a refusal kind: deployStatusFor("docker: kötelező memória does not exist") = 400, want 500
FAIL

## Site 1 producers — TestR553_DeployProducersCarryKindAndKeepTheirWords
mutation: the required-field producer goes back to plain fmt.Errorf (no kind)
--- FAIL: TestR553_DeployProducersCarryKindAndKeepTheirWords (0.75s)
    --- FAIL: TestR553_DeployProducersCarryKindAndKeepTheirWords/required_field_left_empty (0.26s)
        r553_deploy_error_kinds_test.go:91: refusal carries no kind: a(z) "Adatmappa" (DATA_DIR) mező kitöltése kötelező (want errors.Is … required field empty)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/stacks	0.754s

## Site 2 — TestR553_OffsiteQuota_DecisionSurvivesWordingChange + HeadLine
mutation: the classifier reads „tárhelykeretet" again instead of the sentinel (the HEAD arm)
--- FAIL: TestR553_OffsiteQuota_DecisionSurvivesWordingChange (0.00s)
    r553_offsite_quota_test.go:40: quota refusal, TRANSLATED: ClassifyOffsiteFailure = "unknown", want "quota"
    r553_offsite_quota_test.go:40: quota refusal wrapped by a caller: ClassifyOffsiteFailure = "unknown", want "quota"
--- FAIL: TestR553_OffsiteQuota_HeadLineSurvivesWordingChange (0.00s)
    r553_offsite_quota_test.go:52: a translated quota failure is reported with the wrong cause line: "A távoli mentés ismeretlen okból nem sikerült (12s): The remote backup is over its storage quota (51/50 GB)."
FAIL

## restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/api	0.007s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/stacks	0.752s
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/backup	(cached)

## Site 3 — TestR553_DiskWarningPlacementSurvivesWordingChange
mutation: alerts.go reads the warning's words again (the HEAD condition)
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/web [build failed]
FAIL

## Site 3 wire — TestR553_HubReportWarningsAreUnchangedOnTheWire
mutation: the kinds are added to the hub report's health block
--- FAIL: TestR553_HubReportWarningsAreUnchangedOnTheWire (0.00s)
    r553_alert_placement_test.go:84: the hub's health block changed shape: "status,issues,warnings,warning_kinds", want "status,issues,warnings"
    r553_alert_placement_test.go:100: the hub report's health bytes CHANGED:
    r553_alert_placement_test.go:103: a warning KIND reached the wire — the hub contract gained a field nobody agreed to
FAIL
## restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/web	0.007s

## Site 3 (retry, the first attempt did not compile: the loop index became unused)
mutation: alerts.go reads the warning's words again (the HEAD condition)
--- FAIL: TestR553_DiskWarningPlacementSurvivesWordingChange (0.00s)
    r553_alert_placement_test.go:55: TRANSLATED: Inline = false, want true (message "The data storage (/mnt/hdd) is not on a separate drive — the data is written to the system drive")
    r553_alert_placement_test.go:62: TRANSLATED: PageOnly = [], want 2 page(s)
    r553_alert_placement_test.go:55: a warning that merely CONTAINS the old words is not moved: Inline = true, want false (message "A meghajtó ellenőrzése nem futott le")
    r553_alert_placement_test.go:62: a warning that merely CONTAINS the old words is not moved: PageOnly = [dashboard monitoring], want 0 page(s)
FAIL
## restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/web	0.010s

## Site 4 — TestR553_StaleNoteDecisionSurvivesWordingChange
mutation: offboxWarningDisplay decides by the Hungarian marker again (the HEAD predicate)
--- FAIL: TestR553_StaleNoteDecisionSurvivesWordingChange (0.00s)
    r553_stale_note_test.go:41: TRANSLATED, apps now selected:
--- FAIL: TestR553_StaleNoteOnTheRenderedPage (0.06s)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/web	0.064s
FAIL

## Site 4 producer — TestR553_WarningKindIsPersistedAndCopied is about persistence; the producer arm is proven by removing the kind at the run
mutation: the zero-selection run no longer records its kind
testing: warning: no tests to run
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/backup	0.004s [no tests to run]
## restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/web	0.071s
## Site 4 producer — TestR553_OffboxRunRecordsTheKind (retry: the test now exists)
mutation: the zero-selection run no longer records its kind
--- FAIL: TestR553_OffboxRunRecordsTheKind (0.00s)
    r553_offsite_quota_test.go:89: the zero-selection run records its sentence but not its KIND — the Távoli mentés page is left reading Hungarian words, which localisation slice 2 will change (R-553)
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/backup	0.006s
## restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/backup	0.005s

## Site 5 (R-563) — TestR563_PollStartsFromAttribute
mutation: the poll reads the displayed word again (the HEAD line), attribute left in place
--- FAIL: TestR563_PollStartsFromAttribute (0.12s)
    r563_poll_attribute_test.go:36: [hu] the poll does not read the attribute
    r563_poll_attribute_test.go:39: [hu] the poll reads the displayed Hungarian word again (R-563)
    r563_poll_attribute_test.go:36: [en] the poll does not read the attribute
    r563_poll_attribute_test.go:39: [en] the poll reads the displayed Hungarian word again (R-563)

mutation 2: the running word goes back inline (untranslatable) — the English page shows Hungarian
--- FAIL: TestR563_PollStartsFromAttribute (0.12s)
    r563_poll_attribute_test.go:46: [en] status label = "Fut…", want "Running…"
FAIL
FAIL	gitea.dooplex.hu/admin/felhom-controller/internal/web	0.133s
## restored
ok  	gitea.dooplex.hu/admin/felhom-controller/internal/web	0.416s

## Detector re-run (felhom.eu/scripts/i18n_inventory.py) on the fixed tree
template compares: 0 (was 1 - backups_remote 'Fut'); controller_go compares: 1; indirect: 1
  - controller_go offbox_handlers.go:132 is the known FALSE POSITIVE (an [INFO] log line, named in the prompt)
  - indirect handlers.go:944 offboxStaleWarningMarker is the DELIBERATE legacy fallback (kind == "" only), row R-570

## Decoy: plant one compare of each shape, prove the detector still convicts
with the decoys planted: template compares 1 | controller_go compares 2
   template hit: sharing.html {'line': 5, 'text': 'Megosztott mappák'}
   go hit: alerts.go 164 Meghajtó leválasztva
   go hit: offbox_handlers.go 132 A távoli mentési cél elmentve.
decoys removed
