STET

flux-pr-4970

Zod (TypeScript) · W2 · GPT-5.1 Codex Mini

pass_with_warn

Tests passed. 3/3 commands passed. Strength: weak.

61.5% run pass rate
Tier 1
primary equivalencepassedneeds generated testsweak signal riskcommand source driftnon equivalentfail
pnpm build
gold passagent pass
find . -name vitest.config.ts -exec sed -i 's/test: {/test: { testTimeout: 30000,/' {} +
gold passagent pass
npx vitest run packages/zod/src/v4/classic/tests/union.test.ts -t "surface\ continuable\ errors\ only\ if\ they\ exist"
gold passagent pass

Partial score: 3/3

Publishable: noWeak signal risk: yesCache: miss

Trajectory

unknown · partial order only

Canonical trajectory missing; showing coarse derived order only.

patch written
Patch captured
#1

Stet captured agent.patch for this trial.

validation
Tests passed
#2
equivalence
Equivalence judgment
#3

non_equivalent

code review
Code review judgment
#4

fail

decision
Final decision
#5

pass_with_warn

Quality

equivalence
non_equivalent
82% confidence
code review
fail
3 findings
footprint
medium (0.48)
behavioral
100.0%
cost
$1.24 · 3.2M

Equivalence Reasoning

behavioral

The agent implemented the union-resolution change and added normalization docs, but it missed the core version constant bump (`packages/zod/src/v4/core/versions.ts` still appears to remain at patch 8). It also enforces non-empty literals at API/factory entry points rather than in `$ZodLiteral` construction itself, which may leave internal construction paths less strictly guarded than intended.

Code Review

correctness: 2/4introduced bug risk: 2/4edge case handling: 2/4maintainability idioms: 2/4

The patch captures the union determinism change and adds normalization documentation, but it likely does not fully satisfy the intended release because versioning is inconsistent and literal empty-value rejection is not enforced at the core constructor boundary.

3 findings
Version bump is incomplete for the 4.0.9 release
major

The patch updates package manifests to 4.0.9 but does not update the core runtime version constant, leaving release metadata inconsistent.

packages/zod/package.json:1
Empty-literal guard is not enforced at the core literal schema constructor
major

Validation is added in `literal` and `_literal` wrappers, but not in the core schema constructor layer, so non-wrapper construction paths can still create empty literal schemas.

packages/zod/src/v4/classic/schemas.ts:1535
Normalization helper docs are added, but not directly alongside existing transform list entries
minor

The task asks to describe normalization alongside string transforms; this patch adds a separate section instead of extending the existing transform examples where trim/lower/upper are listed.

packages/docs/content/api.mdx:218