Skip to content

Choose a tag to compare

@cungminh2710 cungminh2710 released this 16 Aug 02:11
· 634 commits to main since this release
7003a03

v1.9.0

run and eval can now use OpenRouter and Vercel AI Gateway as LLM providers. This release also fails closed on incomplete OpenAI-compatible completions, tightens Crowdin upload/error handling, and speeds up planning, scoring, and several file parsers.

Full changelog: v1.8.28...v1.9.0

Breaking changes

None.

Features

  • Add Vercel AI Gateway as an LLM provider for run and eval. Set llm.profiles.<name>.provider to ai_gateway and export AI_GATEWAY_API_KEY. Model IDs such as openai/gpt-5.6-luna pass through to https://ai-gateway.vercel.sh/v1. Image localization stays OpenAI-only. #1848
  • Add OpenRouter as an LLM provider (openrouter). Auth via OPENROUTER_API_KEY; override the base URL with OPENROUTER_BASE_URL. Model IDs pass through unchanged. #1804

Fixes

  • Reject incomplete or failed OpenAI-compatible completions instead of writing truncated translations. Fail closed on choice-level errors, finish_reason of error / length / content_filter, and tool_calls / function_call. Transient 502/503/504 errors stay retryable. #1810
  • Send the raw filename in the Crowdin Crowdin-API-FileName header instead of query-escaping it, so names with spaces are not mangled. #1839
  • Align Crowdin SourceStringsUpload attributes with API v2 (fileId, maxLen, omitempty on optional fields). #1823
  • Surface Crowdin 400 error payloads instead of a generic status message, and allow the documented project-level notification roles. #1801

Performance

  • Faster SHA-512 lock fingerprinting during planning (hex.EncodeToString instead of fmt.Sprintf("%x")): about 28% faster on large catalogs, 11% fewer allocations. #1753
  • ICU parser plain-text fast path: about 19% faster and 60% fewer allocations on keys with no placeholders. #1775
  • JS/TS locale module parser: about 35% faster parse and 60% fewer allocations; marshal about 30% faster. #1799
  • Mozilla Fluent parser: about 45% fewer allocations via capacity hints and indent/comment fast paths. #1786
  • Zero-allocation brace-placeholder scanner in eval scoring (replaces regex). #1821
  • Lower allocation cost when building the selection catalog (pre-sized maps, slices.SortFunc). #1809
  • Segment profile validation fast paths and slice capacity hints. #1837

Tests

  • Env loader, CLI telemetry, sync risk detection, SHA-512 fingerprint oracles, and brace-placeholder scanner coverage. #1824 #1811 #1788 #1774 #1836
  • Parser coverage for Apple .stringsdict, CSV, Liquid target fallback, Fluent attribute indents, JS/TS locale edges, and the ICU plain-text fast path. #1838 #1755 #1802 #1798 #1808 #1784
  • Incomplete LLM completion and locale-path helper regressions. #1820

Maintenance

  • Bump Go dependencies (OpenAI SDK v3.50.0, WorkOS v10.1.1, OpenTelemetry v1.45.0). #1751