Branch crowdin-sync at 7156bce64b. Every reviewer is done and every finding is fixed; two decisions wait on you.
Bringing Crowdin's translations into Bloom followed a long hand procedure in the localization README that had gone stale. It left out the cherry-picks to release branches and the null merges back up that we do every time. It also never warned that a cherry-pick deletes a release branch's existing translations of strings master has dropped: 2,231 translations on 6.4 and 6.5 in the 2026-10-28 batch, all removed on purpose as it turned out.
merge-crowdin-translations skill. An agent runs it end to end, except pausing and resuming Crowdin's sync. It squashes l10n_master into one commit on master, cherry-picks it to the release branches the developer picks each time, and null-merges them back up. There are no pull requests: the developer approves each push on one decider form.audit_translations.py: per branch, the translations that land on strings it uses, those of different English wording, and always every translation a pick would delete.| Check | Result |
|---|---|
| Typecheck / lint | Not run: no TypeScript or C# in the diff |
| TypeScript tests (vitest) | Not run: no front-end code in the diff |
| C# tests (dotnet test) | Not run: no C# in the diff |
Python (audit_translations.py) | No suite in this repo. Compiles; re-run on the real 2026-10-28 batch after every fix: 1,208 translations land on master, matching the run |
| Repo check: e2e specs at nightly size | Did not apply: no src/BloomE2E/tests/*.spec.ts in the diff |
| Merge with master | Clean (rebased onto master) |
Opened the draft PR, then fixed the 5 problems the light review found and the 5 that Devin and Greptile raised between them (one was raised by both). Commits.
| Reviewer | Outcome |
|---|---|
| Local review (light sub-agent pass) | 5 findings, all fixed: the null-merge check stopped every two-branch run, values didn't carry between steps, two safety checks only printed a warning, and the audit crashed on invalid XML. |
| Devin | Complete. 3 bugs, all fixed; its re-review of 7156bce64b marks all 3 resolved. 1 informational note. Threads, resolved. |
| Greptile | Complete for 186152d809: 3 findings, all fixed and resolved (threads). It has not reviewed the two fix-up commits, which only answer its own and Devin's findings. |
| CodeRabbit | Configured, but has not posted on this PR. |
| CI (pr-automation) | Passed. |
The PR adds no tests. It is an agent procedure plus a helper script that only that procedure runs. The script was checked by hand against the real 2026-10-28 batch (its counts matched the actual run), and is re-run against that batch after every fix. A unit test would need small fixture XLF files and a git repo set up in the test.
Paste this into the session.