From 768b6dcdab83791e4eabf1dc9cf2ff4dec7bef54 Mon Sep 17 00:00:00 2001 From: Jeppe B <2jepp9350@gmail.com> Date: Thu, 13 Aug 2026 01:34:04 +0200 Subject: [PATCH] autoheal(i18n): fix automation_settings_removed_desc self-referential link (#295) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes master CI failure: E2E i18n-v2-integrity (cyclic linked messages). - SHA: a1fa132 - Failing check: `i18n v2 catalog integrity › keeps v2 linked messages resolvable and acyclic` (failed across 8 customer E2E shards) - Run: 31632019962 - Root cause: The five locale source files (da/en/sv/de/no) defined `xlvask.automation_settings_removed_desc` as a self-referential `@:{...}` link, which the v2 integrity test flagged as a cycle. Fix: removed the broken self-reference from each per-locale file. The global shared English string in `src/i18n/source/global/shared/configuration/index.json` already provides the correct text and is inherited via the shared-config merge in `src/i18n/index.js`. The runtime key `configuration.xlvask.automation_settings_removed_desc` still resolves. Verified: - `npm run i18n:v2:check` passes (source-check, template-dedupe, word-dedupe, global-template-audit) - i18n-v2-integrity acyclic-links check: no cycles in any locale - i18n-v2-integrity placeholder-alignment check: no mismatches - `npm run test:unit:fast`: 1360 tests pass (223 files) Diff: 10 files, 10 deletions. Filed by master-autoheal-agent cron. Co-authored-by: Worktree Fix Verifier --- src/i18n/generated/da-v2.json | 1 - src/i18n/generated/de-v2.json | 1 - src/i18n/generated/en-v2.json | 1 - src/i18n/generated/no-v2.json | 1 - src/i18n/generated/sv-v2.json | 1 - src/i18n/source/da/phrases/compat/configuration/index.json | 1 - src/i18n/source/de/phrases/compat/configuration/index.json | 1 - src/i18n/source/en/phrases/compat/configuration/index.json | 1 - src/i18n/source/no/phrases/compat/configuration/index.json | 1 - src/i18n/source/sv/phrases/compat/configuration/index.json | 1 - 10 files changed, 10 deletions(-) diff --git a/src/i18n/generated/da-v2.json b/src/i18n/generated/da-v2.json index 004a57cc..d1ebdaa6 100644 --- a/src/i18n/generated/da-v2.json +++ b/src/i18n/generated/da-v2.json @@ -2895,7 +2895,6 @@ "api_settings_desc": "@:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.forbindelsesindstillingerne'}.", "automation_settings": "Automatisering", "automation_settings_desc": "Styr @:{'words.generated.automatisk'} @:{'words.generated.tilknytning'} @:{'words.generated.og'} @:{'words.generated.oprettelse'} @:{'words.generated.af'} @:{'words.generated.ordrer'} @:{'words.generated.fra'} @.capitalize:{'words.generated.selvvask'}.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@.capitalize:{'words.generated.forbindelse'} @:{'words.generated.fejlede'}", "connection_failed_desc": "@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.fejlede'}.", "connection_success_desc": "@.capitalize:{'words.generated.forbindelsen'} @:{'words.generated.til'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.var'} @:{'words.generated.succesfuld'}.", diff --git a/src/i18n/generated/de-v2.json b/src/i18n/generated/de-v2.json index 463c1dcb..c9f48794 100644 --- a/src/i18n/generated/de-v2.json +++ b/src/i18n/generated/de-v2.json @@ -3005,7 +3005,6 @@ "api_settings_desc": "@:{'words.generated.api'}-@:{'words.generated.verbindungseinstellungen'} @:{'words.generated.f'}?@:{'words.generated.r'} @:{'words.generated.xlvask'}.", "automation_settings": "Automatisierung", "automation_settings_desc": "@:{'words.generated.automatische'} @:{'words.generated.auftragsverknupfung'} @:{'words.generated.und'} @:{'words.generated.auftragserstellung'} @:{'words.generated.aus'} @:{'words.generated.selvvask'} steuern.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@:{'words.generated.verbindung'} @:{'words.generated.fehlgeschlagen'}", "connection_failed_desc": "@.capitalize:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zur'} @:{'words.generated.xlvask'}-@:{'words.generated.api'} @:{'words.generated.ist'} @:{'words.generated.fehlgeschlagen'}.", "connection_success_desc": "@.capitalize:{'words.generated.die'} @:{'words.generated.verbindung'} @:{'words.generated.zur'} @:{'words.generated.xlvask'}-@:{'words.generated.api'} @:{'words.generated.war'} @:{'words.generated.erfolgreich'}.", diff --git a/src/i18n/generated/en-v2.json b/src/i18n/generated/en-v2.json index 5c8d75a6..2b1d41e2 100644 --- a/src/i18n/generated/en-v2.json +++ b/src/i18n/generated/en-v2.json @@ -2726,7 +2726,6 @@ "api_settings_desc": "@:{'words.generated.xlwash'} @:{'words.replication.article.host_mention'} @:{'words.generated.api'} @:{'words.generated.connection'} @:{'words.generated.settings'}.", "automation_settings": "Automation", "automation_settings_desc": "@:{'words.generated.control'} @:{'words.generated.automatic'} @:{'words.generated.order'} @:{'words.generated.attachment'} @:{'words.generated.and'} @:{'words.generated.creation'} @:{'words.generated.from'} @:{'words.generated.selvvask'}.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@.capitalize:{'words.generated.connection'} @:{'words.generated.failed'}", "connection_failed_desc": "@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.failed'}.", "connection_success_desc": "@.capitalize:{'words.replication.article.host_mention'} @:{'words.generated.connection'} @:{'words.generated.to'} @:{'words.replication.article.host_mention'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.was'} @:{'words.generated.successful'}.", diff --git a/src/i18n/generated/no-v2.json b/src/i18n/generated/no-v2.json index 8029b67e..9f36a3b0 100644 --- a/src/i18n/generated/no-v2.json +++ b/src/i18n/generated/no-v2.json @@ -3008,7 +3008,6 @@ "api_settings_desc": "@:{'words.generated.xlvask'} @:{'words.generated.api'}-@:{'words.generated.tilkoblingsinnstillingene'}.", "automation_settings": "Automatisering", "automation_settings_desc": "Styr @:{'words.generated.automatisk'} @:{'words.generated.ordretilknytning'} @:{'words.generated.og'} @:{'words.generated.ordreoppretting'} @:{'words.generated.fra'} @.capitalize:{'words.generated.selvvask'}.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@.capitalize:{'words.generated.tilkobling'} @:{'words.generated.mislyktes'}", "connection_failed_desc": "@.capitalize:{'words.generated.tilkoblingen'} @:{'words.generated.til'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.mislyktes'}.", "connection_success_desc": "@.capitalize:{'words.generated.tilkoblingen'} @:{'words.generated.til'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.var'} @:{'words.generated.vellykket'}.", diff --git a/src/i18n/generated/sv-v2.json b/src/i18n/generated/sv-v2.json index 1b2d3794..f8231ecd 100644 --- a/src/i18n/generated/sv-v2.json +++ b/src/i18n/generated/sv-v2.json @@ -3058,7 +3058,6 @@ "api_settings_desc": "@.capitalize:{'words.generated.anslutningsinstallningar'} @:{'words.generated.for'} @:{'words.generated.xlvask'} @:{'words.generated.api'}.", "automation_settings": "Automatisering", "automation_settings_desc": "Styr @:{'words.generated.automatisk'} @:{'words.generated.orderkoppling'} @:{'words.generated.och'} @:{'words.generated.orderskapande'} @:{'words.generated.fran'} @.capitalize:{'words.generated.selvvask'}.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@.capitalize:{'words.generated.anslutning'} @:{'words.generated.misslyckades'}", "connection_failed_desc": "@.capitalize:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.misslyckades'}.", "connection_success_desc": "@.capitalize:{'words.generated.anslutningen'} @:{'words.generated.till'} @:{'words.generated.xlvask'} @:{'words.generated.api'} @:{'words.generated.lyckades'}.", diff --git a/src/i18n/source/da/phrases/compat/configuration/index.json b/src/i18n/source/da/phrases/compat/configuration/index.json index 136248b3..a3fb628a 100644 --- a/src/i18n/source/da/phrases/compat/configuration/index.json +++ b/src/i18n/source/da/phrases/compat/configuration/index.json @@ -355,7 +355,6 @@ "api_settings_desc": "@:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.forbindelsesindstillingerne'}.", "automation_settings": "Automatisering", "automation_settings_desc": "Styr @:{'terms.glossary.automatisk'} @:{'terms.glossary.tilknytning'} @:{'terms.glossary.og'} @:{'terms.glossary.oprettelse'} @:{'terms.glossary.af'} @:{'terms.glossary.ordrer'} @:{'terms.glossary.fra'} @.capitalize:{'terms.glossary.selvvask'}.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@.capitalize:{'terms.glossary.forbindelse'} @:{'terms.glossary.fejlede'}", "connection_failed_desc": "@.capitalize:{'terms.glossary.forbindelsen'} @:{'terms.glossary.til'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.fejlede'}.", "connection_success_desc": "@.capitalize:{'terms.glossary.forbindelsen'} @:{'terms.glossary.til'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.var'} @:{'terms.glossary.succesfuld'}.", diff --git a/src/i18n/source/de/phrases/compat/configuration/index.json b/src/i18n/source/de/phrases/compat/configuration/index.json index b3859d59..0f6ad148 100644 --- a/src/i18n/source/de/phrases/compat/configuration/index.json +++ b/src/i18n/source/de/phrases/compat/configuration/index.json @@ -355,7 +355,6 @@ "api_settings_desc": "@:{'terms.glossary.api'}-@:{'terms.glossary.verbindungseinstellungen'} @:{'terms.glossary.f'}?@:{'terms.glossary.r'} @:{'terms.glossary.xlvask'}.", "automation_settings": "Automatisierung", "automation_settings_desc": "@:{'terms.glossary.automatische'} @:{'terms.glossary.auftragsverknupfung'} @:{'terms.glossary.und'} @:{'terms.glossary.auftragserstellung'} @:{'terms.glossary.aus'} @:{'terms.glossary.selvvask'} steuern.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@:{'terms.glossary.verbindung'} @:{'terms.glossary.fehlgeschlagen'}", "connection_failed_desc": "@.capitalize:{'terms.glossary.die'} @:{'terms.glossary.verbindung'} @:{'terms.glossary.zur'} @:{'terms.glossary.xlvask'}-@:{'terms.glossary.api'} @:{'terms.glossary.ist'} @:{'terms.glossary.fehlgeschlagen'}.", "connection_success_desc": "@.capitalize:{'terms.glossary.die'} @:{'terms.glossary.verbindung'} @:{'terms.glossary.zur'} @:{'terms.glossary.xlvask'}-@:{'terms.glossary.api'} @:{'terms.glossary.war'} @:{'terms.glossary.erfolgreich'}.", diff --git a/src/i18n/source/en/phrases/compat/configuration/index.json b/src/i18n/source/en/phrases/compat/configuration/index.json index 3adf3f5e..75b617a7 100644 --- a/src/i18n/source/en/phrases/compat/configuration/index.json +++ b/src/i18n/source/en/phrases/compat/configuration/index.json @@ -355,7 +355,6 @@ "api_settings_desc": "@:{'terms.glossary.xlwash'} @:{'terms.replication.article.host_mention'} @:{'terms.glossary.api'} @:{'terms.glossary.connection'} @:{'terms.glossary.settings'}.", "automation_settings": "Automation", "automation_settings_desc": "@:{'terms.glossary.control'} @:{'terms.glossary.automatic'} @:{'terms.glossary.order'} @:{'terms.glossary.attachment'} @:{'terms.glossary.and'} @:{'terms.glossary.creation'} @:{'terms.glossary.from'} @:{'terms.glossary.selvvask'}.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@.capitalize:{'terms.glossary.connection'} @:{'terms.glossary.failed'}", "connection_failed_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.connection'} @:{'terms.glossary.to'} @:{'terms.replication.article.host_mention'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.failed'}.", "connection_success_desc": "@.capitalize:{'terms.replication.article.host_mention'} @:{'terms.glossary.connection'} @:{'terms.glossary.to'} @:{'terms.replication.article.host_mention'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.was'} @:{'terms.glossary.successful'}.", diff --git a/src/i18n/source/no/phrases/compat/configuration/index.json b/src/i18n/source/no/phrases/compat/configuration/index.json index 4c863c09..20ad1e83 100644 --- a/src/i18n/source/no/phrases/compat/configuration/index.json +++ b/src/i18n/source/no/phrases/compat/configuration/index.json @@ -355,7 +355,6 @@ "api_settings_desc": "@:{'terms.glossary.xlvask'} @:{'terms.glossary.api'}-@:{'terms.glossary.tilkoblingsinnstillingene'}.", "automation_settings": "Automatisering", "automation_settings_desc": "Styr @:{'terms.glossary.automatisk'} @:{'terms.glossary.ordretilknytning'} @:{'terms.glossary.og'} @:{'terms.glossary.ordreoppretting'} @:{'terms.glossary.fra'} @.capitalize:{'terms.glossary.selvvask'}.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@.capitalize:{'terms.glossary.tilkobling'} @:{'terms.glossary.mislyktes'}", "connection_failed_desc": "@.capitalize:{'terms.glossary.tilkoblingen'} @:{'terms.glossary.til'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.mislyktes'}.", "connection_success_desc": "@.capitalize:{'terms.glossary.tilkoblingen'} @:{'terms.glossary.til'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.var'} @:{'terms.glossary.vellykket'}.", diff --git a/src/i18n/source/sv/phrases/compat/configuration/index.json b/src/i18n/source/sv/phrases/compat/configuration/index.json index 17978788..9c88ce7b 100644 --- a/src/i18n/source/sv/phrases/compat/configuration/index.json +++ b/src/i18n/source/sv/phrases/compat/configuration/index.json @@ -355,7 +355,6 @@ "api_settings_desc": "@.capitalize:{'terms.glossary.anslutningsinstallningar'} @:{'terms.glossary.for'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'}.", "automation_settings": "Automatisering", "automation_settings_desc": "Styr @:{'terms.glossary.automatisk'} @:{'terms.glossary.orderkoppling'} @:{'terms.glossary.och'} @:{'terms.glossary.orderskapande'} @:{'terms.glossary.fran'} @.capitalize:{'terms.glossary.selvvask'}.", - "automation_settings_removed_desc": "@:{'templates.generated.compat.configuration.xlvask.automation_settings_removed_desc'}", "connection_failed": "@.capitalize:{'terms.glossary.anslutning'} @:{'terms.glossary.misslyckades'}", "connection_failed_desc": "@.capitalize:{'terms.glossary.anslutningen'} @:{'terms.glossary.till'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.misslyckades'}.", "connection_success_desc": "@.capitalize:{'terms.glossary.anslutningen'} @:{'terms.glossary.till'} @:{'terms.glossary.xlvask'} @:{'terms.glossary.api'} @:{'terms.glossary.lyckades'}.",