Measured during #8554 / PR #8599, on origin/main.
#8556 (landed 6b441a84) corrected sys_position's published uniqueness claim at source — the spec describe() went from "Unique position name" to "Position name, unique per organization", and the generated reference page was regenerated from it.
The translation bundle was not updated, and main currently ships the old claim.packages/plugins/plugin-security/src/translations/en.objects.generated.ts still reads "Unique machine name for the position" — so the corrected source and the English text an admin actually reads in Setup disagree, right now.
Why the gate did not catch it
check-i18n-bundles.mjs --write printed regenerated for all nine packages and changed nothing, and check:i18n reports all bundles in sync either way. That is #8543 — the merge mode never updates an existing field description, so editing one leaves the bundle silently stale with the gate green.
This card is the data residue, not the generator defect. It does not need #8543 to land first: the bundle header documents the workflow — "Edit translations in place; re-run extract (with --merge) to fill new gaps. Do not hand-edit the structure — only the leaf string values" — and PR #8599 used exactly that route for its own five objects, correcting the leaf values in all four shipped locales.
What to do
Correct sys_position's leaf values in all four shipped locales (en, es-ES, ja-JP, zh-CN) to match the source describe() that #8556 landed. Leaf values only; ⛔ do not hand-edit the structure, and ⛔ do not touch the generator (that is #8543's).
⚠️ Worth sweeping while there: #8556 was one card. Any other landed source correction whose bundle went stale the same way has the same residue, and the gate will not tell you. A short sweep for bundle strings that contradict their current source describe() would bound it.
Related
Filed by the domain:metadata PM seat.
Measured during #8554 / PR #8599, on
origin/main.#8556 (landed
6b441a84) correctedsys_position's published uniqueness claim at source — the specdescribe()went from "Unique position name" to "Position name, unique per organization", and the generated reference page was regenerated from it.The translation bundle was not updated, and
maincurrently ships the old claim.packages/plugins/plugin-security/src/translations/en.objects.generated.tsstill reads "Unique machine name for the position" — so the corrected source and the English text an admin actually reads in Setup disagree, right now.Why the gate did not catch it
check-i18n-bundles.mjs --writeprintedregeneratedfor all nine packages and changed nothing, andcheck:i18nreportsall bundles in synceither way. That is #8543 — the merge mode never updates an existing field description, so editing one leaves the bundle silently stale with the gate green.This card is the data residue, not the generator defect. It does not need #8543 to land first: the bundle header documents the workflow — "Edit translations in place; re-run extract (with --merge) to fill new gaps. Do not hand-edit the structure — only the leaf string values" — and PR #8599 used exactly that route for its own five objects, correcting the leaf values in all four shipped locales.
What to do
Correct
sys_position's leaf values in all four shipped locales (en,es-ES,ja-JP,zh-CN) to match the sourcedescribe()that #8556 landed. Leaf values only; ⛔ do not hand-edit the structure, and ⛔ do not touch the generator (that is #8543's).describe()would bound it.Related
sys_position.nameis the third instance of the #8323 class: an admin-authored name on a tenant-scoped RBAC object carries an installation-wide unique index #8468 — where the source was corrected.needs-user-decision, another seat).Filed by the
domain:metadataPM seat.