Files
Joseph MattielloandClaude Opus 5 b58b977e01 fix(i18n): patch upstream initial_sync regex, fail loudly without a key
Two review catches (#264), both verified.

The sample's placeholder substitution in intl/initial_sync.py is
r'/_core_name_(?=[/.])]' -- a stray ']' after the lookahead, asserting
the next character is both '/'-or-'.' and ']'. It matches nothing:

    as-shipped regex changed anything? False
    without stray ']' changed anything? True

So '_core_name_' survived into crowdin.yaml and the documented initial
setup would have uploaded to a Crowdin path literally named
'_core_name_'. The reset path further down the same file got the same
tightening right, and older copies (nestopia) use a working
r'/_core_name_', so it is an upstream typo rather than intent.

Second: the vendored scripts call subprocess.run() without check=True
throughout, so a failed Crowdin CLI invocation exits 0 and the workflow
step reports success -- meaning an unset secret gave a green run that
did nothing, contradicting this PR's claim that the not-set-up state is
visible. Each workflow now fails on an empty CROWDIN_API_KEY as its
first step.

That guard lives in our workflow files rather than as check=True edits
across five upstream scripts: it covers the failure that actually
happens, cannot be clobbered by the sync workflow's own
`git add intl/*_workflow.py`, and does not risk failing runs on benign
non-zero exits from the Crowdin CLI that we cannot characterise without
a working token.

Co-Authored-By: Claude Opus 5 <[email protected]>
2026-08-02 12:47:43 -04:00
..