agent_patch
runs/2026-02-27__21-30-28__gpt-5-1-codex-mini/flux-pr-4807/flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/agent-logs/agent.patch
12263 bytes
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/.husky/pre-commit b/app/.husky/pre-commit
index bcbc1dd..3f9efa1 100755
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/.husky/pre-commit
+++ b/app/.husky/pre-commit
@@ -1,2 +1,8 @@
+if [ -n "$(git ls-files --others --exclude-standard)" ]; then
+ echo "ERROR: untracked files present"
+ echo "Clean or stash them before running hooks."
+ exit 1
+fi
+
pnpm semver-check
lint-staged --verbose
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/.husky/pre-push b/app/.husky/pre-push
index a2e15d9..447a372 100755
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/.husky/pre-push
+++ b/app/.husky/pre-push
@@ -1,3 +1,9 @@
+if [ -n "$(git ls-files --others --exclude-standard)" ]; then
+ echo "ERROR: untracked files present"
+ echo "Clean or stash them before running hooks."
+ exit 1
+fi
+
pnpm test
pnpm semver-check
pnpm build
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/bench/object-moltar.ts b/app/packages/bench/object-moltar.ts
index 573a2e2..1bca33a 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/bench/object-moltar.ts
+++ b/app/packages/bench/object-moltar.ts
@@ -1,5 +1,5 @@
import * as z4 from "zod/v4";
-import * as z4lib from "./node_modules/zod4/dist/esm/v4/classic/index.js";
+import * as z4lib from "zod4/v4";
import * as z3 from "zod3";
import { metabench } from "./metabench.js";
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/basics.mdx b/app/packages/docs/content/basics.mdx
index e9f5bee..25602fd 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/basics.mdx
+++ b/app/packages/docs/content/basics.mdx
@@ -63,7 +63,7 @@ Player.parse({ username: "billie", xp: 100 });
```
<Callout>
-**Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refine) or [transforms](#transform), you'll need to use the `.parseAsync()` method instead.
+**Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refinements) or [transforms](#transforms), you'll need to use the `.parseAsync()` method instead.
```ts
await Player.parseAsync({ username: "billie", xp: 100 });
@@ -139,7 +139,7 @@ if (!result.success) {
```
<Callout>
-**Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refine) or [transforms](#transform), you'll need to use the `.safeParseAsync()` method instead.
+**Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refinements) or [transforms](#transforms), you'll need to use the `.safeParseAsync()` method instead.
```ts
await schema.safeParseAsync("hello");
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/ecosystem.mdx b/app/packages/docs/content/ecosystem.mdx
index 2921335..b633294 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/ecosystem.mdx
+++ b/app/packages/docs/content/ecosystem.mdx
@@ -20,6 +20,7 @@ There are a growing number of tools that are built atop or support Zod natively!
- [Total TypeScript Zod Tutorial](https://www.totaltypescript.com/tutorials/zod) by [@mattpocockuk](https://x.com/mattpocockuk)
- [Fixing TypeScript's Blindspot: Runtime Typechecking](https://www.youtube.com/watch?v=rY_XqfSHock) by [@jherr](https://x.com/jherr)
+- [Validate your environment variables with Zod](https://douglasmoura.dev/en-US/validate-your-environment-variables-with-zod) by Douglas Moura — Walks through building environment validation logic with Zod and TypeScript.
## API Libraries
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/index.mdx b/app/packages/docs/content/index.mdx
index fd37e79..7c650f6 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/index.mdx
+++ b/app/packages/docs/content/index.mdx
@@ -167,7 +167,7 @@ Your `"moduleResolution"` should be set to one of the following. The legacy `"no
## Ecosystem
-Zod has a thriving ecosystem of libraries, tools, and integrations. Refer to the [Ecosystem page](/ecososytem) for a complete list of libraries that support Zod or are built on top of it.
+Zod has a thriving ecosystem of libraries, tools, and integrations. Refer to the [Ecosystem page](/ecosystem) for a complete list of libraries that support Zod or are built on top of it.
- [Resources](/ecosystem?id=resources)
- [API Libraries](/ecosystem?id=api-libraries)
@@ -211,4 +211,3 @@ Sponsorship at any level is appreciated and encouraged. If you built a paid prod
<Bronze />
<br />
-
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/packages/v3.mdx b/app/packages/docs/content/packages/v3.mdx
index 788ec15..9d1d4b9 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/packages/v3.mdx
+++ b/app/packages/docs/content/packages/v3.mdx
@@ -1675,7 +1675,7 @@ stringSchema.parse(12); // throws error
`.parseAsync(data:unknown): Promise<T>`
-If you use asynchronous [refinements](#refine) or [transforms](#transform) (more on those later), you'll need to use `.parseAsync`.
+If you use asynchronous [refinements](#refinements) or [transforms](#transforms) (more on those later), you'll need to use `.parseAsync`.
```ts
const stringSchema = z.string().refine(async (val) => val.length <= 8);
@@ -2485,4 +2485,3 @@ Runtypes is focused on ergonomics, with good type inference support.
Ow is focused on function input validation. It's a library that makes it easy to express complicated assert statements, but it doesn't let you parse untyped data. They support a much wider variety of types; Zod has a nearly one-to-one mapping with TypeScript's type system, whereas ow lets you validate several highly-specific types out of the box (e.g. `int32Array` , see full list in their README).
If you want to validate function inputs, use function schemas in Zod! It's a much simpler approach that lets you reuse a function type declaration without repeating yourself (namely, copy-pasting a bunch of ow assertions at the beginning of every function). Also Zod lets you validate your return types as well, so you can be sure there won't be any unexpected data passed downstream.
-
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/parsing.mdx b/app/packages/docs/content/parsing.mdx
index 18394ff..68cc558 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/docs/content/parsing.mdx
+++ b/app/packages/docs/content/parsing.mdx
@@ -21,7 +21,7 @@ stringSchema.parse(12); // throws error
`.parseAsync(data:unknown): Promise<T>`
-If you use asynchronous [refinements](#refine) or [transforms](#transform) (more on those later), you'll need to use `.parseAsync`.
+If you use asynchronous [refinements](#refinements) or [transforms](#transforms) (more on those later), you'll need to use `.parseAsync`.
```ts
const stringSchema = z.string().refine(async (val) => val.length <= 8);
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/README.md b/app/packages/zod/README.md
index 5ffbaa8..b24d16f 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/README.md
+++ b/app/packages/zod/README.md
@@ -121,7 +121,7 @@ Player.parse({ username: "billie", xp: 100 });
// => returns { username: "billie", xp: 100 }
```
-**Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refine) or [transforms](#transform), you'll need to use the `.parseAsync()` method instead.
+**Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refinements) or [transforms](#transforms), you'll need to use the `.parseAsync()` method instead.
```ts
const schema = z.string().refine(async (val) => val.length <= 8);
@@ -169,7 +169,7 @@ if (!result.success) {
}
```
-**Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refine) or [transforms](#transform), you'll need to use the `.safeParseAsync()` method instead.
+**Note** — If your schema uses certain asynchronous APIs like `async` [refinements](#refinements) or [transforms](#transforms), you'll need to use the `.safeParseAsync()` method instead.
```ts
const schema = z.string().refine(async (val) => val.length <= 8);
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/package.json b/app/packages/zod/package.json
index fac52c0..adaacef 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/package.json
+++ b/app/packages/zod/package.json
@@ -1,6 +1,6 @@
{
"name": "zod",
- "version": "3.25.69",
+ "version": "3.25.70",
"type": "module",
"author": "Colin McDonnell <zod@colinhacks.com>",
"description": "TypeScript-first schema declaration and validation library with static type inference",
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/v4/classic/compat.ts b/app/packages/zod/v4/classic/compat.ts
index e452279..882a5b3 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/v4/classic/compat.ts
+++ b/app/packages/zod/v4/classic/compat.ts
@@ -27,15 +27,8 @@ export const ZodIssueCode = {
custom: "custom",
} as const;
-/** @deprecated Not necessary in Zod 4. */
-type INVALID = { status: "aborted" };
-/** @deprecated Not necessary in Zod 4. */
-const INVALID: INVALID = Object.freeze({
- status: "aborted",
-});
-
-/** A special constant with type `never` */
-export const NEVER = INVALID as never;
+/** @deprecated Provided for Zod 3 compatibility; prefer `z.NEVER` from the core entry point. */
+export { NEVER } from "../core/index.js";
/** @deprecated Use `z.$ZodFlattenedError` */
export type inferFlattenedErrors<T extends core.$ZodType, U = string> = core.$ZodFlattenedError<core.output<T>, U>;
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/v4/classic/external.ts b/app/packages/zod/v4/classic/external.ts
index b226eed..47a1098 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/v4/classic/external.ts
+++ b/app/packages/zod/v4/classic/external.ts
@@ -27,6 +27,7 @@ export {
formatError,
flattenError,
toJSONSchema,
+ NEVER,
TimePrecision,
} from "../core/index.js";
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/v4/core/core.ts b/app/packages/zod/v4/core/core.ts
index 693f8ce..88a0f49 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/v4/core/core.ts
+++ b/app/packages/zod/v4/core/core.ts
@@ -127,3 +127,8 @@ export function config(newConfig?: Partial<$ZodConfig>): $ZodConfig {
if (newConfig) Object.assign(globalConfig, newConfig);
return globalConfig;
}
+
+/** A special constant with type `never` */
+export const NEVER: never = Object.freeze({
+ status: "aborted",
+}) as never;
diff --git a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/v4/mini/external.ts b/app/packages/zod/v4/mini/external.ts
index a327b51..4145475 100644
--- a/tmp/agent-patch-flux-pr-4807.1-of-1.2026-02-27__21-30-28__gpt-5-1-codex-mini/app/packages/zod/v4/mini/external.ts
+++ b/app/packages/zod/v4/mini/external.ts
@@ -19,6 +19,7 @@ export {
formatError,
flattenError,
toJSONSchema,
+ NEVER,
TimePrecision,
} from "../core/index.js";