summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-21 17:40:54 -0400
committerGitHub <[email protected]>2026-04-21 17:40:54 -0400
commitd6dea3f3e00598a734d2fb61dbc9d74ccbd1781c (patch)
tree2f6343f28be24ecb8277c76e5eb5bde9f1a84695
parent0bcf734a67e3b46b26f9c68d1800086365ed67e7 (diff)
downloadopencode-d6dea3f3e00598a734d2fb61dbc9d74ccbd1781c.tar.gz
opencode-d6dea3f3e00598a734d2fb61dbc9d74ccbd1781c.zip
chore(core): clean up after ConfigPermission Effect Schema migration (#23749)
-rw-r--r--packages/opencode/specs/effect/schema.md16
-rw-r--r--packages/opencode/src/config/agent.ts2
2 files changed, 3 insertions, 15 deletions
diff --git a/packages/opencode/specs/effect/schema.md b/packages/opencode/specs/effect/schema.md
index 6deea4965..df3cc0881 100644
--- a/packages/opencode/specs/effect/schema.md
+++ b/packages/opencode/specs/effect/schema.md
@@ -97,7 +97,7 @@ creating a parallel schema source of truth.
## Escape hatches
-The walker in `@/util/effect-zod` exposes three explicit escape hatches for
+The walker in `@/util/effect-zod` exposes two explicit escape hatches for
cases the pure-Schema path cannot express. Each one stays in the codebase
only as long as its upstream or local dependency requires it — inline
comments document when each can be deleted.
@@ -109,19 +109,7 @@ Replaces the entire derivation with a hand-crafted zod schema. Used when:
- the target carries external `$ref` metadata (e.g.
`config/model-id.ts` points at `https://models.dev/...`)
- the target is a zod-only schema that cannot yet be expressed as Schema
- (e.g. `ConfigAgent.Info`, `ConfigPermission.Info`, `Log.Level`)
-
-### `ZodPreprocess` annotation
-
-Wraps the derived zod schema with `z.preprocess(fn, inner)`. Used by
-`config/permission.ts` to inject `__originalKeys` before parsing, because
-`Schema.StructWithRest` canonicalises output (known fields first, catchall
-after) and destroys the user's original property order — which permission
-rule precedence depends on.
-
-Tracked upstream as `effect:core/wlh553`: "Schema: add preserveInputOrder
-(or pre-parse hook) for open structs." Once that lands, `ZodPreprocess` and
-the `__originalKeys` hack can both be deleted.
+ (e.g. `ConfigAgent.Info`, `Log.Level`)
### Local `DeepMutable<T>` in `config/config.ts`
diff --git a/packages/opencode/src/config/agent.ts b/packages/opencode/src/config/agent.ts
index 5a91a3899..85021407c 100644
--- a/packages/opencode/src/config/agent.ts
+++ b/packages/opencode/src/config/agent.ts
@@ -3,7 +3,7 @@ export * as ConfigAgent from "./agent"
import { Schema } from "effect"
import z from "zod"
import { Bus } from "@/bus"
-import { zod, ZodOverride } from "@/util/effect-zod"
+import { zod } from "@/util/effect-zod"
import { Log } from "../util"
import { NamedError } from "@opencode-ai/shared/util/error"
import { Glob } from "@opencode-ai/shared/util/glob"