107107 * flows.<flow>.screens.<node_id>.title (#7646 / #11287)
108108 * flows.<flow>.screens.<node_id>.fields.<field>.label
109109 * flows.<flow>.screens.<node_id>.fields.<field>.placeholder
110- * ^ gated: `flows` is `planned` + `authorWarn` in the liveness ledger, so
111- * these are walked only once the row goes `live` (#11624 — see
112- * `authorWarnedTranslationGroups`)
110+ * flows.<flow>.screens.<node_id>.fields.<field>.inlineHelpText
111+ * ^ walked because the ledger's `flows` row is `live` and warns no
112+ * author; a group the ledger does warn on is left out of the walk
113+ * (see `authorWarnedTranslationGroups`)
113114 * metadataForms.<type>.label / .description
114115 * metadataForms.<type>.sections.<section>.label / .description
115116 * metadataForms.<type>.fields.<dotPath>.label / .helpText / .placeholder
@@ -1067,8 +1068,9 @@ function walkObjectTabs(config: any, out: ExpectedEntry[]): void {
10671068}
10681069
10691070/**
1070- * Translation groups the shipped liveness ledger warns an author for authoring
1071- * — today exactly `flows` (`status: planned`, `authorWarn: true`).
1071+ * Translation groups the shipped liveness ledger warns an author for authoring.
1072+ * Today the set is empty: `flows`, the one group ever warned, is `live` now
1073+ * that both its halves are read, so nothing is gated.
10721074 *
10731075 * ## Why the walk surface is gated on this at all (#11624)
10741076 *
@@ -1083,20 +1085,20 @@ function walkObjectTabs(config: any, out: ExpectedEntry[]): void {
10831085 * `i18n/missing-*` family. Under `--i18n-strict` the demand side is an error,
10841086 * so a project could be *forced* to author keys it is then warned for.
10851087 *
1086- * ⛔ The warn side is not the bug and must not be softened. Only part of the
1087- * group is read: the console's screen-flow runner reads `screens`, but the
1088- * flow's own `label` is read by nothing yet (#20318), so a translated flow
1089- * label really is stored and never shown. The warn is group-level, so it still
1090- * covers the whole group. The demand is the half that is premature.
1088+ * ⛔ The warn side was not the bug, and it was not softened. While the
1089+ * console's screen-flow runner read only `screens`, a translated flow `label`
1090+ * really was stored and never shown, and the group-level warn said so. The
1091+ * demand was the premature half, and it is the half this gate holds back.
1092+ * The runner now names the flow by `flows.<flow>.label` too, so the row is
1093+ * `live` and the warn and the gate are gone together.
10911094 *
10921095 * ## Shape
10931096 *
10941097 * Group-general, not `flows`-specific, and read from the ledger rather than a
1095- * switch of our own: the day the row flips to `live` (dropping its
1096- * `authorWarn`; for `flows` that waits on #20318), the bucket turns itself back
1097- * on with no edit here — and any FUTURE group that acquires a warn is covered on
1098- * the day it is marked, rather than re-opening this collision one group at a
1099- * time.
1098+ * switch of our own: when the `flows` row flipped to `live` and dropped its
1099+ * `authorWarn`, the bucket turned itself back on with no edit here — and any
1100+ * FUTURE group that acquires a warn is covered on the day it is marked, rather
1101+ * than re-opening this collision one group at a time.
11001102 *
11011103 * The join is on the group (`path[0]`) and stops there deliberately: for
11021104 * file-authored bundles the warn side only ever fires at that depth. Its
0 commit comments