lingo.dev@0.135.0
lingodotdev/lingo.devlingo.dev@0.135.0May 18, 2026by github-actions[bot]
AI Summary
Enhances file matching capabilities by allowing recursive glob patterns to traverse nested directories in bucket configurations.
Key Highlights
- Support for recursive glob patterns (`**`) in include/exclude
- Default exclusion of build trees (node_modules, .git, etc.) for `**` patterns
- Improved error handling for ambiguous locale mappings
New Features
- Support for recursive glob patterns in bucket configuration
Full Release Notes
### Minor Changes
- [#2089](https://github.com/lingodotdev/lingo.dev/pull/2089) [`0106b48`](https://github.com/lingodotdev/lingo.dev/commit/0106b481866c19c7cc81e70a2c3a305cc03e333a) Thanks [@cherkanovart](https://github.com/cherkanovart)! - Support recursive glob patterns (`**`) in bucket `include`/`exclude`.
Patterns like `config/locales/**/[locale].yml` or `src/**/[locale]/strings/*.json` now match files at any depth, so you no longer need to enumerate every nesting level. The previous restriction that rejected any pattern containing `**` has been removed.
Two safety nets ship with this change, both scoped to patterns that actually use `**`:
- For `**` patterns only, `node_modules`, `.git`, `dist`, `build`, `.next`, and `.turbo` are excluded by default so a broad pattern like `**/[locale].json` does not descend into vendored or build trees. Existing patterns without `**` keep the previous traversal behavior exactly as before. Add your own `exclude` entries on top as needed.
- When a matched file cannot be unambiguously mapped back to the `[locale]` placeholder (for example, a pattern with multiple wildcards around `[locale]` that admits more than one valid restoration), the CLI now throws a clear error instead of silently returning a malformed path.