flux-pr-5409
Zod (TypeScript) · W2 · GPT-5.1 Codex Mini
Tests failed. 1/2 commands passed. Strength: weak.
pnpm buildnpx vitest run packages/zod/src/v4/core/tests/locales/he.test.ts -t "string\ type\ \(feminine\ \-\ צריכה\)|number\ type\ \(masculine\ \-\ צריך\)|array\ type\ \(masculine\ \-\ צריך\)|set\ type\ \(feminine\ \-\ צריכה\)|array\ max|string\ expected\ \(feminine\),\ number\ received|number\ expected\ \(masculine\),\ string\ received|boolean\ expected\ \(masculine\),\ null\ received|array\ expected\ \(masculine\),\ object\ received|object\ expected\ \(masculine\),\ array\ received|function\ expected\ \(feminine\),\ string\ received|feminine\ types\ use\ צריכה|masculine\ types\ use\ צריך|single\ value|two\ values|multiple\ values|not_multiple_of|unrecognized_keys\ \-\ single\ key|unrecognized_keys\ \-\ multiple\ keys|invalid_union|invalid_key\ in\ object|startsWith|endsWith|includes|regex|email|url|uuid|invalid\ element\ type\ in\ tuple\ shows\ full\ error\ message|inclusive\ minimum\ \(>=\)|exclusive\ minimum\ \(>\)|inclusive\ maximum\ \(<=\)|exclusive\ maximum\ \(<\)|verifies\ all\ type\ translations\ are\ correct"Partial score: 1/2
Trajectory
unknown · partial order onlyCanonical trajectory missing; showing coarse derived order only.
Quality
Equivalence Reasoning
behavioral
The patch improves several messages, but it misses core intent around consistent Hebrew grammar/localization. In particular, `invalid_format` fallback always uses masculine (`לא תקין`) and can produce awkward forms like `הכתובת אימייל לא תקין` instead of gender-aware phrasing. It also leaves some key-related/container labels potentially unlocalized (`issue.origin` raw values), so the “localized type labels + consistent gender-aware wording” requirement is not fully satisfied.
Code Review
The patch makes substantial Hebrew text changes but likely does not satisfy the intended locale behavior: multiple canonical messages were changed beyond requested refinement, and at least one new edge-case fragility was introduced.
The patch changes `invalid_type` to `הסוג הצפוי הוא ...` instead of the expected `קלט לא תקין: צריך להיות ..., התקבל ...`, which is likely to fail existing locale tests and breaks consistency with other issue messages.
`invalid_union`, `invalid_key`, and `invalid_element` were rewritten to new meanings (including container/key-specific text), while the task expected specific Hebrew wording refinements for existing codes. This is a behavioral change beyond phrasing and likely mismatches tests.
The new `invalid_element` path always interpolates `issue.key` (`util.stringifyPrimitive(issue.key)`), which can produce awkward/incorrect output if the key is absent or not meaningful for the origin.
For multiple values, the patch still joins with `|` via `util.joinValues`, which does not implement the requested natural Hebrew alternatives formatting (`או` structure).