Commit 68c5dba
fix(cli,lint): gate the i18n flow coverage bucket on the liveness ledger (#12442)
* fix(cli,lint): gate the i18n flow coverage bucket on the liveness ledger
`os lint` computes i18n coverage and runs the authoring-rule registry in one
pass over the same stack, and for the `flows` translation group the two halves
pointed opposite ways: omitting the keys drew `i18n/missing-flow`, authoring
them drew `liveness-planned-property` ("sets `flows` but this translation
property is planned"). Measured on one stack: 4 demands vs 2 warnings, and no
third move — `os lint` has no per-rule suppression, only `--skip-i18n`, which
silences the whole `i18n/missing-*` family.
The warning is true and is unchanged: no shipped screen-flow runner reads the
group. The demand is the premature half.
`collectExpectedEntries` — the single definition of what is translatable at
all, shared by the coverage gate and the `os i18n extract` skeleton — now
leaves out any translation group the liveness ledger warns authors for
authoring, reading that set from `@objectstack/lint`'s new
`authorWarnedProperties(type)`: the very warn map `lintLivenessProperties`
iterates, so the demand side and the warn side read ONE verdict.
Reading the ledger rather than switching on `flows` by name means the bucket
turns itself back on the day the row flips to `live`, and any future warned
group is covered on the day it is marked.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UjujZN219uFzBhSYfMykCd
* chore(i18n): re-baseline the coverage ratchet after the flow-bucket gate
`check:i18n-coverage` counts untranslated declared strings per example config
against a shrink-only baseline. Gating the `flow` bucket removes the `flows.*`
demands, so the count improves on exactly the three example apps that declare a
`type: 'screen'` flow and on no other config:
examples/app-crm 93 -> 89
examples/app-showcase 424 -> 393
examples/app-todo 140 -> 120
The other 9 baselined configs are unchanged — `examples/embed-objectql` and the
8 platform/plugin extract configs declare no screen flow. Regenerated with
`node scripts/check-i18n-coverage.mjs --update`, the repair the gate itself
prescribes for a ratchet DOWN.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UjujZN219uFzBhSYfMykCd
---------
Co-authored-by: Claude <noreply@anthropic.com>1 parent 424f73c commit 68c5dba
9 files changed
Lines changed: 480 additions & 12 deletions
File tree
- .changeset
- content/docs/ui
- packages
- cli
- src/utils
- test
- lint/src
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
259 | 259 | | |
260 | 260 | | |
261 | 261 | | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
262 | 273 | | |
263 | 274 | | |
264 | 275 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
58 | 61 | | |
59 | 62 | | |
60 | 63 | | |
| |||
64 | 67 | | |
65 | 68 | | |
66 | 69 | | |
67 | | - | |
68 | | - | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
69 | 74 | | |
70 | 75 | | |
71 | 76 | | |
| |||
78 | 83 | | |
79 | 84 | | |
80 | 85 | | |
81 | | - | |
| 86 | + | |
82 | 87 | | |
83 | 88 | | |
84 | 89 | | |
| |||
135 | 140 | | |
136 | 141 | | |
137 | 142 | | |
138 | | - | |
| 143 | + | |
139 | 144 | | |
140 | 145 | | |
141 | 146 | | |
| |||
626 | 631 | | |
627 | 632 | | |
628 | 633 | | |
629 | | - | |
630 | | - | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
631 | 704 | | |
632 | 705 | | |
633 | 706 | | |
| |||
905 | 978 | | |
906 | 979 | | |
907 | 980 | | |
908 | | - | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
909 | 984 | | |
910 | 985 | | |
911 | 986 | | |
| |||
1180 | 1255 | | |
1181 | 1256 | | |
1182 | 1257 | | |
1183 | | - | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
| 1263 | + | |
1184 | 1264 | | |
1185 | 1265 | | |
1186 | 1266 | | |
| |||
0 commit comments